[ https://issues.apache.org/jira/browse/BEAM-9311?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrew Pilloud updated BEAM-9311: --------------------------------- Status: Open (was: Triage Needed) > ZetaSQL Named Parameters are lower case, don't treat as case-sensitive > ---------------------------------------------------------------------- > > Key: BEAM-9311 > URL: https://issues.apache.org/jira/browse/BEAM-9311 > Project: Beam > Issue Type: Bug > Components: dsl-sql-zetasql > Reporter: Andrew Pilloud > Assignee: Andrew Pilloud > Priority: Major > > ZetaSQL Named Parameters are case insensitive, always resolved to lower case. > See: > https://github.com/google/zetasql/blob/79adcd0fe227173e68ed7aa88f580a691ebe82c2/zetasql/analyzer/resolver_expr.cc#L1342 > java.lang.NullPointerException at > org.apache.beam.sdk.extensions.sql.zetasql.translation.ExpressionConverter.convertResolvedParameter(ExpressionConverter.java:962) > at > org.apache.beam.sdk.extensions.sql.zetasql.translation.ExpressionConverter.convertRexNodeFromResolvedExpr(ExpressionConverter.java:311) > at > org.apache.beam.sdk.extensions.sql.zetasql.translation.ExpressionConverter.convertRexNodeFromComputedColumnWithFieldList(ExpressionConverter.java:460) > at > org.apache.beam.sdk.extensions.sql.zetasql.translation.ExpressionConverter.retrieveRexNode(ExpressionConverter.java:207) > at > org.apache.beam.sdk.extensions.sql.zetasql.translation.ProjectScanConverter.convert(ProjectScanConverter.java:45) > at > org.apache.beam.sdk.extensions.sql.zetasql.translation.ProjectScanConverter.convert(ProjectScanConverter.java:29) > at > org.apache.beam.sdk.extensions.sql.zetasql.translation.QueryStatementConverter.convertNode(QueryStatementConverter.java:97) > at > org.apache.beam.sdk.extensions.sql.zetasql.translation.QueryStatementConverter.convert(QueryStatementConverter.java:84) > at > org.apache.beam.sdk.extensions.sql.zetasql.translation.QueryStatementConverter.convertRootQuery(QueryStatementConverter.java:51) > at > org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLPlannerImpl.rel(ZetaSQLPlannerImpl.java:160) > at > org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLQueryPlanner.convertToBeamRelInternal(ZetaSQLQueryPlanner.java:131) > at > org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLQueryPlanner.convertToBeamRel(ZetaSQLQueryPlanner.java:115) > at > org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLQueryPlanner.convertToBeamRel(ZetaSQLQueryPlanner.java:103) > at > org.apache.beam.sdk.extensions.sql.zetasql.ZetaSQLDialectSpecTest.testNamedParameterQuery(ZetaSQLDialectSpecTest.java:3245) > > Repro: > > {code:java} > @Test > public void testNamedParameterQuery() { > String sql = "SELECT @ColA AS ColA"; > ImmutableMap<String, Value> params = ImmutableMap.of("ColA", > Value.createInt64Value(5)); > ZetaSQLQueryPlanner zetaSQLQueryPlanner = new ZetaSQLQueryPlanner(config); > BeamRelNode beamRelNode = zetaSQLQueryPlanner.convertToBeamRel(sql, params); > PCollection<Row> stream = BeamSqlRelUtils.toPCollection(pipeline, > beamRelNode); > final Schema schema = Schema.builder().addInt64Field("field1").build(); > > PAssert.that(stream).containsInAnyOrder(Row.withSchema(schema).addValues(5L).build()); > > pipeline.run().waitUntilFinish(Duration.standardMinutes(PIPELINE_EXECUTION_WAITTIME_MINUTES)); > } > {code} > > -- This message was sent by Atlassian Jira (v8.3.4#803005)