You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Julian Hyde (Jira)" <ji...@apache.org> on 2020/02/11 18:19:00 UTC
[jira] [Updated] (CALCITE-3784) RexCall toString digest gives OOM
while huge expression is evaluated
[ https://issues.apache.org/jira/browse/CALCITE-3784?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Julian Hyde 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 14GB?
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:
public RelBuilder filter(Iterable<CorrelationId> variablesSet,
Iterable<? extends RexNode> predicates) {
final RexNode simplifiedPredicates =
simplifier.simplifyFilterPredicates(predicates);
if (simplifiedPredicates == null) {
return empty();
}
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
>
> 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?
>
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)