[ 
https://issues.apache.org/jira/browse/IGNITE-28577?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Plekhanov updated IGNITE-28577:
---------------------------------------
    Description: 
It takes to long for planning NOT IN with large amount of operands, for example:
{code:java}
        String in = IntStream.range(1, 
1000).mapToObj(Integer::toString).collect(Collectors.joining(", "));
        assertQuery("SELECT * FROM t WHERE i NOT IN (" + in + ")").check();
{code}
Hangs and throw an error after planner timeout.
But the same expression in projects works fine:
{code:java}
        String in = IntStream.range(1, 
1000).mapToObj(Integer::toString).collect(Collectors.joining(", "));
        assertQuery("SELECT i NOT IN (" + in + ") FROM t").check();
{code}
Condition with IN also works fine:

{code:java}
        String in = IntStream.range(1, 
1000).mapToObj(Integer::toString).collect(Collectors.joining(", "));
        assertQuery("SELECT * FROM t WHERE i IN (" + in + ")").check();
{code}
 

  was:
It takes to long for planning NOT IN with large amount of operands, for example:
{code:java}
        String in = IntStream.range(1, 
1000).mapToObj(Integer::toString).collect(Collectors.joining(", "));

        assertQuery("SELECT * FROM t WHERE i NOT IN (" + in + ")").check();
{code}
Hangs and throw an error after planner timeout.
But the same expression in projects works fine:
{code:java}
        String in = IntStream.range(1, 
1000).mapToObj(Integer::toString).collect(Collectors.joining(", "));

        assertQuery("SELECT i NOT IN (" + in + ") FROM t").check();
{code}
Condition with IN also works fine:

{code:java}
        String in = IntStream.range(1, 
1000).mapToObj(Integer::toString).collect(Collectors.joining(", "));

        assertQuery("SELECT * FROM t WHERE i IN (" + in + ")").check();
{code}
 


> Calcite engine.Condition with scalar NOT IN with large amount of operands 
> hangs while planning 
> -----------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-28577
>                 URL: https://issues.apache.org/jira/browse/IGNITE-28577
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Aleksey Plekhanov
>            Priority: Major
>              Labels: calcite, ise
>
> It takes to long for planning NOT IN with large amount of operands, for 
> example:
> {code:java}
>         String in = IntStream.range(1, 
> 1000).mapToObj(Integer::toString).collect(Collectors.joining(", "));
>         assertQuery("SELECT * FROM t WHERE i NOT IN (" + in + ")").check();
> {code}
> Hangs and throw an error after planner timeout.
> But the same expression in projects works fine:
> {code:java}
>         String in = IntStream.range(1, 
> 1000).mapToObj(Integer::toString).collect(Collectors.joining(", "));
>         assertQuery("SELECT i NOT IN (" + in + ") FROM t").check();
> {code}
> Condition with IN also works fine:
> {code:java}
>         String in = IntStream.range(1, 
> 1000).mapToObj(Integer::toString).collect(Collectors.joining(", "));
>         assertQuery("SELECT * FROM t WHERE i IN (" + in + ")").check();
> {code}
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to