diff options
| author | Kevin Grittner | 2013-11-02 23:38:17 +0000 |
|---|---|---|
| committer | Kevin Grittner | 2013-11-02 23:38:17 +0000 |
| commit | be420fa02e69f084a0eeac6d2cb5424551aad495 (patch) | |
| tree | 9b8a5ba9ac079a89461faf6f8415b7139f15a5fd /src/test | |
| parent | 24ace4053d42e2c48af8c15d598622e488fb9502 (diff) | |
Fix subquery reference to non-populated MV in CMV.
A subquery reference to a matview should be allowed by CREATE
MATERIALIZED VIEW WITH NO DATA, just like a direct reference is.
Per bug report from Laurent Sartran.
Backpatch to 9.3.
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/regress/expected/matview.out | 6 | ||||
| -rw-r--r-- | src/test/regress/sql/matview.sql | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/test/regress/expected/matview.out b/src/test/regress/expected/matview.out index c2bb9b0c5ef..24f8b796dfb 100644 --- a/src/test/regress/expected/matview.out +++ b/src/test/regress/expected/matview.out @@ -424,6 +424,12 @@ REFRESH MATERIALIZED VIEW mv; REFRESH MATERIALIZED VIEW CONCURRENTLY mv; DROP TABLE foo CASCADE; NOTICE: drop cascades to materialized view mv +-- allow subquery to reference unpopulated matview if WITH NO DATA is specified +CREATE MATERIALIZED VIEW mv1 AS SELECT 1 AS col1 WITH NO DATA; +CREATE MATERIALIZED VIEW mv2 AS SELECT * FROM mv1 + WHERE col1 = (SELECT LEAST(col1) FROM mv1) WITH NO DATA; +DROP MATERIALIZED VIEW mv1 CASCADE; +NOTICE: drop cascades to materialized view mv2 -- make sure that types with unusual equality tests work CREATE TABLE boxes (id serial primary key, b box); INSERT INTO boxes (b) VALUES diff --git a/src/test/regress/sql/matview.sql b/src/test/regress/sql/matview.sql index 3ba6109d0b0..93e7a42480e 100644 --- a/src/test/regress/sql/matview.sql +++ b/src/test/regress/sql/matview.sql @@ -155,6 +155,12 @@ REFRESH MATERIALIZED VIEW mv; REFRESH MATERIALIZED VIEW CONCURRENTLY mv; DROP TABLE foo CASCADE; +-- allow subquery to reference unpopulated matview if WITH NO DATA is specified +CREATE MATERIALIZED VIEW mv1 AS SELECT 1 AS col1 WITH NO DATA; +CREATE MATERIALIZED VIEW mv2 AS SELECT * FROM mv1 + WHERE col1 = (SELECT LEAST(col1) FROM mv1) WITH NO DATA; +DROP MATERIALIZED VIEW mv1 CASCADE; + -- make sure that types with unusual equality tests work CREATE TABLE boxes (id serial primary key, b box); INSERT INTO boxes (b) VALUES |
