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

Get the origin column, even if it is derived

    XMLWordPrintableJSON

    Details

    • Type: Wish
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.27.0
    • Component/s: None

      Description

      A case:

      final String sql1 = ""
          + "select empno, sum(sal) as all_sal\n"
          + "from emp\n"
          + "group by empno";
      

      When i try to get the `all_sal` origin column field,it will return null and it is derived. we always get the origin column although it is derived. We should overload this method and determine whether the column is derived by setting parameters.

       org.apache.calcite.rel.metadata.RelMetadataQuery#getColumnOrigin

      // code placeholder
      public RelColumnOrigin getColumnOrigin(RelNode rel, int column) {
        final Set<RelColumnOrigin> origins = getColumnOrigins(rel, column);
        if (origins == null || origins.size() != 1) {
          return null;
        }
        final RelColumnOrigin origin = Iterables.getOnlyElement(origins);
        return origin.isDerived() ? null : origin;
      }
      

       

       

       

       

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                xzh_dz xzh_dz
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 3.5h
                  3.5h