EveyWu created CALCITE-6605:
--------------------------------
Summary: 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
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)