You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Pavel Vinokurov (JIRA)" <ji...@apache.org> on 2018/03/22 09:05:00 UTC

[jira] [Updated] (IGNITE-8009) SQL local query to a cache with queryParallelism>1 doesn't use index

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

Pavel Vinokurov updated IGNITE-8009:
------------------------------------
    Description: 
queryParallelism>1 + setLocal(true)  changes the query plan and exclude usage of the sql index.

Explain query with setLocal(false) and queryParallelism=1 :
SELECT
    T__Z0.ID AS __C0_0
FROM TABLE(COL VARCHAR='name0') I__Z1
    /* function */
INNER JOIN PUBLIC.PERSON T__Z0
    /* PUBLIC.PERSON_NAME: NAME = I__Z1.COL */
    ON 1=1
WHERE (T__Z0.SOURNAME = 'sourname0')
    AND (T__Z0.NAME = I__Z1.COL)

Explain query with setLocal(true) and queryParallelism=2 :
SELECT
    T__Z1.ID AS __C0_0
FROM PUBLIC.PERSON T__Z1
    /* PUBLIC.PERSON.__SCAN_ */
    /* WHERE T__Z1.SOURNAME = 'sourname0'
    */
INNER JOIN TABLE(COL VARCHAR='name0') I__Z0
    /* function: COL = T__Z1.NAME */
    ON 1=1
WHERE (T__Z1.SOURNAME = 'sourname0')
    AND (T__Z1.NAME = I__Z0.COL)

  was:
queryParallelism>1 + setLocal(true)  changes the query plan and exclude usage of the sql index.

Explain query with setLocal(false) and queryParallelism=1
SELECT
    T__Z0.ID AS __C0_0
FROM TABLE(COL VARCHAR='name0') I__Z1
    /* function */
INNER JOIN PUBLIC.PERSON T__Z0
    /* PUBLIC.PERSON_NAME: NAME = I__Z1.COL */
    ON 1=1
WHERE (T__Z0.SOURNAME = 'sourname0')
    AND (T__Z0.NAME = I__Z1.COL)

Explain query with setLocal(true) and queryParallelism=2
SELECT
    T__Z1.ID AS __C0_0
FROM PUBLIC.PERSON T__Z1
    /* PUBLIC.PERSON.__SCAN_ */
    /* WHERE T__Z1.SOURNAME = 'sourname0'
    */
INNER JOIN TABLE(COL VARCHAR='name0') I__Z0
    /* function: COL = T__Z1.NAME */
    ON 1=1
WHERE (T__Z1.SOURNAME = 'sourname0')
    AND (T__Z1.NAME = I__Z0.COL)


> SQL local query to a cache with queryParallelism>1  doesn't use index
> ---------------------------------------------------------------------
>
>                 Key: IGNITE-8009
>                 URL: https://issues.apache.org/jira/browse/IGNITE-8009
>             Project: Ignite
>          Issue Type: Bug
>          Components: sql
>    Affects Versions: 2.3, 2.4
>            Reporter: Pavel Vinokurov
>            Priority: Major
>         Attachments: ExplainAndIndexReproducer.java
>
>
> queryParallelism>1 + setLocal(true)  changes the query plan and exclude usage of the sql index.
> Explain query with setLocal(false) and queryParallelism=1 :
> SELECT
>     T__Z0.ID AS __C0_0
> FROM TABLE(COL VARCHAR='name0') I__Z1
>     /* function */
> INNER JOIN PUBLIC.PERSON T__Z0
>     /* PUBLIC.PERSON_NAME: NAME = I__Z1.COL */
>     ON 1=1
> WHERE (T__Z0.SOURNAME = 'sourname0')
>     AND (T__Z0.NAME = I__Z1.COL)
> Explain query with setLocal(true) and queryParallelism=2 :
> SELECT
>     T__Z1.ID AS __C0_0
> FROM PUBLIC.PERSON T__Z1
>     /* PUBLIC.PERSON.__SCAN_ */
>     /* WHERE T__Z1.SOURNAME = 'sourname0'
>     */
> INNER JOIN TABLE(COL VARCHAR='name0') I__Z0
>     /* function: COL = T__Z1.NAME */
>     ON 1=1
> WHERE (T__Z1.SOURNAME = 'sourname0')
>     AND (T__Z1.NAME = I__Z0.COL)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)