Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.4.0-incubating
    • Component/s: None
    • Labels:
      None

      Description

      The method RelOptUtil.pushFilterPastProject is called many times, in particular from stats methods getDistinctRowCount(Project, ImmutableBitSet, RexNode) and getSelectivity(Project, RexNode). It works by creating two RexPrograms and then merging them, which is inefficient, especially for simple, common cases where the project is the identity or a permutation of the input fields.

      We need to use a simpler approach than merging RexPrograms, either always, or at least in the common cases. The benefit will be reduced gc pressure.

        Activity

        Show
        julianhyde Julian Hyde added a comment - Fixed in http://git-wip-us.apache.org/repos/asf/incubator-calcite/commit/c9fe32b7 .
        Hide
        jnadeau Jacques Nadeau added a comment -

        Resolved in release 1.4.0-incubating (2015-08-23)

        Show
        jnadeau Jacques Nadeau added a comment - Resolved in release 1.4.0-incubating (2015-08-23)

          People

          • Assignee:
            julianhyde Julian Hyde
            Reporter:
            julianhyde Julian Hyde
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development