1d540f44创建于 2021年9月23日历史提交
set enable_default_ustore_table = on;

create schema test_ustore_groupby_3;
set current_schema='test_ustore_groupby_3';

-- test left outer join with all supported data types
drop table if exists t1;
drop table if exists t2;

drop type if exists composite_type;
create type composite_type as (int_type integer, char_type text, date_type date);

---------------------------------------------------------------------------------
-----------------             SUPPORTED TYPES SO FAR          -------------------
---------------------------------------------------------------------------------

create table t1
(
        c1 tinyint,
        c2 smallint,
        c3 integer,
        c4 bigint,
        c5 money,
        c6 boolean,
        c7 char(10),
        c8 character(10),
        c9 nchar(10),
        c10 varchar(10),
        c11 text,
        c12 clob,
        c14 bytea,
        c15 date,
        c16 time without time zone,
        c17 reltime
)
with (storage_type=USTORE);

create table t2
(
        c1 tinyint,
        c2 smallint,
        c3 integer,
        c4 bigint,
        c5 money,
        c6 boolean,
        c7 char(10),
        c8 character(10),
        c9 nchar(10),
        c10 varchar(10),
        c11 text,
        c12 clob,
        c14 bytea,
        c15 date,
        c16 time without time zone,
        c17 reltime
)
with (storage_type=USTORE);

create table t3
(
        c1 tinyint,
        c2 smallint,
        c3 integer,
        c4 bigint,
        c5 money,
        c6 boolean,
        c7 char(10),
        c8 character(10),
        c9 nchar(10),
        c10 varchar(10),
        c11 text,
        c12 clob,
        c14 bytea,
        c15 date,
        c16 time without time zone,
        c17 reltime
)
with (storage_type=USTORE);

-- create tables for post data insertion verification
drop table if exists t1_verification;
drop table if exists t2_verification;
drop table if exists t3_verification;

create table t1_verification
(
        c1 tinyint,
        c2 smallint,
        c3 integer,
        c4 bigint,
        c5 money,
        c6 boolean,
        c7 char(10),
        c8 character(10),
        c9 nchar(10),
        c10 varchar(10),
        c11 text,
        c12 clob,
        c14 bytea,
        c15 date,
        c16 time without time zone,
        c17 reltime
)
with (orientation=row);

create table t2_verification
(
        c1 tinyint,
        c2 smallint,
        c3 integer,
        c4 bigint,
        c5 money,
        c6 boolean,
        c7 char(10),
        c8 character(10),
        c9 nchar(10),
        c10 varchar(10),
        c11 text,
        c12 clob,
        c14 bytea,
        c15 date,
        c16 time without time zone,
        c17 reltime
)
with (orientation=row);

create table t3_verification
(
        c1 tinyint,
        c2 smallint,
        c3 integer,
        c4 bigint,
        c5 money,
        c6 boolean,
        c7 char(10),
        c8 character(10),
        c9 nchar(10),
        c10 varchar(10),
        c11 text,
        c12 clob,
        c14 bytea,
        c15 date,
        c16 time without time zone,
        c17 reltime
)
with (orientation=row);

