Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
None
-
None
Description
In Lattice, using a complex expression in the measures triggers an `UnsupportedOperationException`.
@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); }
Exception information:
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)
Attachments
Issue Links
- links to