[
https://issues.apache.org/jira/browse/BEAM-9149?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kyle Weaver updated BEAM-9149:
------------------------------
Description:
While they are not yet exposed to the end user, ZetaSQL query parameters are
currently being passed internally. However, the existing code assumes that all
parameters are named parameters, not positional parameters. To support
positional parameters, we will need to make at least the following changes:
1) Set mode to PARAMETER_POSITIONAL and use addPositionalQueryParameter instead
of addQueryParameter in SqlAnalyzer:
https://github.com/apache/beam/blob/671b02ac5f1be87a591de8f5f456d0e5a199d771/sdks/java/extensions/sql/zetasql/src/main/java/org/apache/beam/sdk/extensions/sql/zetasql/SqlAnalyzer.java#L119
2) Code currently takes a Map<String, Value> everywhere parameters are
provided. This is not suitable for positional parameters, which are better
represented as an ordered collection such as a list.
was:
While they are not yet exposed to the end user, ZetaSQL query parameters are
currently being passed internally. However, the existing code assumes that all
parameters are named parameters, not positional parameters. To support
positional parameters, we will need to make at least the following changes:
1) Set mode to PARAMETER_POSITIONAL and use addPositionalQueryParameter instead
of addQueryParameter in SqlAnalyzer:
https://github.com/apache/beam/blob/671b02ac5f1be87a591de8f5f456d0e5a199d771/sdks/java/extensions/sql/zetasql/src/main/java/org/apache/beam/sdk/extensions/sql/zetasql/SqlAnalyzer.java#L119
2) Code currently assumes that resolved parameters are named. While even
positional parameters must be named when they are used as inputs, after they
are resolved their names are removed. Thus this check will deref a null pointer
and must be fixed:
https://github.com/apache/beam/blob/8915d6e95c405aeee0f29152545d3210e8e09f1f/sdks/java/extensions/sql/zetasql/src/main/java/org/apache/beam/sdk/extensions/sql/zetasql/translation/ExpressionConverter.java#L1004
> Support ZetaSQL positional parameters
> -------------------------------------
>
> Key: BEAM-9149
> URL: https://issues.apache.org/jira/browse/BEAM-9149
> Project: Beam
> Issue Type: New Feature
> Components: dsl-sql-zetasql
> Reporter: Kyle Weaver
> Assignee: Kyle Weaver
> Priority: Major
>
> While they are not yet exposed to the end user, ZetaSQL query parameters are
> currently being passed internally. However, the existing code assumes that
> all parameters are named parameters, not positional parameters. To support
> positional parameters, we will need to make at least the following changes:
> 1) Set mode to PARAMETER_POSITIONAL and use addPositionalQueryParameter
> instead of addQueryParameter in SqlAnalyzer:
> https://github.com/apache/beam/blob/671b02ac5f1be87a591de8f5f456d0e5a199d771/sdks/java/extensions/sql/zetasql/src/main/java/org/apache/beam/sdk/extensions/sql/zetasql/SqlAnalyzer.java#L119
> 2) Code currently takes a Map<String, Value> everywhere parameters are
> provided. This is not suitable for positional parameters, which are better
> represented as an ordered collection such as a list.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)