From 8ef2da8192a6682e6f0912fef9473c1c11eeab5a Mon Sep 17 00:00:00 2001 From: Ahmet Gedemenli Date: Tue, 29 Mar 2022 14:59:54 +0300 Subject: [PATCH 1/2] Add view tests to arbitrary configs --- src/test/regress/create_schedule | 1 + src/test/regress/expected/views_create.out | 44 ++++++++++++++++++++++ src/test/regress/sql/views_create.sql | 23 +++++++++++ 3 files changed, 68 insertions(+) create mode 100644 src/test/regress/expected/views_create.out create mode 100644 src/test/regress/sql/views_create.sql diff --git a/src/test/regress/create_schedule b/src/test/regress/create_schedule index 4a4688468..7484f1172 100644 --- a/src/test/regress/create_schedule +++ b/src/test/regress/create_schedule @@ -4,5 +4,6 @@ test: dropped_columns_create_load distributed_planning_create_load test: local_dist_join_load test: partitioned_indexes_create test: connectivity_checks +test: views_create test: sequences_create test: index_create diff --git a/src/test/regress/expected/views_create.out b/src/test/regress/expected/views_create.out new file mode 100644 index 000000000..4810b7b05 --- /dev/null +++ b/src/test/regress/expected/views_create.out @@ -0,0 +1,44 @@ +CREATE SCHEMA views_create; +SET search_path TO views_create; +CREATE TABLE view_test_table(a INT NOT NULL PRIMARY KEY, b BIGINT, c text); +CREATE OR REPLACE VIEW select_filtered_view AS + SELECT * FROM view_test_table WHERE c = 'testing' + WITH CASCADED CHECK OPTION; +CREATE OR REPLACE VIEW select_all_view AS + SELECT * FROM view_test_table + WITH LOCAL CHECK OPTION; +CREATE OR REPLACE VIEW count_view AS + SELECT COUNT(*) FROM view_test_table; +SELECT create_distributed_table('view_test_table', 'a'); + create_distributed_table +--------------------------------------------------------------------- + +(1 row) + +INSERT INTO view_test_table VALUES (1,1,'testing'), (2,1,'views'); +SELECT * FROM count_view; + count +--------------------------------------------------------------------- + 2 +(1 row) + +SELECT COUNT(*) FROM count_view; + count +--------------------------------------------------------------------- + 1 +(1 row) + +SELECT COUNT(*) FROM select_all_view; + count +--------------------------------------------------------------------- + 2 +(1 row) + +SELECT * FROM select_filtered_view; + a | b | c +--------------------------------------------------------------------- + 1 | 1 | testing +(1 row) + +-- dummy temp recursive view +CREATE TEMP RECURSIVE VIEW recursive_defined_non_recursive_view(c) AS (SELECT 1); diff --git a/src/test/regress/sql/views_create.sql b/src/test/regress/sql/views_create.sql new file mode 100644 index 000000000..e62ed71a6 --- /dev/null +++ b/src/test/regress/sql/views_create.sql @@ -0,0 +1,23 @@ +CREATE SCHEMA views_create; +SET search_path TO views_create; + +CREATE TABLE view_test_table(a INT NOT NULL PRIMARY KEY, b BIGINT, c text); +CREATE OR REPLACE VIEW select_filtered_view AS + SELECT * FROM view_test_table WHERE c = 'testing' + WITH CASCADED CHECK OPTION; +CREATE OR REPLACE VIEW select_all_view AS + SELECT * FROM view_test_table + WITH LOCAL CHECK OPTION; +CREATE OR REPLACE VIEW count_view AS + SELECT COUNT(*) FROM view_test_table; +SELECT create_distributed_table('view_test_table', 'a'); + +INSERT INTO view_test_table VALUES (1,1,'testing'), (2,1,'views'); +SELECT * FROM count_view; +SELECT COUNT(*) FROM count_view; +SELECT COUNT(*) FROM select_all_view; + +SELECT * FROM select_filtered_view; + +-- dummy temp recursive view +CREATE TEMP RECURSIVE VIEW recursive_defined_non_recursive_view(c) AS (SELECT 1); From f74d3eedc8a5c6a1c0f2861072bd9d6ff2f4224e Mon Sep 17 00:00:00 2001 From: Ahmet Gedemenli Date: Tue, 29 Mar 2022 18:29:05 +0300 Subject: [PATCH 2/2] Add tests for materialized views --- src/test/regress/expected/views_create.out | 31 ++++++++++++++++++++++ src/test/regress/sql/views_create.sql | 16 +++++++++++ 2 files changed, 47 insertions(+) diff --git a/src/test/regress/expected/views_create.out b/src/test/regress/expected/views_create.out index 4810b7b05..acc8f002f 100644 --- a/src/test/regress/expected/views_create.out +++ b/src/test/regress/expected/views_create.out @@ -42,3 +42,34 @@ SELECT * FROM select_filtered_view; -- dummy temp recursive view CREATE TEMP RECURSIVE VIEW recursive_defined_non_recursive_view(c) AS (SELECT 1); +CREATE MATERIALIZED VIEW select_all_matview AS + SELECT * FROM view_test_table + WITH DATA; +CREATE MATERIALIZED VIEW IF NOT EXISTS select_filtered_matview AS + SELECT * FROM view_test_table WHERE c = 'views' + WITH NO DATA; +REFRESH MATERIALIZED VIEW select_filtered_matview; +SELECT COUNT(*) FROM select_all_matview; + count +--------------------------------------------------------------------- + 2 +(1 row) + +SELECT * FROM select_filtered_matview; + a | b | c +--------------------------------------------------------------------- + 2 | 1 | views +(1 row) + +SELECT COUNT(*) FROM select_all_view a JOIN select_filtered_matview b ON a.c=b.c; + count +--------------------------------------------------------------------- + 1 +(1 row) + +SELECT COUNT(*) FROM select_all_view a JOIN view_test_table b ON a.c=b.c; + count +--------------------------------------------------------------------- + 2 +(1 row) + diff --git a/src/test/regress/sql/views_create.sql b/src/test/regress/sql/views_create.sql index e62ed71a6..d30676c42 100644 --- a/src/test/regress/sql/views_create.sql +++ b/src/test/regress/sql/views_create.sql @@ -21,3 +21,19 @@ SELECT * FROM select_filtered_view; -- dummy temp recursive view CREATE TEMP RECURSIVE VIEW recursive_defined_non_recursive_view(c) AS (SELECT 1); + +CREATE MATERIALIZED VIEW select_all_matview AS + SELECT * FROM view_test_table + WITH DATA; + +CREATE MATERIALIZED VIEW IF NOT EXISTS select_filtered_matview AS + SELECT * FROM view_test_table WHERE c = 'views' + WITH NO DATA; + +REFRESH MATERIALIZED VIEW select_filtered_matview; + +SELECT COUNT(*) FROM select_all_matview; +SELECT * FROM select_filtered_matview; + +SELECT COUNT(*) FROM select_all_view a JOIN select_filtered_matview b ON a.c=b.c; +SELECT COUNT(*) FROM select_all_view a JOIN view_test_table b ON a.c=b.c;