[ https://issues.apache.org/jira/browse/CALCITE-3784?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ravi Kapoor updated CALCITE-3784: --------------------------------- Description: I have some complex query which has tens of thousands of rex expressions and this expression is used in filter expression in the query. On creating a filter below code gets called: {code} public RelBuilder filter(Iterable<CorrelationId> variablesSet, Iterable<? extends RexNode> predicates) { final RexNode simplifiedPredicates = simplifier.simplifyFilterPredicates(predicates); if (simplifiedPredicates == null) { return empty(); } {code} RexSimplify further adds the rexnode in the Set<RexNode> calling hashcode() internally which calls toString() Is there any way to avoid this computeDigest Call which creates complex string object and blows up the RAM about 10GB? was: I have some complex query which has tens of thousands of rex expressions and this expression is used in filter expression in the query. On creating a filter below code gets called: {code} public RelBuilder filter(Iterable<CorrelationId> variablesSet, Iterable<? extends RexNode> predicates) { final RexNode simplifiedPredicates = simplifier.simplifyFilterPredicates(predicates); if (simplifiedPredicates == null) { return empty(); } {code} RexSimplify further adds the rexnode in the Set<RexNode> calling hashcode() internally which calls toString() Is there any way to avoid this computeDigest Call which creates complex string object and blows up the RAM about 14GB? > RexCall toString digest gives OOM while huge expression is evaluated > -------------------------------------------------------------------- > > Key: CALCITE-3784 > URL: https://issues.apache.org/jira/browse/CALCITE-3784 > Project: Calcite > Issue Type: Bug > Components: core > Reporter: Ravi Kapoor > Priority: Critical > Attachments: OOM Screenshot.png > > > I have some complex query which has tens of thousands of rex expressions and > this expression is used in filter expression in the query. > On creating a filter below code gets called: > {code} > public RelBuilder filter(Iterable<CorrelationId> variablesSet, > Iterable<? extends RexNode> predicates) { > final RexNode simplifiedPredicates = > simplifier.simplifyFilterPredicates(predicates); > if (simplifiedPredicates == null) { > return empty(); > } > {code} > RexSimplify further adds the rexnode in the Set<RexNode> calling hashcode() > internally which calls toString() > Is there any way to avoid this computeDigest Call which creates complex > string object and blows up the RAM about 10GB? -- This message was sent by Atlassian Jira (v8.3.4#803005)