----------------------------------------------------------------------------------
--------------------           ALL DATA TYPES              -----------------------
---------------------------------------------------------------------------------
--create table t1
--(
--        c1 tinyint,
--        c2 smallint,
--        c3 integer,
--        c4 bigint,
--        c5 money,
--        c6 boolean,
--        c7 char(10),
--        c8 character(10),
--        c9 nchar(10),
--        c10 varchar(10),
--        c11 text,
--        c12 clob,
--        c13 blob,
--        c14 bytea,
--        c15 date,
--        c16 time without time zone,
--        c17 reltime,
--        c18 composite_type
--)
--with (storage_type=USTORE);
--
--create table t2
--(
--        c1 tinyint,
--        c2 smallint,
--        c3 integer,
--        c4 bigint,
--        c5 money,
--        c6 boolean,
--        c7 char(10),
--        c8 character(10),
--        c9 nchar(10),
--        c10 varchar(10),
--        c11 text,
--        c12 clob,
--        c13 blob,
--        c14 bytea,
--        c15 date,
--        c16 time without time zone,
--        c17 reltime,
--        c18 composite_type
--)
--with (storage_type=USTORE);
--
--create table t3
--(
--        c1 tinyint,
--        c2 smallint,
--        c3 integer,
--        c4 bigint,
--        c5 money,
--        c6 boolean,
--        c7 char(10),
--        c8 character(10),
--        c9 nchar(10),
--        c10 varchar(10),
--        c11 text,
--        c12 clob,
--        c13 blob,
--        c14 bytea,
--        c15 date,
--        c16 time without time zone,
--        c17 reltime,
--        c18 composite_type
--)
--with (storage_type=USTORE);
--
---- create table for post data insertion verification
--drop table if exists t1_verification;
--drop table if exists t2_verification;
--drop table if exists t3_verification;
--
--create table t1_verification
--(
--        c1 tinyint,
--        c2 smallint,
--        c3 integer,
--        c4 bigint,
--        c5 money,
--        c6 boolean,
--        c7 char(10),
--        c8 character(10),
--        c9 nchar(10),
--        c10 varchar(10),
--        c11 text,
--        c12 clob,
--        c13 blob,
--        c14 bytea,
--        c15 date,
--        c16 time without time zone,
--        c17 reltime,
--        c18 composite_type
--)
--with (orientation=row);
--
--create table t2_verification
--(
--        c1 tinyint,
--        c2 smallint,
--        c3 integer,
--        c4 bigint,
--        c5 money,
--        c6 boolean,
--        c7 char(10),
--        c8 character(10),
--        c9 nchar(10),
--        c10 varchar(10),
--        c11 text,
--        c12 clob,
--        c13 blob,
--        c14 bytea,
--        c15 date,
--        c16 time without time zone,
--        c17 reltime,
--        c18 composite_type
--)
--with (orientation=row);
--
--create table t3_verification
--(
--        c1 tinyint,
--        c2 smallint,
--        c3 integer,
--        c4 bigint,
--        c5 money,
--        c6 boolean,
--        c7 char(10),
--        c8 character(10),
--        c9 nchar(10),
--        c10 varchar(10),
--        c11 text,
--        c12 clob,
--        c13 blob,
--        c14 bytea,
--        c15 date,
--        c16 time without time zone,
--        c17 reltime,
--        c18 composite_type
--)
--with (orientation=row);

\COPY t1 FROM '@abs_srcdir@/tmp_check/datanode1/pg_copydir/test_ustore_data1.data' delimiter '|';
\COPY t1_verification FROM '@abs_srcdir@/tmp_check/datanode1/pg_copydir/test_ustore_data1.data' delimiter '|';

-- t1 data verification
create view except_t1_verification_view as (select * from t1 except select * from t1_verification);

select * from except_t1_verification_view;

\COPY t2 FROM '@abs_srcdir@/tmp_check/datanode1/pg_copydir/test_ustore_data2.data' delimiter '|';
\COPY t2_verification FROM '@abs_srcdir@/tmp_check/datanode1/pg_copydir/test_ustore_data2.data' delimiter '|';


-- t2 data verification
create view except_t2_verification_view as (select * from t2 except select * from t2_verification);

select * from except_t2_verification_view;

\COPY t3 FROM '@abs_srcdir@/tmp_check/datanode1/pg_copydir/test_ustore_data3.data' delimiter '|';
\COPY t3_verification FROM '@abs_srcdir@/tmp_check/datanode1/pg_copydir/test_ustore_data3.data' delimiter '|';

-- t3 data verification
create view except_t3_verification_view as (select * from t3 except select * from t3_verification);


-- case 7: except with group by + aggregate function + distinct
create view except_view_case7_1 as (((select sum(t1.c1) from t1 group by t1.c1) except (select sum(t2.c2) from t2 group by t2.c2))
except
((select sum(t1_verification.c1) from t1_verification group by t1_verification.c1) except (select sum(t2_verification.c2) from t2_verification group by t2_verification.c2)));

create view except_view_case7_2 as (((select avg(t1.c3) from t1 group by t1.c3) except (select avg(t2.c4) from t2 group by t2.c4))
except
((select avg(t1_verification.c3) from t1_verification group by t1_verification.c3) except (select avg(t2_verification.c4) from t2_verification group by t2_verification.c4)));

create view except_view_case7_3 as ((select max(foo.c5) from ((select * from t1) except (select * from t2)) as foo)
except
(select max(foo.c5) from ((select * from t1_verification) except (select * from t2_verification)) as foo));

create view except_view_case7_4 as ((select min(foo.c5) from ((select * from t1) except (select * from t2)) as foo)
except
(select min(foo.c5) from ((select * from t1_verification) except (select * from t2_verification)) as foo));


create view except_view_case7_5 as ((select distinct  max(foo.c1) from ((select * from t1) except (select * from t2)) as foo)
except
(select distinct  max(foo.c1) from ((select * from t1_verification) except (select * from t2_verification)) as foo));

create view except_view_case7_6 as (((select distinct max(t1.c2) from t1 group by t1.c2) except (select distinct min(t2.c1) from t2 group by t2.c1))
except
((select distinct max(t1_verification.c2) from t1_verification group by t1_verification.c2) except (select distinct min(t2_verification.c1) from t2_verification group by t2_verification.c1)));

create view except_view_case7_7 as ((select count(*) from
((select sum(t1.c1) from t1 group by t1.c1) except (select sum(t2.c2) from t2 group by t2.c2)) as foo)
except
(select count(*) from
((select sum(t1_verification.c1) from t1_verification group by t1_verification.c1) except (select sum(t2_verification.c2) from t2_verification group by t2_verification.c2)) as foo));

create view except_view_case7_8 as ((select distinct max(foo.c1) from
(select * from t1 except select * from t2) as foo
group by foo.c1)
except
(select distinct max(foo.c1) from
(select * from t1_verification except select * from t2_verification) as foo
group by foo.c1));

create view except_view_case7_9 as ((select count(*) from
(select distinct c1 from t1 except select distinct c2 from t2) as foo
group by foo.c1)
except
(select count(*) from
(select distinct c1 from t1_verification except select distinct c2 from t2_verification) as foo
group by foo.c1));

select * from except_view_case7_1;
select * from except_view_case7_2;
select * from except_view_case7_3;
select * from except_view_case7_4;
select * from except_view_case7_5;
select * from except_view_case7_6;
select * from except_view_case7_7;
select * from except_view_case7_8;
select * from except_view_case7_9;


-- case 8: except with group by + having
create view except_view_case8_1 as ((select * from (select * from t1 except select * from t2) as foo group by foo.c1, foo.c2, foo.c3, foo.c4, foo.c5, foo.c6, foo.c7, foo.c8, foo.c9, foo.c10, foo.c11, foo.c12, foo.c14, foo.c15, foo.c16, foo.c17 having foo.c1=1)
except
(select * from (select * from t1_verification except select * from t2_verification) as foo group by foo.c1, foo.c2, foo.c3, foo.c4, foo.c5, foo.c6, foo.c7, foo.c8, foo.c9, foo.c10, foo.c11, foo.c12, foo.c14, foo.c15, foo.c16, foo.c17 having foo.c1=1));

create view except_view_case8_2 as ((select * from (select * from t1 except select * from t2) as foo group by foo.c1, foo.c2, foo.c3, foo.c4, foo.c5, foo.c6, foo.c7, foo.c8, foo.c9, foo.c10, foo.c11, foo.c12, foo.c14, foo.c15, foo.c16, foo.c17 having foo.c6=false)
except
(select * from (select * from t1_verification except select * from t2_verification) as foo group by foo.c1, foo.c2, foo.c3, foo.c4, foo.c5, foo.c6, foo.c7, foo.c8, foo.c9, foo.c10, foo.c11, foo.c12, foo.c14, foo.c15, foo.c16, foo.c17 having foo.c6=false));

create view except_view_case8_3 as ((select count(*) from
((select * from t1 where t1.c11 > 'aaaaa' group by t1.c1, t1.c2, t1.c3, t1.c4, t1.c5, t1.c6, t1.c7, t1.c8, t1.c9, t1.c10, t1.c11, t1.c12, t1.c14, t1.c15, t1.c16, t1.c17 having t1.c4 < 1000)
except
(select * from t2 where t2.c5>'400'::money group by t2.c1, t2.c2, t2.c3, t2.c4, t2.c5, t2.c6, t2.c7, t2.c8, t2.c9, t2.c10, t2.c11, t2.c12, t2.c14, t2.c15, t2.c16, t2.c17 having t2.c6=true)) as foo
where foo.c1<100)
except
(select count(*) from
((select * from t1_verification where t1_verification.c11 > 'aaaaa' group by t1_verification.c1, t1_verification.c2, t1_verification.c3, t1_verification.c4, t1_verification.c5, t1_verification.c6, t1_verification.c7, t1_verification.c8, t1_verification.c9, t1_verification.c10, t1_verification.c11, t1_verification.c12, t1_verification.c14, t1_verification.c15, t1_verification.c16, t1_verification.c17 having t1_verification.c4 < 1000)
except
(select * from t2_verification where t2_verification.c5>'400'::money group by t2_verification.c1, t2_verification.c2, t2_verification.c3, t2_verification.c4, t2_verification.c5, t2_verification.c6, t2_verification.c7, t2_verification.c8, t2_verification.c9, t2_verification.c10, t2_verification.c11, t2_verification.c12, t2_verification.c14, t2_verification.c15, t2_verification.c16, t2_verification.c17 having t2_verification.c6=true)) as foo
where foo.c1<100));

select * from except_view_case8_1;
select * from except_view_case8_2;
select * from except_view_case8_3;

create view except_view_case8_7 as (select * from (select * from t1 except select * from t2) as foo group by foo.c1, foo.c2, foo.c3, foo.c4, foo.c5, foo.c6, foo.c7, foo.c8, foo.c9, foo.c10, foo.c11, foo.c12, foo.c14, foo.c15, foo.c16, foo.c17 having foo.c1=1);

create view except_view_case8_8 as (select * from (select * from t1_verification except select * from t2_verification) as foo group by foo.c1, foo.c2, foo.c3, foo.c4, foo.c5, foo.c6, foo.c7, foo.c8, foo.c9, foo.c10, foo.c11, foo.c12, foo.c14, foo.c15, foo.c16, foo.c17 having foo.c1=1);

create view except_view_case8_9 as (select * from except_view_case8_7 where c1=10 except select * from except_view_case8_8 where c1=10);

create view except_view_case8_10 as ((select * from except_view_case8_7 order by c1) except (select * from except_view_case8_8 order by c1));

create view except_view_case8_11 as ((select * from except_view_case8_7 group by c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c14, c15, c16, c17  having c6=false) except (select * from except_view_case8_8 group by c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c14, c15, c16, c17 having c6=false));

select * from except_view_case8_9;
select * from except_view_case8_10;
select * from except_view_case8_11;


-- case 10: except view with regular table
create view except_view_case10_1 as (select * from (select * from t1 except select * from t2) as foo group by foo.c1, foo.c2, foo.c3, foo.c4, foo.c5, foo.c6, foo.c7, foo.c8, foo.c9, foo.c10, foo.c11, foo.c12, foo.c14, foo.c15, foo.c16, foo.c17 having foo.c1=20);

create view except_view_case10_2 as (select * from ((select * from except_view_case10_1) except (select t2.c1 as t2_c1, t2.c2 as t2_c2, t2.c3 as t2_c3, t2.c4 as t2_c4, t2.c5 as t2_c5, t2.c6 as t2_c6, t2.c7 as t2_c7, t2.c8 as t2_c8, t2.c9 as t2_c9, t2.c10 as t2_c10, t2.c11 as t2_c11, t2.c12 as t2_c12, t2.c14 as t2_c14, t2.c15 as t2_c15, t2.c16 as t2_c16, t2.c17 as t2_c17 from t2)) as foo
where foo.c6=false);

create view except_view_case10_3 as (select * from ((select * from except_view_case10_1) except (select t2_verification.c1 as t2_verification_c1, t2_verification.c2 as t2_verification_c2, t2_verification.c3 as t2_verification_c3, t2_verification.c4 as t2_verification_c4, t2_verification.c5 as t2_verification_c5, t2_verification.c6 as t2_verification_c6, t2_verification.c7 as t2_verification_c7, t2_verification.c8 as t2_verification_c8, t2_verification.c9 as t2_verification_c9, t2_verification.c10 as t2_verification_c10, t2_verification.c11 as t2_verification_c11, t2_verification.c12 as t2_verification_c12, t2_verification.c14 as t2_verification_c14, t2_verification.c15 as t2_verification_c15, t2_verification.c16 as t2_verification_c16, t2_verification.c17 as t2_verification_c17 from t2_verification)) as foo
where foo.c6=false);

create view except_view_case10_4 as (select * from except_view_case10_2 except select * from except_view_case10_3);


create view except_view_case10_5 as (select * from ((select * from except_view_case10_1) except (select t2.c1 as t2_c1, t2.c2 as t2_c2, t2.c3 as t2_c3, t2.c4 as t2_c4, t2.c5 as t2_c5, t2.c6 as t2_c6, t2.c7 as t2_c7, t2.c8 as t2_c8, t2.c9 as t2_c9, t2.c10 as t2_c10, t2.c11 as t2_c11, t2.c12 as t2_c12, t2.c14 as t2_c14, t2.c15 as t2_c15, t2.c16 as t2_c16, t2.c17 as t2_c17 from t2)) as foo
order by foo.c3);


