diff --git a/src/test/regress/expected/matview.out b/src/test/regress/expected/matview.out index 5a53f84c5b..bda4d168aa 100644 --- a/src/test/regress/expected/matview.out +++ b/src/test/regress/expected/matview.out @@ -418,3 +418,15 @@ NOTICE: drop cascades to 3 other objects DETAIL: drop cascades to view v_test2 drop cascades to materialized view mv_test2 drop cascades to materialized view mv_test3 +-- test a corner case for "with no data" versus a query which yields no rows +CREATE MATERIALIZED VIEW matview_unit_false AS SELECT false WHERE false WITH NO DATA; +SELECT * FROM matview_unit_false; +ERROR: materialized view "matview_unit_false" has not been populated +HINT: Use the REFRESH MATERIALIZED VIEW command. +REFRESH MATERIALIZED VIEW matview_unit_false; +SELECT * FROM matview_unit_false; + bool +------ +(0 rows) + +DROP MATERIALIZED VIEW matview_unit_false; diff --git a/src/test/regress/sql/matview.sql b/src/test/regress/sql/matview.sql index 08b48188c3..88c4d220af 100644 --- a/src/test/regress/sql/matview.sql +++ b/src/test/regress/sql/matview.sql @@ -129,3 +129,10 @@ CREATE MATERIALIZED VIEW mv_test3 AS SELECT * FROM mv_test2 WHERE moo = 12345; SELECT pg_relation_is_scannable('mv_test3'::regclass); DROP VIEW v_test1 CASCADE; + +-- test a corner case for "with no data" versus a query which yields no rows +CREATE MATERIALIZED VIEW matview_unit_false AS SELECT false WHERE false WITH NO DATA; +SELECT * FROM matview_unit_false; +REFRESH MATERIALIZED VIEW matview_unit_false; +SELECT * FROM matview_unit_false; +DROP MATERIALIZED VIEW matview_unit_false;