-
Notifications
You must be signed in to change notification settings - Fork 4.8k
HIVE-27208: Iceberg: Add support for rename table. #4185
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
65 changes: 65 additions & 0 deletions
65
iceberg/iceberg-handler/src/test/queries/positive/iceberg_rename.q
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,65 @@ | ||
|
|
||
| -- create a v1 table | ||
| create table icev1 (id int, name string) Stored by Iceberg; | ||
|
|
||
| -- insert some values | ||
| insert into icev1 values (1, 'SSD'),(2, 'RAM'); | ||
|
|
||
| select * from icev1 order by id; | ||
|
|
||
| -- do the rename | ||
| explain alter table icev1 rename to icev1renamed; | ||
|
|
||
| alter table icev1 rename to icev1renamed; | ||
ayushtkn marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| select * from icev1renamed order by id; | ||
|
|
||
| -- create an unpartitioned v2 table | ||
| create table iceorgin (id int, name string) Stored by Iceberg TBLPROPERTIES ('format-version'='2'); | ||
|
|
||
| -- insert some values | ||
| insert into iceorgin values (1, 'ABC'),(2, 'CBS'),(3, null),(4, 'POPI'),(5, 'AQWR'),(6, 'POIU'), | ||
| (9, null),(8,'POIKL'),(10, 'YUIO'); | ||
|
|
||
| -- do some deletes | ||
| delete from iceorgin where id>9 OR id=8; | ||
|
|
||
| select * from iceorgin order by id; | ||
|
|
||
| -- do the rename | ||
|
|
||
| alter table iceorgin rename to icerenamed; | ||
|
|
||
| select * from icerenamed order by id; | ||
|
|
||
| -- create a partitioned v2 table | ||
| create table iceorginpart (id int) partitioned by (part string) Stored by Iceberg TBLPROPERTIES ('format-version'='2'); | ||
ayushtkn marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| insert into iceorginpart values (1, 'ABC'),(2, 'CBS'),(3,'CBS'),(4, 'ABC'),(5, 'AQWR'),(6, 'ABC'), | ||
| (9, 'AQWR'),(8,'ABC'),(10, 'YUIO'); | ||
|
|
||
| -- do some deletes | ||
| delete from iceorginpart where id<3 OR id=7; | ||
|
|
||
| select * from iceorginpart order by id; | ||
|
|
||
| explain alter table iceorginpart rename to icerenamedpart; | ||
|
|
||
| alter table iceorginpart rename to icerenamedpart; | ||
|
|
||
| select * from icerenamedpart order by id; | ||
|
|
||
| -- create a new unpartitioned table with old name | ||
| create table iceorgin (id int, name string) Stored by Iceberg TBLPROPERTIES ('format-version'='2'); | ||
|
|
||
| insert into iceorgin values (100, 'ABCDWC'); | ||
|
|
||
| select * from iceorgin order by id; | ||
|
|
||
| -- create a new partitioned table with old name | ||
|
|
||
| create table iceorginpart (id int) partitioned by (part string) Stored by Iceberg TBLPROPERTIES ('format-version'='2'); | ||
|
|
||
| insert into iceorginpart values (22, 'DER'),(2, 'KLM'); | ||
|
|
||
| select * from iceorginpart order by id; | ||
265 changes: 265 additions & 0 deletions
265
iceberg/iceberg-handler/src/test/results/positive/iceberg_rename.q.out
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,265 @@ | ||
| PREHOOK: query: create table icev1 (id int, name string) Stored by Iceberg | ||
| PREHOOK: type: CREATETABLE | ||
| PREHOOK: Output: database:default | ||
| PREHOOK: Output: default@icev1 | ||
| POSTHOOK: query: create table icev1 (id int, name string) Stored by Iceberg | ||
| POSTHOOK: type: CREATETABLE | ||
| POSTHOOK: Output: database:default | ||
| POSTHOOK: Output: default@icev1 | ||
| PREHOOK: query: insert into icev1 values (1, 'SSD'),(2, 'RAM') | ||
| PREHOOK: type: QUERY | ||
| PREHOOK: Input: _dummy_database@_dummy_table | ||
| PREHOOK: Output: default@icev1 | ||
| POSTHOOK: query: insert into icev1 values (1, 'SSD'),(2, 'RAM') | ||
| POSTHOOK: type: QUERY | ||
| POSTHOOK: Input: _dummy_database@_dummy_table | ||
| POSTHOOK: Output: default@icev1 | ||
| PREHOOK: query: select * from icev1 order by id | ||
| PREHOOK: type: QUERY | ||
| PREHOOK: Input: default@icev1 | ||
| PREHOOK: Output: hdfs://### HDFS PATH ### | ||
| POSTHOOK: query: select * from icev1 order by id | ||
| POSTHOOK: type: QUERY | ||
| POSTHOOK: Input: default@icev1 | ||
| POSTHOOK: Output: hdfs://### HDFS PATH ### | ||
| 1 SSD | ||
| 2 RAM | ||
| PREHOOK: query: explain alter table icev1 rename to icev1renamed | ||
| PREHOOK: type: ALTERTABLE_RENAME | ||
| PREHOOK: Input: default@icev1 | ||
| PREHOOK: Output: database:default | ||
| PREHOOK: Output: default@icev1 | ||
| PREHOOK: Output: default@icev1renamed | ||
| POSTHOOK: query: explain alter table icev1 rename to icev1renamed | ||
| POSTHOOK: type: ALTERTABLE_RENAME | ||
| POSTHOOK: Input: default@icev1 | ||
| POSTHOOK: Output: database:default | ||
| POSTHOOK: Output: default@icev1 | ||
| POSTHOOK: Output: default@icev1renamed | ||
| Stage-0 | ||
| Rename Table{"table name:":"default.icev1","new table name:":"default.icev1renamed"} | ||
|
|
||
| PREHOOK: query: alter table icev1 rename to icev1renamed | ||
| PREHOOK: type: ALTERTABLE_RENAME | ||
| PREHOOK: Input: default@icev1 | ||
| PREHOOK: Output: database:default | ||
| PREHOOK: Output: default@icev1 | ||
| PREHOOK: Output: default@icev1renamed | ||
| POSTHOOK: query: alter table icev1 rename to icev1renamed | ||
| POSTHOOK: type: ALTERTABLE_RENAME | ||
| POSTHOOK: Input: default@icev1 | ||
| POSTHOOK: Output: database:default | ||
| POSTHOOK: Output: default@icev1 | ||
| POSTHOOK: Output: default@icev1renamed | ||
| PREHOOK: query: select * from icev1renamed order by id | ||
| PREHOOK: type: QUERY | ||
| PREHOOK: Input: default@icev1renamed | ||
| PREHOOK: Output: hdfs://### HDFS PATH ### | ||
| POSTHOOK: query: select * from icev1renamed order by id | ||
| POSTHOOK: type: QUERY | ||
| POSTHOOK: Input: default@icev1renamed | ||
| POSTHOOK: Output: hdfs://### HDFS PATH ### | ||
| 1 SSD | ||
| 2 RAM | ||
| PREHOOK: query: create table iceorgin (id int, name string) Stored by Iceberg TBLPROPERTIES ('format-version'='2') | ||
| PREHOOK: type: CREATETABLE | ||
| PREHOOK: Output: database:default | ||
| PREHOOK: Output: default@iceorgin | ||
| POSTHOOK: query: create table iceorgin (id int, name string) Stored by Iceberg TBLPROPERTIES ('format-version'='2') | ||
| POSTHOOK: type: CREATETABLE | ||
| POSTHOOK: Output: database:default | ||
| POSTHOOK: Output: default@iceorgin | ||
| PREHOOK: query: insert into iceorgin values (1, 'ABC'),(2, 'CBS'),(3, null),(4, 'POPI'),(5, 'AQWR'),(6, 'POIU'), | ||
| (9, null),(8,'POIKL'),(10, 'YUIO') | ||
| PREHOOK: type: QUERY | ||
| PREHOOK: Input: _dummy_database@_dummy_table | ||
| PREHOOK: Output: default@iceorgin | ||
| POSTHOOK: query: insert into iceorgin values (1, 'ABC'),(2, 'CBS'),(3, null),(4, 'POPI'),(5, 'AQWR'),(6, 'POIU'), | ||
| (9, null),(8,'POIKL'),(10, 'YUIO') | ||
| POSTHOOK: type: QUERY | ||
| POSTHOOK: Input: _dummy_database@_dummy_table | ||
| POSTHOOK: Output: default@iceorgin | ||
| PREHOOK: query: delete from iceorgin where id>9 OR id=8 | ||
| PREHOOK: type: QUERY | ||
| PREHOOK: Input: default@iceorgin | ||
| PREHOOK: Output: default@iceorgin | ||
| POSTHOOK: query: delete from iceorgin where id>9 OR id=8 | ||
| POSTHOOK: type: QUERY | ||
| POSTHOOK: Input: default@iceorgin | ||
| POSTHOOK: Output: default@iceorgin | ||
| PREHOOK: query: select * from iceorgin order by id | ||
| PREHOOK: type: QUERY | ||
| PREHOOK: Input: default@iceorgin | ||
| PREHOOK: Output: hdfs://### HDFS PATH ### | ||
| POSTHOOK: query: select * from iceorgin order by id | ||
| POSTHOOK: type: QUERY | ||
| POSTHOOK: Input: default@iceorgin | ||
| POSTHOOK: Output: hdfs://### HDFS PATH ### | ||
| 1 ABC | ||
| 2 CBS | ||
| 3 NULL | ||
| 4 POPI | ||
| 5 AQWR | ||
| 6 POIU | ||
| 9 NULL | ||
| PREHOOK: query: alter table iceorgin rename to icerenamed | ||
| PREHOOK: type: ALTERTABLE_RENAME | ||
| PREHOOK: Input: default@iceorgin | ||
| PREHOOK: Output: database:default | ||
| PREHOOK: Output: default@iceorgin | ||
| PREHOOK: Output: default@icerenamed | ||
| POSTHOOK: query: alter table iceorgin rename to icerenamed | ||
| POSTHOOK: type: ALTERTABLE_RENAME | ||
| POSTHOOK: Input: default@iceorgin | ||
| POSTHOOK: Output: database:default | ||
| POSTHOOK: Output: default@iceorgin | ||
| POSTHOOK: Output: default@icerenamed | ||
| PREHOOK: query: select * from icerenamed order by id | ||
| PREHOOK: type: QUERY | ||
| PREHOOK: Input: default@icerenamed | ||
| PREHOOK: Output: hdfs://### HDFS PATH ### | ||
| POSTHOOK: query: select * from icerenamed order by id | ||
| POSTHOOK: type: QUERY | ||
| POSTHOOK: Input: default@icerenamed | ||
| POSTHOOK: Output: hdfs://### HDFS PATH ### | ||
| 1 ABC | ||
| 2 CBS | ||
| 3 NULL | ||
| 4 POPI | ||
| 5 AQWR | ||
| 6 POIU | ||
| 9 NULL | ||
| PREHOOK: query: create table iceorginpart (id int) partitioned by (part string) Stored by Iceberg TBLPROPERTIES ('format-version'='2') | ||
| PREHOOK: type: CREATETABLE | ||
| PREHOOK: Output: database:default | ||
| PREHOOK: Output: default@iceorginpart | ||
| POSTHOOK: query: create table iceorginpart (id int) partitioned by (part string) Stored by Iceberg TBLPROPERTIES ('format-version'='2') | ||
| POSTHOOK: type: CREATETABLE | ||
| POSTHOOK: Output: database:default | ||
| POSTHOOK: Output: default@iceorginpart | ||
| PREHOOK: query: insert into iceorginpart values (1, 'ABC'),(2, 'CBS'),(3,'CBS'),(4, 'ABC'),(5, 'AQWR'),(6, 'ABC'), | ||
| (9, 'AQWR'),(8,'ABC'),(10, 'YUIO') | ||
| PREHOOK: type: QUERY | ||
| PREHOOK: Input: _dummy_database@_dummy_table | ||
| PREHOOK: Output: default@iceorginpart | ||
| POSTHOOK: query: insert into iceorginpart values (1, 'ABC'),(2, 'CBS'),(3,'CBS'),(4, 'ABC'),(5, 'AQWR'),(6, 'ABC'), | ||
| (9, 'AQWR'),(8,'ABC'),(10, 'YUIO') | ||
| POSTHOOK: type: QUERY | ||
| POSTHOOK: Input: _dummy_database@_dummy_table | ||
| POSTHOOK: Output: default@iceorginpart | ||
| PREHOOK: query: delete from iceorginpart where id<3 OR id=7 | ||
| PREHOOK: type: QUERY | ||
| PREHOOK: Input: default@iceorginpart | ||
| PREHOOK: Output: default@iceorginpart | ||
| POSTHOOK: query: delete from iceorginpart where id<3 OR id=7 | ||
| POSTHOOK: type: QUERY | ||
| POSTHOOK: Input: default@iceorginpart | ||
| POSTHOOK: Output: default@iceorginpart | ||
| PREHOOK: query: select * from iceorginpart order by id | ||
| PREHOOK: type: QUERY | ||
| PREHOOK: Input: default@iceorginpart | ||
| PREHOOK: Output: hdfs://### HDFS PATH ### | ||
| POSTHOOK: query: select * from iceorginpart order by id | ||
| POSTHOOK: type: QUERY | ||
| POSTHOOK: Input: default@iceorginpart | ||
| POSTHOOK: Output: hdfs://### HDFS PATH ### | ||
| 3 CBS | ||
| 4 ABC | ||
| 5 AQWR | ||
| 6 ABC | ||
| 8 ABC | ||
| 9 AQWR | ||
| 10 YUIO | ||
| PREHOOK: query: explain alter table iceorginpart rename to icerenamedpart | ||
| PREHOOK: type: ALTERTABLE_RENAME | ||
| PREHOOK: Input: default@iceorginpart | ||
| PREHOOK: Output: database:default | ||
| PREHOOK: Output: default@iceorginpart | ||
| PREHOOK: Output: default@icerenamedpart | ||
| POSTHOOK: query: explain alter table iceorginpart rename to icerenamedpart | ||
| POSTHOOK: type: ALTERTABLE_RENAME | ||
| POSTHOOK: Input: default@iceorginpart | ||
| POSTHOOK: Output: database:default | ||
| POSTHOOK: Output: default@iceorginpart | ||
| POSTHOOK: Output: default@icerenamedpart | ||
| Stage-0 | ||
| Rename Table{"table name:":"default.iceorginpart","new table name:":"default.icerenamedpart"} | ||
|
|
||
| PREHOOK: query: alter table iceorginpart rename to icerenamedpart | ||
| PREHOOK: type: ALTERTABLE_RENAME | ||
| PREHOOK: Input: default@iceorginpart | ||
| PREHOOK: Output: database:default | ||
| PREHOOK: Output: default@iceorginpart | ||
| PREHOOK: Output: default@icerenamedpart | ||
| POSTHOOK: query: alter table iceorginpart rename to icerenamedpart | ||
| POSTHOOK: type: ALTERTABLE_RENAME | ||
| POSTHOOK: Input: default@iceorginpart | ||
| POSTHOOK: Output: database:default | ||
| POSTHOOK: Output: default@iceorginpart | ||
| POSTHOOK: Output: default@icerenamedpart | ||
| PREHOOK: query: select * from icerenamedpart order by id | ||
| PREHOOK: type: QUERY | ||
| PREHOOK: Input: default@icerenamedpart | ||
| PREHOOK: Output: hdfs://### HDFS PATH ### | ||
| POSTHOOK: query: select * from icerenamedpart order by id | ||
| POSTHOOK: type: QUERY | ||
| POSTHOOK: Input: default@icerenamedpart | ||
| POSTHOOK: Output: hdfs://### HDFS PATH ### | ||
| 3 CBS | ||
| 4 ABC | ||
| 5 AQWR | ||
| 6 ABC | ||
| 8 ABC | ||
| 9 AQWR | ||
| 10 YUIO | ||
| PREHOOK: query: create table iceorgin (id int, name string) Stored by Iceberg TBLPROPERTIES ('format-version'='2') | ||
| PREHOOK: type: CREATETABLE | ||
| PREHOOK: Output: database:default | ||
| PREHOOK: Output: default@iceorgin | ||
| POSTHOOK: query: create table iceorgin (id int, name string) Stored by Iceberg TBLPROPERTIES ('format-version'='2') | ||
| POSTHOOK: type: CREATETABLE | ||
| POSTHOOK: Output: database:default | ||
| POSTHOOK: Output: default@iceorgin | ||
| PREHOOK: query: insert into iceorgin values (100, 'ABCDWC') | ||
| PREHOOK: type: QUERY | ||
| PREHOOK: Input: _dummy_database@_dummy_table | ||
| PREHOOK: Output: default@iceorgin | ||
| POSTHOOK: query: insert into iceorgin values (100, 'ABCDWC') | ||
| POSTHOOK: type: QUERY | ||
| POSTHOOK: Input: _dummy_database@_dummy_table | ||
| POSTHOOK: Output: default@iceorgin | ||
| PREHOOK: query: select * from iceorgin order by id | ||
| PREHOOK: type: QUERY | ||
| PREHOOK: Input: default@iceorgin | ||
| PREHOOK: Output: hdfs://### HDFS PATH ### | ||
| POSTHOOK: query: select * from iceorgin order by id | ||
| POSTHOOK: type: QUERY | ||
| POSTHOOK: Input: default@iceorgin | ||
| POSTHOOK: Output: hdfs://### HDFS PATH ### | ||
| 100 ABCDWC | ||
| PREHOOK: query: create table iceorginpart (id int) partitioned by (part string) Stored by Iceberg TBLPROPERTIES ('format-version'='2') | ||
| PREHOOK: type: CREATETABLE | ||
| PREHOOK: Output: database:default | ||
| PREHOOK: Output: default@iceorginpart | ||
| POSTHOOK: query: create table iceorginpart (id int) partitioned by (part string) Stored by Iceberg TBLPROPERTIES ('format-version'='2') | ||
| POSTHOOK: type: CREATETABLE | ||
| POSTHOOK: Output: database:default | ||
| POSTHOOK: Output: default@iceorginpart | ||
| PREHOOK: query: insert into iceorginpart values (22, 'DER'),(2, 'KLM') | ||
| PREHOOK: type: QUERY | ||
| PREHOOK: Input: _dummy_database@_dummy_table | ||
| PREHOOK: Output: default@iceorginpart | ||
| POSTHOOK: query: insert into iceorginpart values (22, 'DER'),(2, 'KLM') | ||
| POSTHOOK: type: QUERY | ||
| POSTHOOK: Input: _dummy_database@_dummy_table | ||
| POSTHOOK: Output: default@iceorginpart | ||
| PREHOOK: query: select * from iceorginpart order by id | ||
| PREHOOK: type: QUERY | ||
| PREHOOK: Input: default@iceorginpart | ||
| PREHOOK: Output: hdfs://### HDFS PATH ### | ||
| POSTHOOK: query: select * from iceorginpart order by id | ||
| POSTHOOK: type: QUERY | ||
| POSTHOOK: Input: default@iceorginpart | ||
| POSTHOOK: Output: hdfs://### HDFS PATH ### | ||
| 2 KLM | ||
| 22 DER |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.