77 lines
2.6 KiB
SQL
77 lines
2.6 KiB
SQL
-- prepare
|
|
create table test(c1 int);
|
|
insert into test values(1);
|
|
-- base op
|
|
drop Materialized view mvtest_tm;
|
|
|
|
CREATE MATERIALIZED VIEW mvtest_tm AS select *from test;
|
|
select *From mvtest_tm;
|
|
|
|
insert into test values(1);
|
|
REFRESH MATERIALIZED VIEW mvtest_tm;
|
|
select *from mvtest_tm;
|
|
|
|
drop Materialized view mvtest_tm;
|
|
|
|
-- error
|
|
create incremental MATERIALIZED VIEW mvtest_inc AS select *from test;
|
|
REFRESH incremental MATERIALIZED VIEW mvtest_tm;
|
|
|
|
-- test matview with anounymous types
|
|
create database test_imv_db with dbcompatibility 'b';
|
|
\c test_imv_db
|
|
|
|
-- case 1: drop type first
|
|
create table imv1_t(a set('ad','asf'), c int);
|
|
create incremental materialized view imv1_v as select * from imv1_t;
|
|
create incremental materialized view imv12_v as select * from imv1_t;
|
|
drop type imv1_t_a_set cascade;
|
|
select oid, relname from pg_class where relname like 'mlog%';
|
|
drop table imv1_t cascade;
|
|
select oid, relname from pg_class where relname like 'mlog%';
|
|
|
|
-- case 2: drop view first
|
|
create table imv1_t(a set('ad','asf'), c int);
|
|
create incremental materialized view imv1_v as select * from imv1_t;
|
|
create incremental materialized view imv12_v as select * from imv1_t;
|
|
drop materialized view imv1_v;
|
|
select oid, relname from pg_class where relname like 'mlog%';
|
|
drop materialized view imv12_v;
|
|
select oid, relname from pg_class where relname like 'mlog%';
|
|
drop table imv1_t cascade;
|
|
|
|
-- case 3: drop table directly
|
|
create table imv1_t(a set('ad','asf'), c int);
|
|
create incremental materialized view imv1_v as select * from imv1_t;
|
|
create incremental materialized view imv12_v as select * from imv1_t;
|
|
drop table imv1_t cascade;
|
|
select oid, relname from pg_class where relname like 'mlog%';
|
|
|
|
-- case 4: multi columns
|
|
create table imv1_t(a set('ad','asf'), b set('b', 'bb'), c int, d set('b', 'bb'));
|
|
create incremental materialized view imv1_v as select * from imv1_t;
|
|
create incremental materialized view imv12_v as select * from imv1_t;
|
|
create incremental materialized view imv13_v as select * from imv1_t;
|
|
\d
|
|
drop table imv1_t cascade;
|
|
select oid, relname from pg_class where relname like 'mlog%';
|
|
\d
|
|
|
|
create table test_syn(id int unique,a1 varchar(20));
|
|
create materialized view mv_test_syn as select * from test_syn;
|
|
create incremental materialized view imv_test_syn as select * from test_syn;
|
|
create synonym s_mv_test_syn for mv_test_syn;
|
|
create synonym s_imv_test_syn for imv_test_syn;
|
|
|
|
REFRESH MATERIALIZED VIEW s_mv_test_syn;
|
|
REFRESH MATERIALIZED VIEW s_imv_test_syn;
|
|
REFRESH INCREMENTAL MATERIALIZED VIEW s_mv_test_syn;
|
|
REFRESH INCREMENTAL MATERIALIZED VIEW s_imv_test_syn;
|
|
|
|
drop synonym s_mv_test_syn;
|
|
drop synonym s_imv_test_syn;
|
|
drop table test_syn cascade;
|
|
|
|
\c regression
|
|
drop database test_imv_db;
|