ibzib commented on a change in pull request #14241:
URL: https://github.com/apache/beam/pull/14241#discussion_r605309699
##########
File path:
sdks/java/extensions/sql/zetasql/src/main/java/org/apache/beam/sdk/extensions/sql/zetasql/BeamJavaUdfCalcRule.java
##########
@@ -52,4 +117,57 @@ public RelNode convert(RelNode rel) {
RelOptRule.convert(input,
input.getTraitSet().replace(BeamLogicalConvention.INSTANCE)),
calc.getProgram());
}
+
+ /**
+ * Returns true only if the literal can be correctly implemented by {@link
+ * org.apache.beam.sdk.extensions.sql.impl.rel.BeamCalcRel} in ZetaSQL.
+ */
+ private static boolean udfSupportsLiteral(RexLiteral rexLiteral) {
+ switch (rexLiteral.getType().getSqlTypeName()) {
+ case BIGINT:
+ case BOOLEAN:
+ case DECIMAL:
+ case DOUBLE:
+ case TIME:
+ case TIMESTAMP:
+ case TIMESTAMP_WITH_LOCAL_TIME_ZONE:
+ case VARBINARY:
Review comment:
Done. (Also changed literals for symmetry.)
##########
File path:
sdks/java/extensions/sql/zetasql/src/main/java/org/apache/beam/sdk/extensions/sql/zetasql/BeamJavaUdfCalcRule.java
##########
@@ -52,4 +117,57 @@ public RelNode convert(RelNode rel) {
RelOptRule.convert(input,
input.getTraitSet().replace(BeamLogicalConvention.INSTANCE)),
calc.getProgram());
}
+
+ /**
+ * Returns true only if the literal can be correctly implemented by {@link
+ * org.apache.beam.sdk.extensions.sql.impl.rel.BeamCalcRel} in ZetaSQL.
+ */
+ private static boolean udfSupportsLiteral(RexLiteral rexLiteral) {
+ switch (rexLiteral.getType().getSqlTypeName()) {
+ case BIGINT:
+ case BOOLEAN:
+ case DECIMAL:
+ case DOUBLE:
+ case TIME:
+ case TIMESTAMP:
+ case TIMESTAMP_WITH_LOCAL_TIME_ZONE:
+ case VARBINARY:
+ case VARCHAR:
+ return true;
+ case DATE: // BEAM-11990
+ default:
+ return false;
+ }
+ }
+
+ /**
+ * Returns true only if the input ref can be correctly implemented by {@link
+ * org.apache.beam.sdk.extensions.sql.impl.rel.BeamCalcRel} in ZetaSQL.
+ */
+ private static boolean udfSupportsInput(RexInputRef rexInputRef) {
Review comment:
Done. (Also changed literals for symmetry.)
--
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.
For queries about this service, please contact Infrastructure at:
[email protected]