create view except_view_case10_6 as (select * from ((select * from except_view_case10_1) except (select t2_verification.c1 as t2_verification_c1, t2_verification.c2 as t2_verification_c2, t2_verification.c3 as t2_verification_c3, t2_verification.c4 as t2_verification_c4, t2_verification.c5 as t2_verification_c5, t2_verification.c6 as t2_verification_c6, t2_verification.c7 as t2_verification_c7, t2_verification.c8 as t2_verification_c8, t2_verification.c9 as t2_verification_c9, t2_verification.c10 as t2_verification_c10, t2_verification.c11 as t2_verification_c11, t2_verification.c12 as t2_verification_c12, t2_verification.c14 as t2_verification_c14, t2_verification.c15 as t2_verification_c15, t2_verification.c16 as t2_verification_c16, t2_verification.c17 as t2_verification_c17 from t2_verification)) as foo
order by foo.c3);

create view except_view_case10_7 as (select * from except_view_case10_5 except select * from except_view_case10_6);

create view except_view_case10_8 as (select * from ((select * from except_view_case10_1) except (select t2.c1 as t2_c1, t2.c2 as t2_c2, t2.c3 as t2_c3, t2.c4 as t2_c4, t2.c5 as t2_c5, t2.c6 as t2_c6, t2.c7 as t2_c7, t2.c8 as t2_c8, t2.c9 as t2_c9, t2.c10 as t2_c10, t2.c11 as t2_c11, t2.c12 as t2_c12, t2.c14 as t2_c14, t2.c15 as t2_c15, t2.c16 as t2_c16, t2.c17 as t2_c17 from t2)) as foo
group by foo.c1, foo.c2, foo.c3, foo.c4, foo.c5, foo.c6, foo.c7, foo.c8, foo.c9, foo.c10, foo.c11, foo.c12, foo.c14, foo.c15, foo.c16, foo.c17
having foo.c6=true);

create view except_view_case10_9 as (select * from ((select * from except_view_case10_1) except (select t2_verification.c1 as t2_verification_c1, t2_verification.c2 as t2_verification_c2, t2_verification.c3 as t2_verification_c3, t2_verification.c4 as t2_verification_c4, t2_verification.c5 as t2_verification_c5, t2_verification.c6 as t2_verification_c6, t2_verification.c7 as t2_verification_c7, t2_verification.c8 as t2_verification_c8, t2_verification.c9 as t2_verification_c9, t2_verification.c10 as t2_verification_c10, t2_verification.c11 as t2_verification_c11, t2_verification.c12 as t2_verification_c12, t2_verification.c14 as t2_verification_c14, t2_verification.c15 as t2_verification_c15, t2_verification.c16 as t2_verification_c16, t2_verification.c17 as t2_verification_c17 from t2_verification)) as foo
group by foo.c1, foo.c2, foo.c3, foo.c4, foo.c5, foo.c6, foo.c7, foo.c8, foo.c9, foo.c10, foo.c11, foo.c12, foo.c14, foo.c15, foo.c16, foo.c17
having foo.c6=true);

create view except_view_case10_10 as (select * from except_view_case10_8 except select * from except_view_case10_9);

select * from except_view_case10_4;
select * from except_view_case10_7;
select * from except_view_case10_10;

create view except_view_case10_11 as (select t1.c1 as t1_c1, t1.c2 as t1_c2, t1.c3 as t1_c3, t1.c4 as t1_c4, t1.c5 as t1_c5, t1.c6 as t1_c6, t1.c7 as t1_c7, t1.c8 as t1_c8, t1.c9 as t1_c9, t1.c10 as t1_c10, t1.c11 as t1_c11, t1.c12 as t1_c12, t1.c14 as t1_c14, t1.c15 as t1_c15, t1.c16 as t1_c16, t1.c17 as t1_c17, t2.c1 as t2_c1, t2.c2 as t2_c2, t2.c3 as t2_c3, t2.c4 as t2_c4, t2.c5 as t2_c5, t2.c6 as t2_c6, t2.c7 as t2_c7, t2.c8 as t2_c8, t2.c9 as t2_c9, t2.c10 as t2_c10, t2.c11 as t2_c11, t2.c12 as t2_c12, t2.c14 as t2_c14, t2.c15 as t2_c15, t2.c16 as t2_c16, t2.c17 as t2_c17 from t1 full outer join t2 on t1.c2=t2.c2 order by 1);

