| # This test file covers alter table statements that add multiple partitions and use hdfs caching |
| ==== |
| ---- QUERY |
| create table i1670B_alter (s string) partitioned by (i integer); |
| alter table i1670B_alter add |
| partition (i=1) location '$FILESYSTEM_PREFIX/test-warehouse/$DATABASE.db/i1670B_alter/i1' |
| cached in 'testPool' with replication=3 |
| partition (i=2) location '$FILESYSTEM_PREFIX/test-warehouse/$DATABASE.db/i1670B_alter/i2' |
| partition (i=3) uncached; |
| show partitions i1670B_alter; |
| ---- RESULTS |
| '1',-1,0,'0B','0B','3','TEXT','false',regex:.*/i1 |
| '2',-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*/i2 |
| '3',-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*/i=3 |
| 'Total',-1,0,'0B','0B','','','','' |
| ---- TYPES |
| STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING |
| ==== |
| ---- QUERY |
| # IMPALA-1670: Set up i1670C_alter table for the next test case. |
| create table i1670C_alter (s string) partitioned by (i integer); |
| alter table i1670C_alter add |
| partition (i=2) location '$FILESYSTEM_PREFIX/test-warehouse/$DATABASE.db/i1670C_alter/i2A' |
| cached in 'testPool' with replication=2 |
| partition (i=4) location '$FILESYSTEM_PREFIX/test-warehouse/$DATABASE.db/i1670C_alter/i4A' uncached; |
| show partitions i1670C_alter; |
| ---- RESULTS |
| '2',-1,0,'0B','0B','2','TEXT','false',regex:.*/i2A |
| '4',-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*/i4A |
| 'Total',-1,0,'0B','0B','','','','' |
| ---- TYPES |
| STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING |
| ==== |
| ---- QUERY |
| # IMPALA-1670: If 'IF NOT EXISTS' is used ALTER TABLE ADD PARTITION works with preexisting |
| # partitions. Location and caching options of existing partitions are not modified. |
| alter table i1670C_alter add if not exists |
| partition (i=1) location '$FILESYSTEM_PREFIX/test-warehouse/$DATABASE.db/i1670C_alter/i1B' |
| partition (i=2) location '$FILESYSTEM_PREFIX/test-warehouse/$DATABASE.db/i1670C_alter/i2B' uncached |
| partition (i=3) location '$FILESYSTEM_PREFIX/test-warehouse/$DATABASE.db/i1670C_alter/i3B' |
| cached in 'testPool' with replication=3 |
| partition (i=4) location '$FILESYSTEM_PREFIX/test-warehouse/$DATABASE.db/i1670C_alter/i4B' |
| cached in 'testPool' with replication=4; |
| show partitions i1670C_alter; |
| ---- RESULTS |
| '1',-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*/i1B |
| '2',-1,0,'0B','0B','2','TEXT','false',regex:.*/i2A |
| '3',-1,0,'0B','0B','3','TEXT','false',regex:.*/i3B |
| '4',-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*/i4A |
| 'Total',-1,0,'0B','0B','','','','' |
| ---- TYPES |
| STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING |
| ==== |
| ---- QUERY |
| # IMPALA-1670: Partitions without explicit CACHED IN/UNCACHED clause inherit cacheop from |
| # the parent table |
| create table i1670D_alter (s string) partitioned by (i integer) |
| cached in 'testPool' with replication=7; |
| alter table i1670D_alter add |
| partition (i=1) cached in 'testPool' with replication=5 |
| partition (i=2) |
| partition (i=3) uncached |
| partition (i=4); |
| show partitions i1670D_alter; |
| ---- RESULTS |
| '1',-1,0,'0B','0B','5','TEXT','false',regex:.*/i=1 |
| '2',-1,0,'0B','0B','7','TEXT','false',regex:.*/i=2 |
| '3',-1,0,'0B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*/i=3 |
| '4',-1,0,'0B','0B','7','TEXT','false',regex:.*/i=4 |
| 'Total',-1,0,'0B','0B','','','','' |
| ---- TYPES |
| STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING |
| ==== |
| ---- QUERY |
| # IMPALA-1670: After INVALIDATE METADATA Impala can access previously added partitions and |
| # partition data. |
| create table i1670E_alter (a int) partitioned by (x int); |
| alter table i1670E_alter add partition (x=1) |
| partition (x=2) uncached |
| partition (x=3) location '$FILESYSTEM_PREFIX/test-warehouse/$DATABASE.db/i1670E_alter/x3' |
| cached in 'testPool' with replication=7; |
| insert into i1670E_alter partition(x=1) values (1), (2), (3); |
| insert into i1670E_alter partition(x=2) values (1), (2), (3), (4); |
| insert into i1670E_alter partition(x=3) values (1); |
| invalidate metadata i1670E_alter; |
| ==== |
| ---- QUERY |
| show partitions i1670E_alter; |
| ---- RESULTS |
| '1',-1,1,regex:.*,'NOT CACHED','NOT CACHED','TEXT','false',regex:.*/x=1 |
| '2',-1,1,regex:.*,'NOT CACHED','NOT CACHED','TEXT','false',regex:.*/x=2 |
| '3',-1,1,regex:.*,regex:.*,'7','TEXT','false',regex:.*/x3 |
| 'Total',-1,3,regex:.*,regex:.*,'','','','' |
| ---- TYPES |
| STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING |
| ==== |
| ---- QUERY |
| select x, a from i1670E_alter order by x, a; |
| ---- RESULTS |
| 1,1 |
| 1,2 |
| 1,3 |
| 2,1 |
| 2,2 |
| 2,3 |
| 2,4 |
| 3,1 |
| ---- TYPES |
| INT, INT |
| ==== |