yashmayya commented on code in PR #15027: URL: https://github.com/apache/pinot/pull/15027#discussion_r1981097772
########## pinot-query-planner/src/main/java/org/apache/pinot/calcite/sql/fun/PinotOperatorTable.java: ########## @@ -97,6 +97,13 @@ public static PinotOperatorTable instance() { InferTypes.FIRST_KNOWN, OperandTypes.MINUS_OPERATOR.or(OperandTypes.family(SqlTypeFamily.TIMESTAMP, SqlTypeFamily.TIMESTAMP))); + // These 2 operators are not directly registered in the operator table, but are used in the custom optimization rules + // (see PinotSemiJoinToInClauseRule and PinotLeftJoinToNotInClauseRule) to work around the Calcite limitation of not + // supporting IN and NOT IN as the function call. + public static final PinotSqlFunction PINOT_IN = new PinotSqlFunction("IN", ReturnTypes.BOOLEAN_NULLABLE, null); + public static final PinotSqlFunction PINOT_NOT_IN = + new PinotSqlFunction("NOT_IN", ReturnTypes.BOOLEAN_NULLABLE, null); Review Comment: Do we really need these? What happens if we use `SqlStdOperatorTable.IN` / `SqlStdOperatorTable.NOT_IN` in those two rules directly instead? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org