Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-6605

Lattice SQL supports complex column expressions

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • None
    • 1.39.0
    • 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

          Activity

            People

              eveywu EveyWu
              eveywu EveyWu
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: