[
https://issues.apache.org/jira/browse/IGNITE-5572?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16154016#comment-16154016
]
Alexander Paschenko commented on IGNITE-5572:
---------------------------------------------
[~vozerov]
1. The reason is that if we add new columns to the table whose values are, say,
those of actual class {{Person}}, on binary deserialization step values for
{{ALTER TABLE}} added columns won't make it to resulting object (there simply
won't be any new properties for them).
I agree that this deserves better error message.
2. {{GridSqlAlterTableAddColumn}} is Ignite's representation of that H2
command, that's why there's this redundant check. Probably I better split this
into an {{if (ifNotexists())}} and {{assert 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)