[
https://issues.apache.org/jira/browse/CALCITE-5350?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
raymond tsui updated CALCITE-5350:
----------------------------------
Description:
I am new here, and freshman in Sql and Calcite
i set the IN threshold to Integer.MAX_VALUE. Original Sql look like
{code:java}
select a,b from t1 where c=xxx and a in(...//500 element){code}
and then relNode look like
{code:java}
OR(....//$a=element above * 500){code}
i know that IN will convert to OR when the size of IN's emelents < threshold.
then i used perf, and i found the big overhead in RexSimplify.simplifyIs() and
simplifyNot() [{*}see it in attachment{*}]
i have read some calcite source code but still felt confused,Could somebody
explain the whole process when Calcaite meets IN ?
thx :)
was:
I am new here, and freshman in Sql and Calcite
i set the IN threshold to Integer.MAX_VALUE. Original Sql look like
{code:java}
select a,b from t1 where c=xxx and a in(...//500 element){code}
and then relNode look like
{code:java}
OR(....//$a=element above * 500){code}
i know that IN will convert to OR when the size of IN's emelents < threshold.
then i used perf, and i found the big overhead in RexSimplify.simplifyIs() [see
it in attachment]
i have read some calcite source code but still felt confused,Could somebody
explain the whole process when Calcaite meets IN ?
thx
> SimplifyNot with a big overhead
> -------------------------------
>
> Key: CALCITE-5350
> URL: https://issues.apache.org/jira/browse/CALCITE-5350
> Project: Calcite
> Issue Type: Improvement
> Reporter: raymond tsui
> Priority: Major
> Attachments: perf.png
>
>
> I am new here, and freshman in Sql and Calcite
> i set the IN threshold to Integer.MAX_VALUE. Original Sql look like
> {code:java}
> select a,b from t1 where c=xxx and a in(...//500 element){code}
> and then relNode look like
> {code:java}
> OR(....//$a=element above * 500){code}
> i know that IN will convert to OR when the size of IN's emelents < threshold.
> then i used perf, and i found the big overhead in RexSimplify.simplifyIs()
> and simplifyNot() [{*}see it in attachment{*}]
> i have read some calcite source code but still felt confused,Could somebody
> explain the whole process when Calcaite meets IN ?
> thx :)
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)