walterddr commented on code in PR #10472: URL: https://github.com/apache/pinot/pull/10472#discussion_r1151094837
########## pinot-query-runtime/src/main/java/org/apache/pinot/query/runtime/operator/operands/FunctionOperand.java: ########## @@ -52,6 +52,9 @@ public FunctionOperand(RexExpression.FunctionCall functionCall, DataSchema dataS _resultName = computeColumnName(functionCall.getFunctionName(), _childOperandList); // TODO: Check type match between functionCall's data type and result type. _resultType = FunctionUtils.getColumnDataType(_functionInvoker.getResultClass()); + + boolean isTypeMatched = functionCall.getDataType() == _resultType.toDataType(); + Preconditions.checkState(isTypeMatched, "Mismatch function data type and result type"); Review Comment: from my perspective > Thanks for the help. I have a couple of questions. > > * For conversion(`parameterType.convert`), do I have to convert the `_resultType`(`fieldSpec.DataType`) to PinotDataType and perform the conversion or use the conversion function`FieldSpec.convertInternal` directly. Either should work. but would go with the safest, which is what FunctionInvoker handles parameter type > * Second, what should be the outcome of the failing `caswhen` query? It should fail, or with conversion, it should execute without error. it should not fail at all at this stage --> calcite should ensure the resulting data type is consistent. otherwise it will fail in planner before reaching runtime. If the data is not what it said it is (from input) then the failure handling is the same as all other operators -- 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