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

Andrey Mashenkov updated IGNITE-20167:
--------------------------------------
    Description: 
As for now, we misuse SqlSchemaManager methods for getting a schema.
1. We should always use a version that is visible to a current transaction at 
query start, instead of getting the latest one.
2. When getting query message on remot, we wait for an actual schema version 
first, and then get the latest version one more time for fragment execution. 
However, we already know the required version and must use it, otherwise 
fragment can use schema "from the future".
3. Query plan cache key must have a version as well.
Also, there is a bug IgniteSchemaTable.unwrap method, we should be able to 
unwrap table descriptor.


  was:
As for now, we misuse SqlSchemaManager methods to get schema.
1. We should always use a version that is visible to current transaction at 
query start, instead of getting the latest one.
2. We wait for actual version on remote side, and then try to get latest 
version. However, we already know the required version and must use it, 
otherwise we may get version "from the transaction future".
3. Query plan cache key must have a version as well.
Also, there is a bug IgniteSchemaTable.unwrap method, we should be able to 
unwrap table descriptor.



> Query execution flow uses catalog version.
> ------------------------------------------
>
>                 Key: IGNITE-20167
>                 URL: https://issues.apache.org/jira/browse/IGNITE-20167
>             Project: Ignite
>          Issue Type: Improvement
>          Components: sql
>            Reporter: Andrey Mashenkov
>            Assignee: Andrey Mashenkov
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-beta2
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> As for now, we misuse SqlSchemaManager methods for getting a schema.
> 1. We should always use a version that is visible to a current transaction at 
> query start, instead of getting the latest one.
> 2. When getting query message on remot, we wait for an actual schema version 
> first, and then get the latest version one more time for fragment execution. 
> However, we already know the required version and must use it, otherwise 
> fragment can use schema "from the future".
> 3. Query plan cache key must have a version as well.
> Also, there is a bug IgniteSchemaTable.unwrap method, we should be able to 
> unwrap table descriptor.



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

Reply via email to