create view except_view_case10_12 as (select * from except_view_case10_11 except (select * from t1 inner join t2 on t1.c10=t2.c10));

create view except_view_case10_13 as (select t1_verification.c1 as t1_verification_c1, t1_verification.c2 as t1_verification_c2, t1_verification.c3 as t1_verification_c3, t1_verification.c4 as t1_verification_c4, t1_verification.c5 as t1_verification_c5, t1_verification.c6 as t1_verification_c6, t1_verification.c7 as t1_verification_c7, t1_verification.c8 as t1_verification_c8, t1_verification.c9 as t1_verification_c9, t1_verification.c10 as t1_verification_c10, t1_verification.c11 as t1_verification_c11, t1_verification.c12 as t1_verification_c12, t1_verification.c14 as t1_verification_c14, t1_verification.c15 as t1_verification_c15, t1_verification.c16 as t1_verification_c16, t1_verification.c17 as t1_verification_c17, t2_verification.c1 as t2_verification_c1, t2_verification.c2 as t2_verification_c2, t2_verification.c3 as t2_verification_c3, t2_verification.c4 as t2_verification_c4, t2_verification.c5 as t2_verification_c5, t2_verification.c6 as t2_verification_c6, t2_verification.c7 as t2_verification_c7, t2_verification.c8 as t2_verification_c8, t2_verification.c9 as t2_verification_c9, t2_verification.c10 as t2_verification_c10, t2_verification.c11 as t2_verification_c11, t2_verification.c12 as t2_verification_c12, t2_verification.c14 as t2_verification_c14, t2_verification.c15 as t2_verification_c15, t2_verification.c16 as t2_verification_c16, t2_verification.c17 as t2_verification_c17 from t1_verification full outer join t2_verification on t1_verification.c2=t2_verification.c2 order by 1);

create view except_view_case10_14 as (select * from except_view_case10_13 except (select * from t1_verification inner join t2_verification on t1_verification.c10=t2_verification.c10));

create view except_view_case10_15 as (select * from except_view_case10_12 except select * from except_view_case10_14);

select * from except_view_case10_15;

create view except_view_case10_16 as (select * from except_view_case10_12 where t1_c1 > 100 except select * from except_view_case10_14 where t1_verification_c1 > 100);

select * from except_view_case10_16;


-- drop all tables and views
drop view except_t1_verification_view CASCADE;
drop view except_t2_verification_view CASCADE;
drop view except_t3_verification_view CASCADE;

drop view except_view_case7_1 CASCADE;
drop view except_view_case7_2 CASCADE;
drop view except_view_case7_3 CASCADE;
drop view except_view_case7_4 CASCADE;
drop view except_view_case7_5 CASCADE;
drop view except_view_case7_6 CASCADE;
drop view except_view_case7_7 CASCADE;
drop view except_view_case7_8 CASCADE;
drop view except_view_case7_9 CASCADE;

drop view except_view_case8_1 CASCADE;
drop view except_view_case8_2 CASCADE;
drop view except_view_case8_3 CASCADE;
drop view except_view_case8_7 CASCADE;
drop view except_view_case8_8 CASCADE;
drop view except_view_case8_9 CASCADE;
drop view except_view_case8_10 CASCADE;
drop view except_view_case8_11 CASCADE;

drop view except_view_case10_1 CASCADE;
drop view except_view_case10_2 CASCADE;
drop view except_view_case10_3 CASCADE;
drop view except_view_case10_4 CASCADE;
drop view except_view_case10_5 CASCADE;
drop view except_view_case10_6 CASCADE;
drop view except_view_case10_7 CASCADE;
drop view except_view_case10_8 CASCADE;
drop view except_view_case10_9 CASCADE;
drop view except_view_case10_10 CASCADE;
drop view except_view_case10_11 CASCADE;
drop view except_view_case10_12 CASCADE;
drop view except_view_case10_13 CASCADE;
drop view except_view_case10_14 CASCADE;
drop view except_view_case10_15 CASCADE;
drop view except_view_case10_16 CASCADE;

drop table t1 CASCADE;
drop table t2 CASCADE;
drop table t3 CASCADE;
drop table t1_verification CASCADE;
drop table t2_verification CASCADE;
drop table t3_verification CASCADE;