Anthrino commented on code in PR #3677: URL: https://github.com/apache/calcite/pull/3677#discussion_r1501265054
########## core/src/main/java/org/apache/calcite/adapter/enumerable/RexToLixTranslator.java: ########## @@ -647,58 +541,225 @@ private static Expression checkExpressionPadTruncate( } } + private Expression translateCastToDate(RelDataType sourceType, + Expression operand, ConstantExpression format, + Supplier<Expression> defaultExpression) { + + switch (sourceType.getSqlTypeName()) { + case CHAR: + case VARCHAR: + // If format string is supplied, parse formatted string into date + return Expressions.isConstantNull(format) + ? Expressions.call(BuiltInMethod.STRING_TO_DATE.method, operand) + : Expressions.call(Expressions.new_(BuiltInMethod.PARSE_DATE.method.getDeclaringClass()), Review Comment: Thanks for the pointers, I couldn't find an explicit usage of a non-static built-in method in `Expressions.call()`, but saw `getDeclaringClass()` used to build the target expression so using that pattern; I think it's easier to trace to the class of the method call even though its a slight hit on readability. -- 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...@calcite.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org