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

Toshihiro Suzuki commented on PHOENIX-1614:
-------------------------------------------

Thank you for reviewing the patch. [~gjacoby] [~Jaanai]

{quote}
A little tip, I think we can use meta information to check off that the 
additional columns whether exists within the table on the client side, then to 
decide throw exceptions or go into next steps. The coding will be simpler and 
the client is good for backward compatible.
{quote}
[~Jaanai] I attached a new patch where I implemented it on the client side. It 
seems much simpler than the previous patches.

Looks like we decided throw exceptions or go into next steps only when the 
table is an append-only schema for some reason:
https://github.com/apache/phoenix/blob/c06bb592ca489e41b7df11cab248135ad534416d/phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java#L3541-L3571

I think we can always do it, so I modified this part to do it. Could you please 
review the latest patch?

> ALTER TABLE ADD IF NOT EXISTS doesn't work as expected
> ------------------------------------------------------
>
>                 Key: PHOENIX-1614
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1614
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Gabriel Reid
>            Assignee: Toshihiro Suzuki
>            Priority: Major
>              Labels: argus
>             Fix For: 4.15.0
>
>         Attachments: PHOENIX-1614-v2.patch, PHOENIX-1614-v3.patch, 
> PHOENIX-1614-v4.patch, PHOENIX-1614.patch
>
>
> On an existing table table, executing "ALTER TABLE ADD IF NOT EXISTS
> thisColAlreadyExists varchar, thisColDoesNotExist varchar", then
> nothing will be changed in the table because thisColAlreadyExists
> already exists.
> Omitting the already-existing column from the statement, all new columns
> do get created.
> The general expectation would be that when you use ADD IF NOT EXISTS, all
> non-existent columns will be added, and all existing columns in the
> statement will just be ignored. There is already an integration test
> (AlterTableIT#testAddVarCols) that actually demonstrates the current
> behavior, although this is probably not correct.
> As pointed out in the related mailing list thread [1], ALTER TABLE DROP 
> COLUMN likely suffers from the same issue.
> 1. http://s.apache.org/LMT 



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

Reply via email to