[ 
https://issues.apache.org/jira/browse/IGNITE-5572?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16154002#comment-16154002
 ] 

Vladimir Ozerov commented on IGNITE-5572:
-----------------------------------------

[~al.psc], my comments:
1) {{DdlStatementsProcessor}} - what is the reason of the following limitation? 
"ALTER TABLE may only be executed on tables that do not have actual class for 
cache value." Even if it makes sense, as a user I cannot understand what does 
it mean and how to fix it.
2) {{GridQUeryProcessor}} - still cannot understand the following 
{{op0.ifNotExists() && op0.columns().size() == 1}}. If "IF NOT EXISTS" is only 
allowed on a single column, then what is the reason to check for 
{{op0.columns().size() == 1}}?

> DDL: Support ALTER TABLE ADD COLUMN
> -----------------------------------
>
>                 Key: IGNITE-5572
>                 URL: https://issues.apache.org/jira/browse/IGNITE-5572
>             Project: Ignite
>          Issue Type: Task
>          Components: sql
>            Reporter: Vladimir Ozerov
>            Assignee: Alexander Paschenko
>             Fix For: 2.3
>
>
> We should start gradual implementation of {{ALTER TABLE}} command. Let's 
> start with the most simple part - {{ADD COLUMN}}. Proposed design:
> 1) Send a message over a ring, similar to how we do that for create index
> 2) On local node: update relevant QueryEntity, update data strcutrues in 
> {{GridQueryProcessor}}, update {{IgniteH2Indexing}} data structures, execute 
> {{ALTER TABLE}} command on H2 database (global table lock must be acquired).
> 3) Make sure that update to {{QueryEntity}} is properly saved if persistence 
> is enabled.
> Feature should be covered with tests thoroughly:
> 1) Positive cases
> 2) Negative cases (no schema, no table, column already exists)
> 3) Test with concurrent SQL operations
> 4) Test with concurrent node restarts



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to