mirror of
https://github.com/apache/impala.git
synced 2026-01-09 15:00:11 -05:00
In the case of INSERT INTO iceberg_tbl (col_a, col_b, ...), if the partition columns of Iceberg table are not in the columns permutation, in order for data to be written to the default partition '__HIVE_DEFAULT_PARTITION__' we will fill the missing partition columns with NullLiteral. Testing: - add e2e tests Change-Id: I40c733755d65e5c81a12ffe09b6d16ed5d115368 Reviewed-on: http://gerrit.cloudera.org:8080/18790 Reviewed-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com> Tested-by: Impala Public Jenkins <impala-public-jenkins@cloudera.com>
1091 lines
34 KiB
Plaintext
1091 lines
34 KiB
Plaintext
====
|
|
---- QUERY
|
|
create table ice_part_transform (col_i int, col_str string, col_ts timestamp)
|
|
partitioned by spec (
|
|
bucket(3, col_i),
|
|
truncate(1, col_str),
|
|
day(col_ts)
|
|
)
|
|
stored as iceberg;
|
|
====
|
|
---- QUERY
|
|
insert into
|
|
ice_part_transform
|
|
values
|
|
(2, 'two', '2001-02-03 07:08:00'),
|
|
(1, 'one', '2001-01-03 07:08:00'),
|
|
(3, 'three', '2002-03-03 07:08:00'),
|
|
(5, 'five', '2003-05-03 07:08:00');
|
|
select col_i,col_str,col_ts from ice_part_transform order by 1,2,3;
|
|
---- RESULTS
|
|
1,'one',2001-01-03 07:08:00
|
|
2,'two',2001-02-03 07:08:00
|
|
3,'three',2002-03-03 07:08:00
|
|
5,'five',2003-05-03 07:08:00
|
|
---- TYPES
|
|
int,string,timestamp
|
|
====
|
|
---- QUERY
|
|
insert into ice_part_transform(col_i) values (0), (4);
|
|
select
|
|
col_i, col_str, col_ts
|
|
from
|
|
ice_part_transform
|
|
where
|
|
col_str is null
|
|
and col_ts is null
|
|
order by
|
|
1, 2, 3;
|
|
---- RESULTS
|
|
0,'NULL',NULL
|
|
4,'NULL',NULL
|
|
---- TYPES
|
|
int,string,timestamp
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 2
|
|
====
|
|
---- QUERY
|
|
insert into ice_part_transform(col_str) values ('zero'), ('four');
|
|
select
|
|
col_i, col_str, col_ts
|
|
from
|
|
ice_part_transform
|
|
where
|
|
col_i is null
|
|
and col_ts is null
|
|
order by
|
|
1, 2, 3;
|
|
---- RESULTS
|
|
NULL,'four',NULL
|
|
NULL,'zero',NULL
|
|
---- TYPES
|
|
int,string,timestamp
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 2
|
|
====
|
|
---- QUERY
|
|
insert into ice_part_transform(col_ts) values ('2001-04-03 07:08:00'), ('2001-05-03 07:08:00');
|
|
select
|
|
col_i, col_str, col_ts
|
|
from
|
|
ice_part_transform
|
|
where
|
|
col_i is null
|
|
and col_str is null
|
|
order by
|
|
1, 2, 3;
|
|
---- RESULTS
|
|
NULL,'NULL',2001-04-03 07:08:00
|
|
NULL,'NULL',2001-05-03 07:08:00
|
|
---- TYPES
|
|
int,string,timestamp
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 2
|
|
====
|
|
---- QUERY
|
|
insert into ice_part_transform(col_i, col_str) values (2, 'two'), (1, 'one');
|
|
select
|
|
col_i, col_str, col_ts
|
|
from
|
|
ice_part_transform
|
|
where
|
|
col_i is not null
|
|
and col_str is not null
|
|
and col_ts is null
|
|
order by
|
|
1, 2, 3;
|
|
---- RESULTS
|
|
1,'one',NULL
|
|
2,'two',NULL
|
|
---- TYPES
|
|
int,string,timestamp
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 2
|
|
====
|
|
---- QUERY
|
|
insert into ice_part_transform(col_i, col_ts) values (2, '2001-02-03 07:08:00'), (1, '2001-01-03 07:08:00');
|
|
select
|
|
col_i, col_str, col_ts
|
|
from
|
|
ice_part_transform
|
|
where
|
|
col_i is not null
|
|
and col_str is null
|
|
and col_ts is not null
|
|
order by
|
|
1, 2, 3;
|
|
---- RESULTS
|
|
1,'NULL',2001-01-03 07:08:00
|
|
2,'NULL',2001-02-03 07:08:00
|
|
---- TYPES
|
|
int,string,timestamp
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 2
|
|
====
|
|
---- QUERY
|
|
insert into ice_part_transform(col_str, col_ts) values ('two', '2001-02-03 07:08:00'), ('one', '2001-01-03 07:08:00');
|
|
select
|
|
col_i, col_str, col_ts
|
|
from
|
|
ice_part_transform
|
|
where
|
|
col_i is null
|
|
and col_str is not null
|
|
and col_ts is not null
|
|
order by
|
|
1, 2, 3;
|
|
---- RESULTS
|
|
NULL,'one',2001-01-03 07:08:00
|
|
NULL,'two',2001-02-03 07:08:00
|
|
---- TYPES
|
|
int,string,timestamp
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 2
|
|
====
|
|
---- QUERY
|
|
show files in ice_part_transform;
|
|
---- RESULTS
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/ice_part_transform/data/col_i_bucket=0/col_str_trunc=__HIVE_DEFAULT_PARTITION__/col_ts_day=2001-02-03/.*.0.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/ice_part_transform/data/col_i_bucket=0/col_str_trunc=__HIVE_DEFAULT_PARTITION__/col_ts_day=__HIVE_DEFAULT_PARTITION__/.*.0.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/ice_part_transform/data/col_i_bucket=0/col_str_trunc=t/col_ts_day=2001-02-03/.*.0.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/ice_part_transform/data/col_i_bucket=0/col_str_trunc=t/col_ts_day=2002-03-03/.*.0.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/ice_part_transform/data/col_i_bucket=0/col_str_trunc=t/col_ts_day=__HIVE_DEFAULT_PARTITION__/.*.0.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/ice_part_transform/data/col_i_bucket=1/col_str_trunc=__HIVE_DEFAULT_PARTITION__/col_ts_day=__HIVE_DEFAULT_PARTITION__/.*.0.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/ice_part_transform/data/col_i_bucket=2/col_str_trunc=__HIVE_DEFAULT_PARTITION__/col_ts_day=2001-01-03/.*.0.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/ice_part_transform/data/col_i_bucket=2/col_str_trunc=f/col_ts_day=2003-05-03/.*.0.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/ice_part_transform/data/col_i_bucket=2/col_str_trunc=o/col_ts_day=2001-01-03/.*.0.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/ice_part_transform/data/col_i_bucket=2/col_str_trunc=o/col_ts_day=__HIVE_DEFAULT_PARTITION__/.*.0.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/ice_part_transform/data/col_i_bucket=__HIVE_DEFAULT_PARTITION__/col_str_trunc=__HIVE_DEFAULT_PARTITION__/col_ts_day=2001-04-03/.*.0.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/ice_part_transform/data/col_i_bucket=__HIVE_DEFAULT_PARTITION__/col_str_trunc=__HIVE_DEFAULT_PARTITION__/col_ts_day=2001-05-03/.*.0.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/ice_part_transform/data/col_i_bucket=__HIVE_DEFAULT_PARTITION__/col_str_trunc=f/col_ts_day=__HIVE_DEFAULT_PARTITION__/.*.0.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/ice_part_transform/data/col_i_bucket=__HIVE_DEFAULT_PARTITION__/col_str_trunc=o/col_ts_day=2001-01-03/.*.0.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/ice_part_transform/data/col_i_bucket=__HIVE_DEFAULT_PARTITION__/col_str_trunc=t/col_ts_day=2001-02-03/.*.0.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/ice_part_transform/data/col_i_bucket=__HIVE_DEFAULT_PARTITION__/col_str_trunc=z/col_ts_day=__HIVE_DEFAULT_PARTITION__/.*.0.parq','.*',''
|
|
---- TYPES
|
|
string, string, string
|
|
====
|
|
---- QUERY
|
|
# Test partitioned INSERTs with single column that is also
|
|
# the partitioned column. Partition transform is BUCKET.
|
|
create table single_col_bucket (s string)
|
|
partitioned by spec (bucket(7, s))
|
|
stored as iceberg;
|
|
====
|
|
---- QUERY
|
|
insert into single_col_bucket values ('a'), ('b'), ('c'), ('d'), ('e'), ('f'), (NULL);
|
|
select * from single_col_bucket;
|
|
---- RESULTS
|
|
'a'
|
|
'b'
|
|
'c'
|
|
'd'
|
|
'e'
|
|
'f'
|
|
'NULL'
|
|
---- TYPES
|
|
STRING
|
|
====
|
|
---- QUERY
|
|
show files in single_col_bucket;
|
|
---- RESULTS
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/single_col_bucket/data/s_bucket=0/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/single_col_bucket/data/s_bucket=2/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/single_col_bucket/data/s_bucket=4/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/single_col_bucket/data/s_bucket=6/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/single_col_bucket/data/s_bucket=__HIVE_DEFAULT_PARTITION__/.*.parq','.*',''
|
|
---- TYPES
|
|
STRING, STRING, STRING
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from single_col_bucket
|
|
where s = 'a';
|
|
---- RESULTS
|
|
'a'
|
|
---- TYPES
|
|
STRING
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from single_col_bucket
|
|
where s = 'c';
|
|
---- RESULTS
|
|
'c'
|
|
---- TYPES
|
|
STRING
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Bucket transform for multiple columns.
|
|
create table multi_col_bucket (i int, s string, d date, t timestamp)
|
|
partitioned by spec (bucket(3, i), bucket(5, s), bucket(5, d), bucket(5, t))
|
|
stored as iceberg;
|
|
====
|
|
---- QUERY
|
|
insert into multi_col_bucket
|
|
values (1, 'a', '2021-01-01', '2021-01-01 01:01:01.01'),
|
|
(2, 'b', '2021-01-02', '2021-01-02 02:02:02.02'),
|
|
(3, 'c', '2021-01-03', '2021-01-03 03:03:03.03'),
|
|
(4, 'd', '2021-01-04', '2021-01-04 04:04:04.04');
|
|
select * from multi_col_bucket;
|
|
---- RESULTS
|
|
1,'a',2021-01-01,2021-01-01 01:01:01.010000000
|
|
2,'b',2021-01-02,2021-01-02 02:02:02.020000000
|
|
3,'c',2021-01-03,2021-01-03 03:03:03.030000000
|
|
4,'d',2021-01-04,2021-01-04 04:04:04.040000000
|
|
---- TYPES
|
|
INT,STRING,DATE,TIMESTAMP
|
|
====
|
|
---- QUERY
|
|
show files in multi_col_bucket;
|
|
---- RESULTS
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/multi_col_bucket/data/i_bucket=0/s_bucket=1/d_bucket=2/t_bucket=4/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/multi_col_bucket/data/i_bucket=0/s_bucket=2/d_bucket=3/t_bucket=0/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/multi_col_bucket/data/i_bucket=0/s_bucket=4/d_bucket=1/t_bucket=3/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/multi_col_bucket/data/i_bucket=2/s_bucket=0/d_bucket=0/t_bucket=4/.*.parq','.*',''
|
|
---- TYPES
|
|
STRING, STRING, STRING
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from multi_col_bucket
|
|
where i = 1;
|
|
---- RESULTS
|
|
1,'a',2021-01-01,2021-01-01 01:01:01.010000000
|
|
---- TYPES
|
|
INT,STRING,DATE,TIMESTAMP
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from multi_col_bucket
|
|
where i = 2;
|
|
---- RESULTS
|
|
2,'b',2021-01-02,2021-01-02 02:02:02.020000000
|
|
---- TYPES
|
|
INT,STRING,DATE,TIMESTAMP
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from multi_col_bucket
|
|
where s = 'd';
|
|
---- RESULTS
|
|
4,'d',2021-01-04,2021-01-04 04:04:04.040000000
|
|
---- TYPES
|
|
INT,STRING,DATE,TIMESTAMP
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from multi_col_bucket
|
|
where d = '2021-01-03';
|
|
---- RESULTS
|
|
3,'c',2021-01-03,2021-01-03 03:03:03.030000000
|
|
---- TYPES
|
|
INT,STRING,DATE,TIMESTAMP
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from multi_col_bucket
|
|
where t = '2021-01-03 03:03:03.030000000';
|
|
---- RESULTS
|
|
3,'c',2021-01-03,2021-01-03 03:03:03.030000000
|
|
---- TYPES
|
|
INT,STRING,DATE,TIMESTAMP
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test single col TRUNCATE
|
|
create table single_col_truncate (d decimal(10, 4))
|
|
partitioned by spec (truncate(100, d))
|
|
stored as iceberg;
|
|
====
|
|
---- QUERY
|
|
insert into single_col_truncate
|
|
values (1.1234), (10.5432), (200.786), (314.1592), (98765.4321),
|
|
(1.1235), (10.5433), (200.789), (314.1598), (98765.43), (NULL);
|
|
select * from single_col_truncate;
|
|
---- RESULTS
|
|
1.1234
|
|
1.1235
|
|
10.5432
|
|
10.5433
|
|
200.7860
|
|
200.7890
|
|
314.1592
|
|
314.1598
|
|
98765.4300
|
|
98765.4321
|
|
NULL
|
|
---- TYPES
|
|
DECIMAL
|
|
====
|
|
---- QUERY
|
|
show files in single_col_truncate;
|
|
---- RESULTS
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/single_col_truncate/data/d_trunc=1.1200/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/single_col_truncate/data/d_trunc=10.5400/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/single_col_truncate/data/d_trunc=200.7800/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/single_col_truncate/data/d_trunc=314.1500/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/single_col_truncate/data/d_trunc=98765.4300/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/single_col_truncate/data/d_trunc=__HIVE_DEFAULT_PARTITION__/.*.parq','.*',''
|
|
---- TYPES
|
|
STRING, STRING, STRING
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from single_col_truncate
|
|
where d = 1.1234;
|
|
---- RESULTS
|
|
1.1234
|
|
---- TYPES
|
|
DECIMAL
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from single_col_truncate
|
|
where 200 <= d and d <= 400;
|
|
---- RESULTS
|
|
200.7860
|
|
200.7890
|
|
314.1592
|
|
314.1598
|
|
---- TYPES
|
|
DECIMAL
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 4
|
|
aggregation(SUM, NumRowGroups): 2
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from single_col_truncate
|
|
where d > 200.78;
|
|
---- RESULTS
|
|
200.7860
|
|
200.7890
|
|
314.1592
|
|
314.1598
|
|
98765.4300
|
|
98765.4321
|
|
---- TYPES
|
|
DECIMAL
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 6
|
|
aggregation(SUM, NumRowGroups): 3
|
|
====
|
|
---- QUERY
|
|
# Test single col TRUNCATE
|
|
create table multi_col_truncate (i int, b bigint, d decimal(16, 6), s string)
|
|
partitioned by spec (truncate(15, s), truncate(5, i), truncate(11, b), truncate(100000, d))
|
|
stored as iceberg;
|
|
====
|
|
---- QUERY
|
|
insert into multi_col_truncate values
|
|
(1, 11, 11111.111111, 'the quick brown fox jumps over the lazy dog'),
|
|
(2, 222, 421, 'the quick brown fox jumps over the lazy dog'),
|
|
(6, 333, 113211.2, 'the quick brown fox over the lazy dog the quick'),
|
|
(7, 444, 1111154.11432, 'the quick fox brown jump impala over the quick fox brown the over jump'),
|
|
(18, 555, 9999913.232432,'the quick impala fox dog parrot lion'),
|
|
(NULL, NULL, NULL, NULL);
|
|
select * from multi_col_truncate;
|
|
---- RESULTS
|
|
1,11,11111.111111,'the quick brown fox jumps over the lazy dog'
|
|
2,222,421.000000,'the quick brown fox jumps over the lazy dog'
|
|
6,333,113211.200000,'the quick brown fox over the lazy dog the quick'
|
|
7,444,1111154.114320,'the quick fox brown jump impala over the quick fox brown the over jump'
|
|
18,555,9999913.232432,'the quick impala fox dog parrot lion'
|
|
NULL,NULL,NULL,'NULL'
|
|
---- TYPES
|
|
INT,BIGINT,DECIMAL,STRING
|
|
====
|
|
---- QUERY
|
|
show files in multi_col_truncate;
|
|
---- RESULTS
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/multi_col_truncate/data/s_trunc=the quick brown/i_trunc=0/b_trunc=11/d_trunc=11111.100000/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/multi_col_truncate/data/s_trunc=the quick brown/i_trunc=0/b_trunc=220/d_trunc=421.000000/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/multi_col_truncate/data/s_trunc=the quick brown/i_trunc=5/b_trunc=330/d_trunc=113211.200000/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/multi_col_truncate/data/s_trunc=the quick fox b/i_trunc=5/b_trunc=440/d_trunc=1111154.100000/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/multi_col_truncate/data/s_trunc=the quick impal/i_trunc=15/b_trunc=550/d_trunc=9999913.200000/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/multi_col_truncate/data/s_trunc=__HIVE_DEFAULT_PARTITION__/i_trunc=__HIVE_DEFAULT_PARTITION__/b_trunc=__HIVE_DEFAULT_PARTITION__/d_trunc=__HIVE_DEFAULT_PARTITION__/.*.parq','.*',''
|
|
---- TYPES
|
|
STRING, STRING, STRING
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from multi_col_truncate
|
|
where s = 'the quick brown fox jumps over the lazy dog';
|
|
---- RESULTS
|
|
1,11,11111.111111,'the quick brown fox jumps over the lazy dog'
|
|
2,222,421.000000,'the quick brown fox jumps over the lazy dog'
|
|
---- TYPES
|
|
INT,BIGINT,DECIMAL,STRING
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 2
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from multi_col_truncate
|
|
where s = 'the quick impala';
|
|
---- RESULTS
|
|
---- TYPES
|
|
INT,BIGINT,DECIMAL,STRING
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 0
|
|
aggregation(SUM, NumRowGroups): 0
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from multi_col_truncate
|
|
where i < 5;
|
|
---- RESULTS
|
|
1,11,11111.111111,'the quick brown fox jumps over the lazy dog'
|
|
2,222,421.000000,'the quick brown fox jumps over the lazy dog'
|
|
---- TYPES
|
|
INT,BIGINT,DECIMAL,STRING
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 2
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from multi_col_truncate
|
|
where b > 330;
|
|
---- RESULTS
|
|
6,333,113211.200000,'the quick brown fox over the lazy dog the quick'
|
|
7,444,1111154.114320,'the quick fox brown jump impala over the quick fox brown the over jump'
|
|
18,555,9999913.232432,'the quick impala fox dog parrot lion'
|
|
---- TYPES
|
|
INT,BIGINT,DECIMAL,STRING
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 3
|
|
aggregation(SUM, NumRowGroups): 3
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from multi_col_truncate
|
|
where 400 < d and d < 100000;
|
|
---- RESULTS
|
|
1,11,11111.111111,'the quick brown fox jumps over the lazy dog'
|
|
2,222,421.000000,'the quick brown fox jumps over the lazy dog'
|
|
---- TYPES
|
|
INT,BIGINT,DECIMAL,STRING
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 2
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from multi_col_truncate
|
|
where b > 100 and d < 100000;
|
|
---- RESULTS
|
|
2,222,421.000000,'the quick brown fox jumps over the lazy dog'
|
|
---- TYPES
|
|
INT,BIGINT,DECIMAL,STRING
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from multi_col_truncate
|
|
where b is NULL;
|
|
---- RESULTS
|
|
NULL,NULL,NULL,'NULL'
|
|
---- TYPES
|
|
INT,BIGINT,DECIMAL,STRING
|
|
====
|
|
---- QUERY
|
|
# Create table with YEAR partition transform
|
|
create table year_transform(t timestamp, d date)
|
|
partitioned by spec (year(t), year(d))
|
|
stored as iceberg;
|
|
====
|
|
---- QUERY
|
|
insert into year_transform values
|
|
('2021-01-08 14:04:03', '2021-01-08'),
|
|
('2021-01-07 14:04:03', '2021-01-07'),
|
|
('1970-01-01 00:00:00', '1970-01-01'),
|
|
('1970-11-01 00:00:00', '1970-11-01'),
|
|
('1969-12-15 13:55:03', '1969-12-15'),
|
|
('1969-02-15 13:55:03', '1969-02-15'),
|
|
(NULL, NULL);
|
|
select * from year_transform;
|
|
---- RESULTS
|
|
2021-01-08 14:04:03,2021-01-08
|
|
2021-01-07 14:04:03,2021-01-07
|
|
1970-01-01 00:00:00,1970-01-01
|
|
1970-11-01 00:00:00,1970-11-01
|
|
1969-12-15 13:55:03,1969-12-15
|
|
1969-02-15 13:55:03,1969-02-15
|
|
NULL,NULL
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
====
|
|
---- QUERY
|
|
show files in year_transform;
|
|
---- RESULTS
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/year_transform/data/t_year=1969/d_year=1969/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/year_transform/data/t_year=1970/d_year=1970/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/year_transform/data/t_year=2021/d_year=2021/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/year_transform/data/t_year=__HIVE_DEFAULT_PARTITION__/d_year=__HIVE_DEFAULT_PARTITION__/.*.parq','.*',''
|
|
---- TYPES
|
|
STRING, STRING, STRING
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from year_transform
|
|
where t = '2021-01-08 14:04:03';
|
|
---- RESULTS
|
|
2021-01-08 14:04:03,2021-01-08
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from year_transform
|
|
where t = '1970-01-01 00:00:00';
|
|
---- RESULTS
|
|
1970-01-01 00:00:00,1970-01-01
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from year_transform
|
|
where t = '1969-02-15 13:55:03';
|
|
---- RESULTS
|
|
1969-02-15 13:55:03,1969-02-15
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from year_transform
|
|
where t <= '1970-01-01 00:00:00';
|
|
---- RESULTS
|
|
1970-01-01 00:00:00,1970-01-01
|
|
1969-12-15 13:55:03,1969-12-15
|
|
1969-02-15 13:55:03,1969-02-15
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 4
|
|
aggregation(SUM, NumRowGroups): 2
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from year_transform
|
|
where d = '2021-01-07';
|
|
---- RESULTS
|
|
2021-01-07 14:04:03,2021-01-07
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from year_transform
|
|
where d = '1970-01-01';
|
|
---- RESULTS
|
|
1970-01-01 00:00:00,1970-01-01
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from year_transform
|
|
where d = '1969-12-15';
|
|
---- RESULTS
|
|
1969-12-15 13:55:03,1969-12-15
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Create table with MONTH partition transform
|
|
create table month_transform(t timestamp, d date)
|
|
partitioned by spec (month(t), month(d))
|
|
stored as iceberg;
|
|
====
|
|
---- QUERY
|
|
insert into month_transform values
|
|
('2021-01-08 14:04:03', '2021-01-08'),
|
|
('2021-01-07 14:04:03', '2021-01-07'),
|
|
('1970-01-01 00:00:00', '1970-01-01'),
|
|
('1970-11-01 00:00:00', '1970-11-01'),
|
|
('1969-12-15 13:55:03', '1969-12-15'),
|
|
('1969-02-15 13:55:03', '1969-02-15'),
|
|
(NULL, NULL);
|
|
select * from month_transform;
|
|
---- RESULTS
|
|
2021-01-08 14:04:03,2021-01-08
|
|
2021-01-07 14:04:03,2021-01-07
|
|
1970-01-01 00:00:00,1970-01-01
|
|
1970-11-01 00:00:00,1970-11-01
|
|
1969-12-15 13:55:03,1969-12-15
|
|
1969-02-15 13:55:03,1969-02-15
|
|
NULL,NULL
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
====
|
|
---- QUERY
|
|
show files in month_transform;
|
|
---- RESULTS
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/month_transform/data/t_month=1969-02/d_month=1969-02/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/month_transform/data/t_month=1969-12/d_month=1969-12/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/month_transform/data/t_month=1970-01/d_month=1970-01/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/month_transform/data/t_month=1970-11/d_month=1970-11/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/month_transform/data/t_month=2021-01/d_month=2021-01/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/month_transform/data/t_month=__HIVE_DEFAULT_PARTITION__/d_month=__HIVE_DEFAULT_PARTITION__/.*.parq','.*',''
|
|
---- TYPES
|
|
STRING, STRING, STRING
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from month_transform
|
|
where t = '2021-01-08 14:04:03';
|
|
---- RESULTS
|
|
2021-01-08 14:04:03,2021-01-08
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from month_transform
|
|
where t = '1970-01-01 00:00:00';
|
|
---- RESULTS
|
|
1970-01-01 00:00:00,1970-01-01
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from month_transform
|
|
where t = '1969-02-15 13:55:03';
|
|
---- RESULTS
|
|
1969-02-15 13:55:03,1969-02-15
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from month_transform
|
|
where d = '2021-01-07';
|
|
---- RESULTS
|
|
2021-01-07 14:04:03,2021-01-07
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from month_transform
|
|
where d = '1970-01-01';
|
|
---- RESULTS
|
|
1970-01-01 00:00:00,1970-01-01
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from month_transform
|
|
where d = '1969-12-15';
|
|
---- RESULTS
|
|
1969-12-15 13:55:03,1969-12-15
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Create table with DAY partition transform
|
|
create table day_transform(t timestamp, d date)
|
|
partitioned by spec (day(t), day(d))
|
|
stored as iceberg;
|
|
====
|
|
---- QUERY
|
|
insert into day_transform values
|
|
('2021-01-08 14:04:03', '2021-01-08'),
|
|
('2021-01-08 15:04:03', '2021-01-08'),
|
|
('2021-01-07 14:04:03', '2021-01-07'),
|
|
('1970-01-01 00:00:00', '1970-01-01'),
|
|
('1970-11-01 00:00:00', '1970-11-01'),
|
|
('1969-12-15 13:55:03', '1969-12-15'),
|
|
('1969-02-15 13:55:03', '1969-02-15'),
|
|
(NULL, NULL);
|
|
select * from day_transform;
|
|
---- RESULTS
|
|
2021-01-08 14:04:03,2021-01-08
|
|
2021-01-08 15:04:03,2021-01-08
|
|
2021-01-07 14:04:03,2021-01-07
|
|
1970-01-01 00:00:00,1970-01-01
|
|
1970-11-01 00:00:00,1970-11-01
|
|
1969-12-15 13:55:03,1969-12-15
|
|
1969-02-15 13:55:03,1969-02-15
|
|
NULL,NULL
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
====
|
|
---- QUERY
|
|
show files in day_transform;
|
|
---- RESULTS
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/day_transform/data/t_day=1969-02-15/d_day=1969-02-15/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/day_transform/data/t_day=1969-12-15/d_day=1969-12-15/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/day_transform/data/t_day=1970-01-01/d_day=1970-01-01/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/day_transform/data/t_day=1970-11-01/d_day=1970-11-01/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/day_transform/data/t_day=2021-01-07/d_day=2021-01-07/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/day_transform/data/t_day=2021-01-08/d_day=2021-01-08/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/day_transform/data/t_day=__HIVE_DEFAULT_PARTITION__/d_day=__HIVE_DEFAULT_PARTITION__/.*.parq','.*',''
|
|
---- TYPES
|
|
STRING, STRING, STRING
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from day_transform
|
|
where t = '2021-01-08 14:04:03';
|
|
---- RESULTS
|
|
2021-01-08 14:04:03,2021-01-08
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from day_transform
|
|
where t = '2021-01-07 14:04:03';
|
|
---- RESULTS
|
|
2021-01-07 14:04:03,2021-01-07
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from day_transform
|
|
where t = '1970-01-01 00:00:00';
|
|
---- RESULTS
|
|
1970-01-01 00:00:00,1970-01-01
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from day_transform
|
|
where t = '1969-02-15 13:55:03';
|
|
---- RESULTS
|
|
1969-02-15 13:55:03,1969-02-15
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from day_transform
|
|
where d = '2021-01-07';
|
|
---- RESULTS
|
|
2021-01-07 14:04:03,2021-01-07
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from day_transform
|
|
where d = '1970-01-01';
|
|
---- RESULTS
|
|
1970-01-01 00:00:00,1970-01-01
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from day_transform
|
|
where d = '1969-12-15';
|
|
---- RESULTS
|
|
1969-12-15 13:55:03,1969-12-15
|
|
---- TYPES
|
|
TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Create table with HOUR partition transform
|
|
create table hour_transform(t timestamp)
|
|
partitioned by spec (hour(t))
|
|
stored as iceberg;
|
|
====
|
|
---- QUERY
|
|
insert into hour_transform values
|
|
('1969-12-31 22:55:03'),
|
|
('1969-12-31 23:55:03'),
|
|
('1969-12-31 23:56:03'),
|
|
('1970-01-01 00:00:00'),
|
|
('1970-01-01 00:00:01'),
|
|
('1970-01-01 01:00:00'),
|
|
('2021-01-08 14:04:03'),
|
|
('2021-01-08 15:04:03'),
|
|
('2021-01-08 15:04:33'),
|
|
(NULL);
|
|
select * from hour_transform;
|
|
---- RESULTS
|
|
1969-12-31 22:55:03
|
|
1969-12-31 23:55:03
|
|
1969-12-31 23:56:03
|
|
1970-01-01 00:00:00
|
|
1970-01-01 00:00:01
|
|
1970-01-01 01:00:00
|
|
2021-01-08 14:04:03
|
|
2021-01-08 15:04:03
|
|
2021-01-08 15:04:33
|
|
NULL
|
|
---- TYPES
|
|
TIMESTAMP
|
|
====
|
|
---- QUERY
|
|
show files in hour_transform;
|
|
---- RESULTS
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/hour_transform/data/t_hour=1969-12-31-22/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/hour_transform/data/t_hour=1969-12-31-23/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/hour_transform/data/t_hour=1970-01-01-00/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/hour_transform/data/t_hour=1970-01-01-01/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/hour_transform/data/t_hour=2021-01-08-14/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/hour_transform/data/t_hour=2021-01-08-15/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/hour_transform/data/t_hour=__HIVE_DEFAULT_PARTITION__/.*.parq','.*',''
|
|
---- TYPES
|
|
STRING, STRING, STRING
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from hour_transform
|
|
where t = '1969-12-31 22:55:03';
|
|
---- RESULTS
|
|
1969-12-31 22:55:03
|
|
---- TYPES
|
|
TIMESTAMP
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from hour_transform
|
|
where t = '1969-12-31 23:55:03';
|
|
---- RESULTS
|
|
1969-12-31 23:55:03
|
|
---- TYPES
|
|
TIMESTAMP
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 2
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from hour_transform
|
|
where t < '1970-01-01 01:00:00';
|
|
---- RESULTS
|
|
1969-12-31 22:55:03
|
|
1969-12-31 23:55:03
|
|
1969-12-31 23:56:03
|
|
1970-01-01 00:00:00
|
|
1970-01-01 00:00:01
|
|
---- TYPES
|
|
TIMESTAMP
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 5
|
|
aggregation(SUM, NumRowGroups): 3
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from hour_transform
|
|
where t >= '1970-01-01 01:00:00';
|
|
---- RESULTS
|
|
1970-01-01 01:00:00
|
|
2021-01-08 14:04:03
|
|
2021-01-08 15:04:03
|
|
2021-01-08 15:04:33
|
|
---- TYPES
|
|
TIMESTAMP
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 4
|
|
aggregation(SUM, NumRowGroups): 3
|
|
====
|
|
---- QUERY
|
|
create table mixed_and_shuffled (s string, b bigint, de decimal(6, 2), t timestamp, da date)
|
|
partitioned by spec (day(t), year(da), truncate(5, s), bucket(3, b), truncate(100, de))
|
|
stored as iceberg;
|
|
====
|
|
---- QUERY
|
|
insert into mixed_and_shuffled values
|
|
('quick brown fox', 12345, 123.45, '2021-01-01 01:02:03', '2021-01-01'),
|
|
('quick brown impala', 54321, 543.21, '2021-01-01 02:03:04', '2021-01-01'),
|
|
('quick brown dog', 31, 3333.45, '2020-01-06 05:06:07', '2020-01-06'),
|
|
('pink parrot', 9999777999, 9.9, '1999-09-09 09:09:09', '1999-09-09'),
|
|
('green python', 717171, 71, '1971-07-01 07:07:07', '1971-07-01'),
|
|
(NULL, NULL, NULL, NULL, NULL);
|
|
select * from mixed_and_shuffled;
|
|
---- RESULTS
|
|
'quick brown fox',12345,123.45,2021-01-01 01:02:03,2021-01-01
|
|
'quick brown impala',54321,543.21,2021-01-01 02:03:04,2021-01-01
|
|
'quick brown dog',31,3333.45,2020-01-06 05:06:07,2020-01-06
|
|
'pink parrot',9999777999,9.90,1999-09-09 09:09:09,1999-09-09
|
|
'green python',717171,71.00,1971-07-01 07:07:07,1971-07-01
|
|
'NULL',NULL,NULL,NULL,NULL
|
|
---- TYPES
|
|
STRING,BIGINT,DECIMAL,TIMESTAMP,DATE
|
|
====
|
|
---- QUERY
|
|
show files in mixed_and_shuffled;
|
|
---- RESULTS
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/mixed_and_shuffled/data/t_day=1971-07-01/da_year=1971/s_trunc=green/b_bucket=1/de_trunc=71.00/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/mixed_and_shuffled/data/t_day=1999-09-09/da_year=1999/s_trunc=pink /b_bucket=1/de_trunc=9.00/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/mixed_and_shuffled/data/t_day=2020-01-06/da_year=2020/s_trunc=quick/b_bucket=1/de_trunc=3333.00/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/mixed_and_shuffled/data/t_day=2021-01-01/da_year=2021/s_trunc=quick/b_bucket=1/de_trunc=543.00/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/mixed_and_shuffled/data/t_day=2021-01-01/da_year=2021/s_trunc=quick/b_bucket=2/de_trunc=123.00/.*.parq','.*',''
|
|
row_regex:'$NAMENODE/test-warehouse/$DATABASE.db/mixed_and_shuffled/data/t_day=__HIVE_DEFAULT_PARTITION__/da_year=__HIVE_DEFAULT_PARTITION__/s_trunc=__HIVE_DEFAULT_PARTITION__/b_bucket=__HIVE_DEFAULT_PARTITION__/de_trunc=__HIVE_DEFAULT_PARTITION__/.*.parq','.*',''
|
|
---- TYPES
|
|
STRING, STRING, STRING
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from mixed_and_shuffled
|
|
where s = 'quick brown dog';
|
|
---- RESULTS
|
|
'quick brown dog',31,3333.45,2020-01-06 05:06:07,2020-01-06
|
|
---- TYPES
|
|
STRING,BIGINT,DECIMAL,TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from mixed_and_shuffled
|
|
where s = 'quick brown dog' and de > 1000;
|
|
---- RESULTS
|
|
'quick brown dog',31,3333.45,2020-01-06 05:06:07,2020-01-06
|
|
---- TYPES
|
|
STRING,BIGINT,DECIMAL,TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from mixed_and_shuffled
|
|
where da='1999-09-09';
|
|
---- RESULTS
|
|
'pink parrot',9999777999,9.90,1999-09-09 09:09:09,1999-09-09
|
|
---- TYPES
|
|
STRING,BIGINT,DECIMAL,TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 1
|
|
aggregation(SUM, NumRowGroups): 1
|
|
====
|
|
---- QUERY
|
|
# Test partition pruning with RUNTIME_PROFILE.
|
|
select * from mixed_and_shuffled
|
|
where de > 100;
|
|
---- RESULTS
|
|
'quick brown fox',12345,123.45,2021-01-01 01:02:03,2021-01-01
|
|
'quick brown impala',54321,543.21,2021-01-01 02:03:04,2021-01-01
|
|
'quick brown dog',31,3333.45,2020-01-06 05:06:07,2020-01-06
|
|
---- TYPES
|
|
STRING,BIGINT,DECIMAL,TIMESTAMP,DATE
|
|
---- RUNTIME_PROFILE
|
|
aggregation(SUM, RowsRead): 3
|
|
aggregation(SUM, NumRowGroups): 3
|
|
====
|
|
---- QUERY
|
|
select * from mixed_and_shuffled
|
|
where s is null;
|
|
---- RESULTS
|
|
'NULL',NULL,NULL,NULL,NULL
|
|
---- TYPES
|
|
STRING,BIGINT,DECIMAL,TIMESTAMP,DATE
|
|
====
|
|
---- QUERY
|
|
select * from mixed_and_shuffled
|
|
where da is not null;
|
|
---- RESULTS
|
|
'quick brown fox',12345,123.45,2021-01-01 01:02:03,2021-01-01
|
|
'quick brown impala',54321,543.21,2021-01-01 02:03:04,2021-01-01
|
|
'quick brown dog',31,3333.45,2020-01-06 05:06:07,2020-01-06
|
|
'pink parrot',9999777999,9.90,1999-09-09 09:09:09,1999-09-09
|
|
'green python',717171,71.00,1971-07-01 07:07:07,1971-07-01
|
|
---- TYPES
|
|
STRING,BIGINT,DECIMAL,TIMESTAMP,DATE
|
|
====
|