Files
openGauss-server/src/test/regress/sql/dfs_orc_vec_unique.sql
dengxuyue 1567043064 同步source code
日期: 12-26
    revision: ee5b054c
2020-12-28 22:19:21 +08:00

155 lines
8.1 KiB
SQL

set enable_global_stats = true;
/*
* This file is used to test the function of ExecVecUnique()
*/
----
--- Create Table and Insert Data
----
create schema vector_unique_engine;
set current_schema = vector_unique_engine;
create table vector_unique_engine.ROW_UNIQUE_TABLE_01
(
col_int0 int4
,col_int1 int
,col_int2 int
,col_bint bigint
,col_char char(25)
,col_vchar varchar(35)
,col_num numeric(10,4)
,col_decimal decimal
,col_float float
,col_date date
,col_time time
,col_timetz timetz
,col_interval interval
);
create table vector_unique_engine.VECTOR_UNIQUE_TABLE_01
(
col_int0 int4
,col_int1 int
,col_int2 int
,col_bint bigint
,col_char char(25)
,col_vchar varchar(35)
,col_num numeric(10,4)
,col_decimal decimal
,col_float float
,col_date date
,col_time time
,col_timetz timetz
,col_interval interval
)with(orientation = orc) tablespace hdfs_ts distribute by hash(col_int1);
create table vector_unique_engine.ROW_UNIQUE_TABLE_02
(
col_int0 int4
,col_int1 int
,col_int2 int
,col_bint bigint
,col_char char(25)
,col_vchar varchar(35)
,col_num numeric(10,4)
,col_decimal decimal
,col_float float
,col_date date
,col_time time
,col_timetz timetz
,col_interval interval
);
create table vector_unique_engine.VECTOR_UNIQUE_TABLE_02
(
col_int0 int4
,col_int1 int
,col_int2 int
,col_bint bigint
,col_char char(25)
,col_vchar varchar(35)
,col_num numeric(10,4)
,col_decimal decimal
,col_float float
,col_date date
,col_time time
,col_timetz timetz
,col_interval interval
)with(orientation = orc) tablespace hdfs_ts distribute by hash(col_int1);
insert into ROW_UNIQUE_TABLE_01 values(1, 10, 100, 10000, 'aa', 'aaaaaa', 0.01, 10.01, 1100.01, '2015-02-14', '16:00:38', '1996-2-6 01:00:30+8', '2 day 13:24:56');
insert into ROW_UNIQUE_TABLE_01 values(11, 20, 100, 10000, 'aa', 'gggggg', 0.01, 10.01, 1100.01, '2015-03-14', '16:02:38', '1996-2-8 01:00:30+8', '2 day 13:56:56');
insert into ROW_UNIQUE_TABLE_01 values(1, 30, 100, 30000, 'bb', 'aaaaaa', 0.01, 10.01, 100.01, '2015-04-15', '16:02:38', '1996-2-6 01:00:30+8', '2 day 13:24:56');
insert into ROW_UNIQUE_TABLE_01 values(11, 40, 100, 10000, 'bb', 'aaaaaa', 0.04, 10.01, 100.01, '2015-05-16', '16:00:38', '1996-2-8 01:00:30+8', '2 day 13:24:56');
insert into ROW_UNIQUE_TABLE_01 values(1, 50, 200, 10000, 'cc', 'aaaaaa', 0.01, 10.11, 100.01, '2015-02-18', '16:00:38', '1996-2-6 01:00:30+8', '2 day 13:56:56');
insert into ROW_UNIQUE_TABLE_01 values(11, 10, 100, 30000, 'dd', 'hhhhhh', 0.01, 10.01, 100.01, '2015-08-09', '16:00:38', '1996-2-8 01:00:30+8', '2 day 13:24:56');
insert into ROW_UNIQUE_TABLE_01 values(1, 20, 100, 10000, 'dd', 'aaaaaa', 0.01, 10.01, 100.01, '2015-10-06', '16:05:38', '1996-2-6 01:00:30+8', '8 day 13:24:56');
insert into ROW_UNIQUE_TABLE_01 values(11, 30, 100, 10000, 'ee', 'ffffff', 0.08, 10.01, 1100.01, '2015-12-02', '16:05:38', '1996-2-6 01:00:30+8', '2 day 13:24:56');
insert into ROW_UNIQUE_TABLE_01 values(1, 40, 200, 60000, 'ee', 'aaaaaa', 0.08, 10.01, 1100.01, '2015-06-16', '16:00:38', '1996-2-8 01:00:30+8', '10 day 13:24:56');
insert into ROW_UNIQUE_TABLE_01 values(11, 50, 100, 10000, 'gg', 'ffffff', 0.01, 10.11, 100.01, '2015-05-20', '16:00:38', '1996-2-6 01:00:30+8', '2 day 13:24:56');
insert into ROW_UNIQUE_TABLE_02 values(2, 10, 900, 10000, 'aa', 'bbbbbb', 0.01, 10.01, 100.01, '2015-02-14', '16:00:38', '1996-2-6 01:00:30+8', '2 day 13:24:56');
insert into ROW_UNIQUE_TABLE_02 values(1, 20, 100, 20000, 'cc', 'aaaaaa', 0.01, 10.01, 100.01, '2015-02-14', '16:00:38', '1996-2-16 01:00:30+8', '2 day 13:24:56');
insert into ROW_UNIQUE_TABLE_02 values(2, 10, 800, 10000, 'aa', 'cccccc', 0.01, 10.02, 100.22, '2015-02-14', '16:00:38', '1996-2-6 01:00:30+8', '8 day 13:24:56');
insert into ROW_UNIQUE_TABLE_02 values(7, 40, 100, 10000, 'aa', 'cccccc', 0.01, 10.01, 100.22, '2015-02-14', '16:08:38', '1996-2-16 01:00:30+8', '2 day 13:24:56');
insert into ROW_UNIQUE_TABLE_02 values(2, 10, 700, 20000, 'eee', 'aaaaaa', 0.01, 10.01, 100.22, '2015-02-14', '16:08:38', '1996-2-6 01:00:30+8', '2 day 13:24:56');
insert into ROW_UNIQUE_TABLE_02 values(1, 60, 100, 10000, 'aa', 'zzzzzz', 0.01, 10.02, 100.01, '2015-02-14', '16:00:38', '1996-2-6 01:00:30+8', '8 day 13:24:56');
insert into ROW_UNIQUE_TABLE_02 values(2, 10, 600, 10000, 'ddd', 'aaaaaa', 0.01, 10.01, 100.01, '2015-02-16', '16:00:38', '1996-2-16 01:00:30+8', '2 day 13:24:56');
insert into ROW_UNIQUE_TABLE_02 values(1, 80, 100, 20000, 'aa', 'vvvvvvv', 0.01, 10.01, 100.01, '2015-02-16', '16:00:38', '1996-2-6 01:00:30+8', '2 day 13:24:56');
insert into VECTOR_UNIQUE_TABLE_01 select * from ROW_UNIQUE_TABLE_01;
insert into VECTOR_UNIQUE_TABLE_02 select * from ROW_UNIQUE_TABLE_02;
analyze VECTOR_UNIQUE_TABLE_01;
analyze VECTOR_UNIQUE_TABLE_02;
----
--- case 1: Basic Cases
----
explain (verbose on, costs off) select distinct col_num from VECTOR_UNIQUE_TABLE_01 order by 1;
select distinct col_num from VECTOR_UNIQUE_TABLE_01 order by 1;
select distinct col_date from VECTOR_UNIQUE_TABLE_01 order by 1;
select distinct col_time from VECTOR_UNIQUE_TABLE_01 order by 1;
select distinct col_vchar from VECTOR_UNIQUE_TABLE_01 order by 1;
select distinct col_timetz from VECTOR_UNIQUE_TABLE_01 order by 1;
select distinct col_interval from VECTOR_UNIQUE_TABLE_01 order by 1;
select distinct col_float + col_decimal from VECTOR_UNIQUE_TABLE_01 order by 1;
select distinct A.col_int1 + B.col_int2 from VECTOR_UNIQUE_TABLE_01 A, VECTOR_UNIQUE_TABLE_02 B order by 1;
select distinct A.col_int1 + B.col_int2 from VECTOR_UNIQUE_TABLE_01 A, ROW_UNIQUE_TABLE_02 B order by 1;
select distinct A.col_int1 + B.col_int2 from VECTOR_UNIQUE_TABLE_01 A, VECTOR_UNIQUE_TABLE_02 B where A.col_char = B.col_char order by 1;
----
--- case 2: With NULL
----
delete from VECTOR_UNIQUE_TABLE_01;
insert into ROW_UNIQUE_TABLE_01 values(1, 80, 100, 20000, 'aa', NULL, 0.01, 10.01, 100.01, '2015-02-16', NULL, '1996-2-6 01:00:30+8', '2 day 13:24:56');
insert into ROW_UNIQUE_TABLE_01 values(1, 60, 100, 20000, NULL, 'vvvvvvv', 0.01, 10.01, 100.01, '2015-02-16', '16:00:38', '1996-2-6 01:00:30+8', '2 day 13:24:56');
insert into ROW_UNIQUE_TABLE_01 values(1, 80, 100, 20000, 'aa', 'vvvvvvv', 0.01, 10.01, 100.01, NULL, '16:00:38', '1996-2-6 01:00:30+8', NULL);
insert into ROW_UNIQUE_TABLE_01 values(1, 60, NULL, 20000, 'aa', 'vvvvvvv', NULL, 10.01, 100.01, NULL, '16:00:38', '1996-2-6 01:00:30+8', '2 day 13:24:56');
insert into VECTOR_UNIQUE_TABLE_01 select * from ROW_UNIQUE_TABLE_01;
select distinct col_time from VECTOR_UNIQUE_TABLE_01 order by 1;
select distinct col_date from VECTOR_UNIQUE_TABLE_01 order by 1;
select distinct col_float + col_num from VECTOR_UNIQUE_TABLE_01 order by 1;
select distinct A.col_int1 + B.col_int2 from VECTOR_UNIQUE_TABLE_01 A, VECTOR_UNIQUE_TABLE_02 B where A.col_char = B.col_char order by 1;
----
--- case 3: Count(distinct)
----
explain (costs off) select col_int0, count(distinct col_time) from VECTOR_UNIQUE_TABLE_01 group by col_int0;
select col_int0, count(distinct col_time) from VECTOR_UNIQUE_TABLE_01 group by col_int0 order by 1;
explain (costs off) select col_int1, count(distinct col_time) from VECTOR_UNIQUE_TABLE_01 group by col_int1;
select col_int1, count(distinct col_time) from VECTOR_UNIQUE_TABLE_01 group by col_int1 order by 1;
explain (costs off) select count(distinct col_time) from VECTOR_UNIQUE_TABLE_01;
select count(distinct col_time) from VECTOR_UNIQUE_TABLE_01;
explain (costs off) select distinct x from (select count(distinct col_time) x from VECTOR_UNIQUE_TABLE_01 group by col_int0);
select distinct x from (select count(distinct col_time) x from VECTOR_UNIQUE_TABLE_01 group by col_int0) order by 1;
explain (costs off) select distinct x from (select count(distinct col_time) x from VECTOR_UNIQUE_TABLE_01 group by col_int1);
select distinct x from (select count(distinct col_time) x from VECTOR_UNIQUE_TABLE_01 group by col_int1) order by 1;
explain (costs off) select distinct x from (select count(distinct col_time) x from VECTOR_UNIQUE_TABLE_01);
select distinct x from (select count(distinct col_time) x from VECTOR_UNIQUE_TABLE_01);
----
--- Clean Table and Resource
----
drop schema vector_unique_engine cascade;