[ 
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)

Reply via email to