[ https://issues.apache.org/jira/browse/CALCITE-2404?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stamatis Zampetakis updated CALCITE-2404: ----------------------------------------- Description: Queries on tables containing structured types cannot be executed by the Calcite runtime. A plan like the one that follows (taken from CALCITE-2220) can be translated to neither Bindable nor EnumerableConvention. {noformat} LogicalProject(EXPR$0=[$0]) LogicalProject(EXPR$0$0=[ITEM($6, 1).EMPNO], EXPR$0$1=[ITEM($6, 1).ENAME], EXPR$0$2=[ITEM($6, 1).DETAIL]) LogicalProject(DEPTNO=[$0], NAME=[$1], TYPE=[$2.TYPE], DESC=[$2.DESC], A=[$2.OTHERS.A], B=[$2.OTHERS.B], EMPLOYEES=[$3]) LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]]) {noformat} More precisely, if a logical plan contains a RexFieldAccess expression that does not refer to a RexCorrelVariable it cannot be handled by the RexToLixTranslator. The translation will fail when calling [RexToLixTranslator|[https://github.com/apache/calcite/blob/5bbc501a565494442784f65870a20cd65a5016f4/core/src/main/java/org/apache/calcite/adapter/enumerable/RexToLixTranslator.java#L686]]. was: Queries on tables containing structured types cannot be executed by the Calcite runtime. A plan like the one that follows (taken from CALCITE-2220) can be translated to neither Bindable nor EnumerableConvention. {noformat} LogicalProject(EXPR$0=[$0]) LogicalProject(EXPR$0$0=[ITEM($6, 1).EMPNO], EXPR$0$1=[ITEM($6, 1).ENAME], EXPR$0$2=[ITEM($6, 1).DETAIL]) LogicalProject(DEPTNO=[$0], NAME=[$1], TYPE=[$2.TYPE], DESC=[$2.DESC], A=[$2.OTHERS.A], B=[$2.OTHERS.B], EMPLOYEES=[$3]) LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]]) {noformat} More precisely, if a logical plan contains a RexFieldAccess expression that does not refer to a RexCorrelVariable it cannot be handled by the RexToLixTranslator. The translation will fail when calling [RexToLixTranslator#translate0|[https://github.com/apache/calcite/blob/5bbc501a565494442784f65870a20cd65a5016f4/core/src/main/java/org/apache/calcite/adapter/enumerable/RexToLixTranslator.java#L686]]. > Accessing structured-types is not implemented by the runtime > ------------------------------------------------------------ > > Key: CALCITE-2404 > URL: https://issues.apache.org/jira/browse/CALCITE-2404 > Project: Calcite > Issue Type: Bug > Components: core > Affects Versions: 1.17.0 > Reporter: Stamatis Zampetakis > Assignee: Julian Hyde > Priority: Blocker > > Queries on tables containing structured types cannot be executed by the > Calcite runtime. A plan like the one that follows (taken from CALCITE-2220) > can be translated to neither Bindable nor EnumerableConvention. > > {noformat} > LogicalProject(EXPR$0=[$0]) > LogicalProject(EXPR$0$0=[ITEM($6, 1).EMPNO], EXPR$0$1=[ITEM($6, 1).ENAME], > EXPR$0$2=[ITEM($6, 1).DETAIL]) > LogicalProject(DEPTNO=[$0], NAME=[$1], TYPE=[$2.TYPE], DESC=[$2.DESC], > A=[$2.OTHERS.A], B=[$2.OTHERS.B], EMPLOYEES=[$3]) > LogicalTableScan(table=[[CATALOG, SALES, DEPT_NESTED]]) > {noformat} > > More precisely, if a logical plan contains a RexFieldAccess expression that > does not refer to a RexCorrelVariable it cannot be handled by the > RexToLixTranslator. The translation will fail when calling > [RexToLixTranslator|[https://github.com/apache/calcite/blob/5bbc501a565494442784f65870a20cd65a5016f4/core/src/main/java/org/apache/calcite/adapter/enumerable/RexToLixTranslator.java#L686]]. > > -- This message was sent by Atlassian JIRA (v7.6.3#76005)