[ 
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)
>         at 
> org.apache.calcite.materialize.LatticeSuggesterTest.testExpressionLatticeSql4(LatticeSuggesterTest.java:835)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to