[
https://issues.apache.org/jira/browse/CALCITE-6605?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stamatis Zampetakis reassigned CALCITE-6605:
--------------------------------------------
Assignee: EveyWu
> Lattice SQL supports complex column expressions
> -----------------------------------------------
>
> Key: CALCITE-6605
> URL: https://issues.apache.org/jira/browse/CALCITE-6605
> Project: Calcite
> Issue Type: Improvement
> Reporter: EveyWu
> Assignee: EveyWu
> Priority: Minor
> Labels: pull-request-available
> Fix For: 1.39.0
>
>
> In Lattice, using a complex expression in the measures triggers an
> `UnsupportedOperationException`.
> {code:java}
> @Test void testExpressionLatticeSql4() throws Exception {
> final Tester t = new Tester().foodmart().withEvolve(true);
> final String q0 = "select\n"
> + " \"num_children_at_home\" + 12 as \"n12\",\n"
> + " sum(\"num_children_at_home\" + 10) as \"n10\",\n"
> + " sum(\"num_children_at_home\" + 11) as \"n11\",\n"
> + " count(*) as c\n"
> + "from \"customer\"\n"
> + "group by \"num_children_at_home\" + 12";
> t.addQuery(q0);
> final Lattice lattice = Iterables.getOnlyElement(t.s.latticeMap.values());
> Builder groupSetBuilder = ImmutableBitSet.builder();
> ImmutableList<Measure> measures = lattice.defaultMeasures;
> measures.forEach(measure -> groupSetBuilder.addAll(measure.argBitSet()));
> ImmutableBitSet groupSet = groupSetBuilder.build();
> lattice.sql(groupSet, true, measures);
> }
> {code}
> Exception information:
> {code:java}
> java.lang.UnsupportedOperationException
> at
> org.apache.calcite.materialize.Lattice.lambda$resolveField$0(Lattice.java:385)
> at
> org.apache.calcite.rel.rel2sql.SqlImplementor$SimpleContext.field(SqlImplementor.java:1563)
> at
> org.apache.calcite.rel.rel2sql.SqlImplementor$Context.toSql(SqlImplementor.java:661)
> at
> org.apache.calcite.rel.rel2sql.SqlImplementor$Context.toSql(SqlImplementor.java:1179)
> at
> org.apache.calcite.rel.rel2sql.SqlImplementor$Context.callToSql(SqlImplementor.java:861)
> at
> org.apache.calcite.rel.rel2sql.SqlImplementor$Context.toSql(SqlImplementor.java:834)
> at
> org.apache.calcite.materialize.Lattice$SqlWriter.write(Lattice.java:791)
> at
> org.apache.calcite.materialize.Lattice$DerivedColumn.toSql(Lattice.java:760)
> at org.apache.calcite.materialize.Lattice.sql(Lattice.java:295)
> [0;1mat
> org.apache.calcite.materialize.LatticeSuggesterTest.testExpressionLatticeSql4(LatticeSuggesterTest.java:835)
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)