====
---- QUERY
# test compute stats on a partitioned decimal text table
create table decimal_tbl like functional.decimal_tbl;
insert into decimal_tbl partition(d6)
select * from functional.decimal_tbl;
====
---- QUERY
compute stats decimal_tbl
---- RESULTS
'Updated 1 partition(s) and 5 column(s).'
====
---- QUERY
show table stats decimal_tbl
---- LABELS
d6, #Rows, #Files, Size, Bytes Cached, Cache Replication, Format, Incremental Stats, Location
---- RESULTS
'1',5,1,'375B','NOT CACHED','NOT CACHED','TEXT','false',regex:.*
'Total',5,1,'375B','0B','','','',''
---- TYPES
STRING, BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
show column stats decimal_tbl
---- LABELS
COLUMN, TYPE, #DISTINCT VALUES, #NULLS, MAX SIZE, AVG SIZE
---- RESULTS
'd1','DECIMAL(9,0)',4,0,4,4
'd2','DECIMAL(10,0)',3,0,8,8
'd3','DECIMAL(20,10)',5,0,16,16
'd4','DECIMAL(38,38)',1,0,16,16
'd5','DECIMAL(10,5)',5,0,8,8
'd6','DECIMAL(9,0)',1,0,4,4
---- TYPES
STRING, STRING, BIGINT, BIGINT, BIGINT, DOUBLE
====
---- QUERY
# test compute stats on a mixed-type parquet table
create table mixed_types(a int, b decimal(10,0)) stored as parquet;
insert into mixed_types values (1, 2), (3, 4);
====
---- QUERY
compute stats mixed_types
---- RESULTS
'Updated 1 partition(s) and 2 column(s).'
====
---- QUERY
show table stats mixed_types
---- LABELS
#Rows, #Files, Size, Bytes Cached, Cache Replication, Format, Incremental Stats, Location
---- RESULTS
2,1,regex:.+B,'NOT CACHED','NOT CACHED','PARQUET','false',regex:.*
---- TYPES
BIGINT, BIGINT, STRING, STRING, STRING, STRING, STRING, STRING
====
---- QUERY
show column stats mixed_types
---- LABELS
COLUMN, TYPE, #DISTINCT VALUES, #NULLS, MAX SIZE, AVG SIZE
---- RESULTS
'a','INT',2,0,4,4
'b','DECIMAL(10,0)',2,0,8,8
---- TYPES
STRING, STRING, BIGINT, BIGINT, BIGINT, DOUBLE
====