| ==== |
| ---- QUERY |
| create table insert_data_z (i int, d int, f int, b boolean); |
| insert into insert_data_z values (1, 2, 3, false), (4, 5, 6, true); |
| ==== |
| ---- QUERY |
| create table insert_zsorted (i int, d int, f int, b boolean); |
| ==== |
| ---- QUERY |
| # Test setting the sort.columns and sort.zorder property |
| alter table insert_zsorted sort by zorder(i, d); |
| describe formatted insert_zsorted; |
| ---- RESULTS: VERIFY_IS_SUBSET |
| '','sort.columns ','i,d ' |
| '','sort.order ','ZORDER ' |
| ---- TYPES |
| STRING,STRING,STRING |
| ==== |
| ---- QUERY |
| # Test inserting after alter table |
| insert into table insert_zsorted select i, d, f, b from insert_data_z; |
| ---- RUNTIME_PROFILE |
| row_regex: .*order by: ZORDER: i, d |
| ==== |
| ---- QUERY |
| # Test selection after alter table |
| select count(*) from insert_zsorted; |
| ---- RESULTS |
| 2 |
| ==== |
| ---- QUERY |
| # Test altering the sort.columns andd sort.order property |
| alter table insert_zsorted sort by zorder(b, d, f); |
| describe formatted insert_zsorted; |
| ---- RESULTS: VERIFY_IS_SUBSET |
| '','sort.columns ','b,d,f ' |
| '','sort.order ','ZORDER ' |
| ---- TYPES |
| STRING,STRING,STRING |
| ==== |
| ---- QUERY |
| # Test inserting after alter table |
| insert into table insert_zsorted select i, d, f, b from insert_data_z; |
| ---- RUNTIME_PROFILE |
| row_regex: .*order by: ZORDER: b, d, f |
| ==== |
| ---- QUERY |
| # Test selection after alter table |
| select count(*) from insert_zsorted; |
| ---- RESULTS |
| 4 |
| ==== |
| ---- QUERY |
| # Test renaming a column in the sort by zorder list. |
| alter table insert_zsorted change d e int; |
| describe formatted insert_zsorted; |
| ---- RESULTS: VERIFY_IS_SUBSET |
| '','sort.columns ','b,e,f ' |
| '','sort.order ','ZORDER ' |
| ---- TYPES |
| STRING,STRING,STRING |
| ==== |
| ---- QUERY |
| # Test inserting after alter table |
| insert into table insert_zsorted select i, d, f, b from insert_data_z; |
| ---- RUNTIME_PROFILE |
| row_regex: .*order by: ZORDER: b, d, f |
| ==== |
| ---- QUERY |
| # Test selection after alter table |
| select count(*) from insert_zsorted; |
| ---- RESULTS |
| 6 |
| ==== |
| ---- QUERY |
| # Test replacing the column list, including a column in the sort by zorder list. |
| alter table insert_zsorted replace columns (i bigint, e decimal(12,2), f boolean); |
| describe formatted insert_zsorted; |
| ---- RESULTS: VERIFY_IS_SUBSET |
| '','sort.columns ','e,f ' |
| '','sort.order ','ZORDER ' |
| ---- TYPES |
| STRING,STRING,STRING |
| ==== |
| ---- QUERY |
| # Test inserting after alter table |
| insert into table insert_zsorted select i, cast(d as decimal(12,2)), b from insert_data_z; |
| ---- RUNTIME_PROFILE |
| row_regex: .*order by: ZORDER: CAST\(d AS DECIMAL\(12,2\)\), b |
| ==== |
| ---- QUERY |
| # Test selection after alter table |
| select count(*) from insert_zsorted; |
| ---- RESULTS |
| 8 |
| ==== |
| ---- QUERY |
| # Test dropping a column in the sort by list |
| alter table insert_zsorted drop column f; |
| describe formatted insert_zsorted; |
| ---- RESULTS: VERIFY_IS_SUBSET |
| '','sort.columns ','e ' |
| '','sort.order ','ZORDER ' |
| ---- TYPES |
| STRING,STRING,STRING |
| ==== |
| ---- QUERY |
| # Test that a dropped column cannot be added as a sort column |
| alter table insert_zsorted sort by zorder(f); |
| ---- CATCH |
| AnalysisException: Could not find SORT BY column 'f' in table. |
| ==== |
| ---- QUERY |
| # Test that erroneous query didn't change sort columns |
| describe formatted insert_zsorted; |
| ---- RESULTS: VERIFY_IS_SUBSET |
| '','sort.columns ','e ' |
| '','sort.order ','ZORDER ' |
| ---- TYPES |
| STRING,STRING,STRING |
| ==== |
| ---- QUERY |
| # Test removing the sort.columns property |
| alter table insert_zsorted sort by zorder (); |
| describe formatted insert_zsorted; |
| ---- RESULTS: VERIFY_IS_SUBSET |
| '','sort.columns ',' ' |
| ---- TYPES |
| STRING,STRING,STRING |
| ==== |
| ---- QUERY |
| # Test inserting after alter table |
| insert into table insert_zsorted select i, cast(d as decimal(12,2)) from insert_data_z; |
| ---- RUNTIME_PROFILE |
| aggregation(SUM, InitialRunsCreated): 0 |
| ==== |
| ---- QUERY |
| # Test selection after alter table |
| select count(*) from insert_zsorted; |
| ---- RESULTS |
| 10 |
| ==== |
| ---- QUERY |
| create table insert_zsorted_partitioned (i int, d int, f int, b boolean) partitioned by (p int) sort by zorder (i, d); |
| ==== |
| ---- QUERY |
| # Test removing all sort columns. |
| alter table insert_zsorted_partitioned sort by zorder(); |
| describe formatted insert_zsorted_partitioned; |
| ---- RESULTS: VERIFY_IS_NOT_IN |
| '','sort.columns ','i,d ' |
| ---- TYPES |
| STRING,STRING,STRING |
| ==== |
| ---- QUERY |
| # Test inserting after alter table |
| insert into table insert_zsorted_partitioned partition (p=1) select i, d, f, b from insert_data_z; |
| ---- RUNTIME_PROFILE |
| aggregation(SUM, InitialRunsCreated): 0 |
| ==== |
| ---- QUERY |
| # Test selection after alter table |
| select count(*) from insert_zsorted_partitioned; |
| ---- RESULTS |
| 2 |
| ==== |
| ---- QUERY |
| # Re-add a sort column. |
| alter table insert_zsorted_partitioned sort by zorder(d, i); |
| describe formatted insert_zsorted_partitioned; |
| ---- RESULTS: VERIFY_IS_SUBSET |
| '','sort.columns ','d,i ' |
| '','sort.order ','ZORDER ' |
| ---- TYPES |
| STRING,STRING,STRING |
| ==== |
| ---- QUERY |
| insert into table insert_zsorted_partitioned partition (p=1) select i, d, f, b from insert_data_z; |
| ---- RUNTIME_PROFILE |
| row_regex: .*order by: ZORDER: d, i |
| ==== |
| ---- QUERY |
| # Test selection after alter table |
| select count(*) from insert_zsorted_partitioned; |
| ---- RESULTS |
| 4 |
| ==== |
| ---- QUERY |
| describe formatted insert_zsorted_partitioned; |
| ---- RESULTS: VERIFY_IS_SUBSET |
| '','sort.columns ','d,i ' |
| '','sort.order ','ZORDER ' |
| ---- TYPES |
| STRING,STRING,STRING |
| ==== |
| ---- QUERY |
| # Test dropping one sort column, so that one remains. |
| alter table insert_zsorted_partitioned drop column i; |
| describe formatted insert_zsorted_partitioned; |
| ---- RESULTS: VERIFY_IS_NOT_IN |
| '','sort.columns ','d,i ' |
| ---- TYPES |
| STRING,STRING,STRING |
| ==== |
| ---- QUERY |
| # Creating table and swapping sorting orders |
| create table swapping_table (i int, j int, k int) sort by zorder (i, j); |
| describe formatted swapping_table; |
| ---- RESULTS: VERIFY_IS_SUBSET |
| '','sort.columns ','i,j ' |
| '','sort.order ','ZORDER ' |
| ---- TYPES |
| STRING,STRING,STRING |
| ==== |
| ---- QUERY |
| # Creating table and swapping sorting orders |
| alter table swapping_table sort by lexical (i); |
| describe formatted swapping_table; |
| ---- RESULTS: VERIFY_IS_SUBSET |
| '','sort.columns ','i ' |
| '','sort.order ','LEXICAL ' |
| ---- TYPES |
| STRING,STRING,STRING |
| ==== |
| ---- QUERY |
| # Creating table and swapping sorting orders |
| alter table swapping_table sort by zorder (i, j, k); |
| describe formatted swapping_table; |
| ---- RESULTS: VERIFY_IS_SUBSET |
| '','sort.columns ','i,j,k ' |
| '','sort.order ','ZORDER ' |
| ---- TYPES |
| STRING,STRING,STRING |
| ==== |
| ---- QUERY |
| # Creating table and swapping sorting orders |
| alter table swapping_table sort by (); |
| describe formatted swapping_table; |
| ---- RESULTS: VERIFY_IS_SUBSET |
| '','sort.columns ',' ' |
| '','sort.order ','LEXICAL ' |
| ---- TYPES |
| STRING,STRING,STRING |
| ==== |