Julian Hyde created CALCITE-791:
-----------------------------------
Summary: Optimize pushFilterPastProject
Key: CALCITE-791
URL: https://issues.apache.org/jira/browse/CALCITE-791
Project: Calcite
Issue Type: Bug
Reporter: Julian Hyde
Assignee: Julian Hyde
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.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)