[ 
https://issues.apache.org/jira/browse/BEAM-12108?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kyle Weaver updated BEAM-12108:
-------------------------------
    Description: We want the STRUCT ZetaSQL type to correspond to 
org.apache.beam.sdk.values.Row in Java UDFs. But the type inference logic 
doesn't know how to create a Calcite struct type from a Row yet. 
https://github.com/apache/beam/blob/master/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/utils/CalciteUtils.java#L288
  (was: There are at least a couple reasons why this doesn't work yet:
 # Type inference. Returning a List seems to work okay because we preserve the 
return element type [1], but taking a List as an input doesn't work because we 
lose the parameters' element type(s) [2].
 # The current matching logic rejects the Calcite ARRAY operator. We can 
probably make it less strict. [3]

 [1] 
[https://github.com/apache/beam/blob/ffb00911b5d5579544fc4c699f186dd3e1cd2b83/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/ScalarFunctionImpl.java#L129]

[2] 
[https://github.com/apache/beam/blob/0c01636fc8610414859d946cb93eabc904123fc8/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/UdfImplReflectiveFunctionBase.java#L61]

[3] 
https://github.com/apache/beam/blob/315386cdfec6803b95f0b881d699e674f63d48ad/sdks/java/extensions/sql/zetasql/src/main/java/org/apache/beam/sdk/extensions/sql/zetasql/BeamJavaUdfCalcRule.java#L88-L89)

> Support STRUCT type in BeamJavaUdfCalcRule.
> -------------------------------------------
>
>                 Key: BEAM-12108
>                 URL: https://issues.apache.org/jira/browse/BEAM-12108
>             Project: Beam
>          Issue Type: New Feature
>          Components: dsl-sql-zetasql
>            Reporter: Kyle Weaver
>            Priority: P2
>
> We want the STRUCT ZetaSQL type to correspond to 
> org.apache.beam.sdk.values.Row in Java UDFs. But the type inference logic 
> doesn't know how to create a Calcite struct type from a Row yet. 
> https://github.com/apache/beam/blob/master/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/utils/CalciteUtils.java#L288



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to