[jira] [Created] (FLINK-12206) cannot query nested fields using Flink SQL

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (FLINK-12206) cannot query nested fields using Flink SQL

Shang Yuanchun (Jira)
Yu Yang created FLINK-12206:
-------------------------------

             Summary: cannot query nested fields using Flink SQL
                 Key: FLINK-12206
                 URL: https://issues.apache.org/jira/browse/FLINK-12206
             Project: Flink
          Issue Type: Bug
          Components: Table SQL / Planner
    Affects Versions: 1.8.0
            Reporter: Yu Yang


We feed list of events with the following RowTypeInfo  to flink,
{code:java}
Row(
  timestamp: Long,
  userId: Long,
  eventType: String,
  auxData: Map<String, String>,
  userActions:
     Map<String, Row(timestamp: Long, url: String, referralUrl: String)>,
  diagnostics: Row(hostname: String, ipaddress: String)
)
{code}
and run the following SQL query
{code:sql}
SELECT event.userId, event.diagnostics.hostname

FROM event

WHERE event.userId < 10;

{code}
 

We are prompted "Column 'diagnostics.hostname' not found in table 'event'". Do I miss anything while constructuing the RowTypeInfo? Or it is because any SQL validation issue? 

 

 

The following is the detailed exceptions:

org.apache.flink.client.program.ProgramInvocationException: The main method caused an error: SQL validation failed. From line 1, column 28 to line 1, column 47: Column 'diagnostics.hostname' not found in table 'event'

at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:546)

at org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:421)

at org.apache.flink.client.program.ClusterClient.run(ClusterClient.java:423)

at org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:813)

at org.apache.flink.client.cli.CliFrontend.runProgram(CliFrontend.java:287)

at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:213)

at org.apache.flink.client.cli.CliFrontend.parseParameters(CliFrontend.java:1050)

at org.apache.flink.client.cli.CliFrontend.lambda$main$11(CliFrontend.java:1126)

at org.apache.flink.runtime.security.NoOpSecurityContext.runSecured(NoOpSecurityContext.java:30)

at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1126)

Caused by: org.apache.flink.table.api.ValidationException: SQL validation failed. From line 1, column 28 to line 1, column 47: Column 'diagnostics.hostname' not found in table 'event'

at org.apache.flink.table.calcite.FlinkPlannerImpl.validate(FlinkPlannerImpl.scala:109)

at org.apache.flink.table.api.TableEnvironment.sqlQuery(TableEnvironment.scala:746)

at com.pinterest.flink.samples.ThriftRowSerializerSample.main(ThriftRowSerializerSample.java:71)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:529)

... 9 more

Caused by: org.apache.calcite.runtime.CalciteContextException: From line 1, column 28 to line 1, column 47: Column 'diagnostics.hostname' not found in table 'event'

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

at org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:463)

at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:783)

at org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:768)

at org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:4764)

at org.apache.calcite.sql.validate.DelegatingScope.fullyQualify(DelegatingScope.java:439)

at org.apache.calcite.sql.validate.SqlValidatorImpl$Expander.visit(SqlValidatorImpl.java:5624)

at org.apache.calcite.sql.validate.SqlValidatorImpl$Expander.visit(SqlValidatorImpl.java:5606)

at org.apache.calcite.sql.SqlIdentifier.accept(SqlIdentifier.java:334)

at org.apache.calcite.sql.validate.SqlValidatorImpl.expand(SqlValidatorImpl.java:5213)

at org.apache.calcite.sql.validate.SqlValidatorImpl.expandSelectItem(SqlValidatorImpl.java:435)

at org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelectList(SqlValidatorImpl.java:4028)

at org.apache.calcite.sql.validate.SqlValidatorImpl.validateSelect(SqlValidatorImpl.java:3291)

at org.apache.calcite.sql.validate.SelectNamespace.validateImpl(SelectNamespace.java:60)

at org.apache.calcite.sql.validate.AbstractNamespace.validate(AbstractNamespace.java:84)

at org.apache.calcite.sql.validate.SqlValidatorImpl.validateNamespace(SqlValidatorImpl.java:972)

at org.apache.calcite.sql.validate.SqlValidatorImpl.validateQuery(SqlValidatorImpl.java:948)

at org.apache.calcite.sql.SqlSelect.validate(SqlSelect.java:225)

at org.apache.calcite.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:923)

at org.apache.calcite.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:633)

at org.apache.flink.table.calcite.FlinkPlannerImpl.validate(FlinkPlannerImpl.scala:105)

... 16 more

Caused by: org.apache.calcite.sql.validate.SqlValidatorException: Column 'diagnostics.hostname' not found in table 'event'

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

at org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:463)

at org.apache.calcite.runtime.Resources$ExInst.ex(Resources.java:572)

... 35 more

 

 

 

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)