@@ -16,6 +16,9 @@ select create_hash_partitions('views._abc', 'id', 10);
1616(1 row)
1717
1818insert into views._abc select generate_series(1, 100);
19+ /* create a dummy table */
20+ create table views._abc_add (like views._abc);
21+ vacuum analyze;
1922/* create a facade view */
2023create view views.abc as select * from views._abc;
2124create or replace function views.disable_modification()
@@ -117,6 +120,69 @@ explain (costs off) delete from views.abc where id = 1 or id = 2;
117120
118121delete from views.abc where id = 1 or id = 2;
119122ERROR: DELETE
123+ /* Test SELECT with UNION */
124+ create view views.abc_union as table views._abc union table views._abc_add;
125+ create view views.abc_union_all as table views._abc union all table views._abc_add;
126+ explain (costs off) table views.abc_union;
127+ QUERY PLAN
128+ --------------------------------------
129+ HashAggregate
130+ Group Key: _abc_0.id
131+ -> Append
132+ -> Append
133+ -> Seq Scan on _abc_0
134+ -> Seq Scan on _abc_1
135+ -> Seq Scan on _abc_2
136+ -> Seq Scan on _abc_3
137+ -> Seq Scan on _abc_4
138+ -> Seq Scan on _abc_5
139+ -> Seq Scan on _abc_6
140+ -> Seq Scan on _abc_7
141+ -> Seq Scan on _abc_8
142+ -> Seq Scan on _abc_9
143+ -> Seq Scan on _abc_add
144+ (15 rows)
145+
146+ explain (costs off) select * from views.abc_union where id = 5;
147+ QUERY PLAN
148+ --------------------------------------
149+ HashAggregate
150+ Group Key: _abc_8.id
151+ -> Append
152+ -> Append
153+ -> Seq Scan on _abc_8
154+ Filter: (id = 5)
155+ -> Seq Scan on _abc_add
156+ Filter: (id = 5)
157+ (8 rows)
158+
159+ explain (costs off) table views.abc_union_all;
160+ QUERY PLAN
161+ ----------------------------
162+ Append
163+ -> Seq Scan on _abc_0
164+ -> Seq Scan on _abc_1
165+ -> Seq Scan on _abc_2
166+ -> Seq Scan on _abc_3
167+ -> Seq Scan on _abc_4
168+ -> Seq Scan on _abc_5
169+ -> Seq Scan on _abc_6
170+ -> Seq Scan on _abc_7
171+ -> Seq Scan on _abc_8
172+ -> Seq Scan on _abc_9
173+ -> Seq Scan on _abc_add
174+ (12 rows)
175+
176+ explain (costs off) select * from views.abc_union_all where id = 5;
177+ QUERY PLAN
178+ ----------------------------
179+ Append
180+ -> Seq Scan on _abc_8
181+ Filter: (id = 5)
182+ -> Seq Scan on _abc_add
183+ Filter: (id = 5)
184+ (5 rows)
185+
120186DROP SCHEMA views CASCADE;
121- NOTICE: drop cascades to 13 other objects
187+ NOTICE: drop cascades to 16 other objects
122188DROP EXTENSION pg_pathman;
0 commit comments