You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The NULLIF function works with the multi-stage query engine as of Pinot 1.2.0, but it doesn't work with the latest build off of master (queries will fail with the error No match found for function signature NULLIF).
This is an accidental regression from Refactor function registry for multi-stage engine #13573. Prior to that refactor, Pinot's operator table extended Calcite's SqlStdOperatorTable which has the SqlNullifFunction defined. By default, Calcite rewrites calls to NULLIF with equivalent calls to CASE WHEN. This is why the NULLIF function worked in the multi-stage engine even though Pinot doesn't have an actual implementation of the NULLIF function (since we do have a concrete implementation of CASE WHEN).
However, the above linked PR updated Pinot's operator table to no longer extend Calcite's SqlStdOperatorTable, and instead manually register all the operators that Pinot actually has support for. Since Pinot didn't have an actual implementation for NULLIF, it was probably missed.
We need to add back the NULLIF operator to Pinot's operator table, and also add an actual scalar function implementation so that NULLIF can also be used in the single-stage query engine.
The text was updated successfully, but these errors were encountered:
NULLIF
function works with the multi-stage query engine as of Pinot 1.2.0, but it doesn't work with the latest build off ofmaster
(queries will fail with the errorNo match found for function signature NULLIF
).SqlStdOperatorTable
which has the SqlNullifFunction defined. By default, Calcite rewrites calls toNULLIF
with equivalent calls toCASE WHEN
. This is why theNULLIF
function worked in the multi-stage engine even though Pinot doesn't have an actual implementation of theNULLIF
function (since we do have a concrete implementation ofCASE WHEN
).SqlStdOperatorTable
, and instead manually register all the operators that Pinot actually has support for. Since Pinot didn't have an actual implementation forNULLIF
, it was probably missed.NULLIF
operator to Pinot's operator table, and also add an actual scalar function implementation so thatNULLIF
can also be used in the single-stage query engine.The text was updated successfully, but these errors were encountered: