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

Support LogicalRepeatUnion in RelShuttle

    XMLWordPrintableJSON

Details

    Description

      follow https://issues.apache.org/jira/browse/CALCITE-6959 

      Currently RelShuttle also do not support LogicalRepeatUnion (I also had check for other Logical Type, seems remain LogicalRepeatUnion need to support) :

      1. LogicalRepeatUnion is not overridden for accept(RelShuttle shuttle) ;
      1. RelShuttle#visit not support for LogicalRepeatUnion ;

      so follow test would not work:

      @Test void testRelShuttleForLogicalRepeatUnion() {
        final String sql = "WITH RECURSIVE delta(n) AS (\n"
            + "VALUES (1)\n"
            + "UNION ALL\n"
            + "SELECT n+1 FROM delta WHERE n < 10\n"
            + ")\n"
            + "SELECT * FROM delta";
        final RelNode rel = sql(sql).toRel();
        final List<RelNode> rels = new ArrayList<>();
        final RelShuttleImpl visitor = new RelShuttleImpl() {
          @Override public RelNode visit(LogicalRepeatUnion repeatUnion) {
            RelNode visitedRel = super.visit(repeatUnion);
            rels.add(visitedRel);
            return visitedRel;
          }
        };
        rel.accept(visitor);
        assertThat(rels, hasSize(1));
        assertThat(rels.get(0), instanceOf(LogicalRepeatUnion.class));
      } 

      others in Logic seams OK for it, need a pr to fix it.

      Attachments

        Issue Links

          Activity

            People

              xuzifu666 Yu Xu
              xuzifu666 Yu Xu
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: