Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit30556ad

Browse files
committed
tests for improved append_child_relation() & set_append_rel_pathlist()
1 parentf722696 commit30556ad

File tree

2 files changed

+94
-1
lines changed

2 files changed

+94
-1
lines changed

‎expected/pathman_basic.out

Lines changed: 73 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,78 @@ SELECT COUNT(*) FROM ONLY test.num_range_rel;
190190
0
191191
(1 row)
192192

193+
/* since rel_1_2_beta: check append_child_relation(), make_ands_explicit(), dummy path */
194+
CREATE TABLE test.improved_dummy (id BIGSERIAL, name TEXT NOT NULL);
195+
INSERT INTO test.improved_dummy (name) SELECT md5(g::TEXT) FROM generate_series(1, 100) as g;
196+
SELECT pathman.create_range_partitions('test.improved_dummy', 'id', 1, 10);
197+
NOTICE: sequence "improved_dummy_seq" does not exist, skipping
198+
create_range_partitions
199+
-------------------------
200+
10
201+
(1 row)
202+
203+
INSERT INTO test.improved_dummy (name) VALUES ('test'); /* spawns new partition */
204+
EXPLAIN (COSTS OFF) SELECT * FROM test.improved_dummy WHERE id = 101 OR id = 5 AND name = 'ib';
205+
QUERY PLAN
206+
----------------------------------------------------
207+
Append
208+
-> Seq Scan on improved_dummy_1
209+
Filter: ((id = 5) AND (name = 'ib'::text))
210+
-> Seq Scan on improved_dummy_11
211+
Filter: (id = 101)
212+
(5 rows)
213+
214+
SELECT pathman.set_enable_parent('test.improved_dummy', true); /* enable parent */
215+
set_enable_parent
216+
-------------------
217+
218+
(1 row)
219+
220+
EXPLAIN (COSTS OFF) SELECT * FROM test.improved_dummy WHERE id = 101 OR id = 5 AND name = 'ib';
221+
QUERY PLAN
222+
--------------------------------------------------------------------
223+
Append
224+
-> Seq Scan on improved_dummy
225+
Filter: ((id = 101) OR ((id = 5) AND (name = 'ib'::text)))
226+
-> Seq Scan on improved_dummy_1
227+
Filter: ((id = 5) AND (name = 'ib'::text))
228+
-> Seq Scan on improved_dummy_11
229+
Filter: (id = 101)
230+
(7 rows)
231+
232+
SELECT pathman.set_enable_parent('test.improved_dummy', false); /* disable parent */
233+
set_enable_parent
234+
-------------------
235+
236+
(1 row)
237+
238+
ALTER TABLE test.improved_dummy_1 ADD CHECK (name != 'ib'); /* make test.improved_dummy_1 disappear */
239+
EXPLAIN (COSTS OFF) SELECT * FROM test.improved_dummy WHERE id = 101 OR id = 5 AND name = 'ib';
240+
QUERY PLAN
241+
-------------------------------------
242+
Append
243+
-> Seq Scan on improved_dummy_11
244+
Filter: (id = 101)
245+
(3 rows)
246+
247+
SELECT pathman.set_enable_parent('test.improved_dummy', true); /* enable parent */
248+
set_enable_parent
249+
-------------------
250+
251+
(1 row)
252+
253+
EXPLAIN (COSTS OFF) SELECT * FROM test.improved_dummy WHERE id = 101 OR id = 5 AND name = 'ib';
254+
QUERY PLAN
255+
--------------------------------------------------------------------
256+
Append
257+
-> Seq Scan on improved_dummy
258+
Filter: ((id = 101) OR ((id = 5) AND (name = 'ib'::text)))
259+
-> Seq Scan on improved_dummy_11
260+
Filter: (id = 101)
261+
(5 rows)
262+
263+
DROP TABLE test.improved_dummy CASCADE;
264+
NOTICE: drop cascades to 11 other objects
193265
/* test special case: ONLY statement with not-ONLY for partitioned table */
194266
CREATE TABLE test.from_only_test(val INT NOT NULL);
195267
INSERT INTO test.from_only_test SELECT generate_series(1, 20);
@@ -1837,6 +1909,6 @@ EXPLAIN (COSTS OFF) SELECT * FROM test.index_on_childs WHERE c1 > 100 AND c1 < 2
18371909
(12 rows)
18381910

18391911
DROP SCHEMA test CASCADE;
1840-
NOTICE: drop cascades to46 other objects
1912+
NOTICE: drop cascades to47 other objects
18411913
DROP EXTENSION pg_pathman CASCADE;
18421914
DROP SCHEMA pathman CASCADE;

‎sql/pathman_basic.sql

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,27 @@ INSERT INTO test.num_range_rel
5757
SELECTCOUNT(*)FROMtest.num_range_rel;
5858
SELECTCOUNT(*)FROM ONLYtest.num_range_rel;
5959

60+
61+
/* since rel_1_2_beta: check append_child_relation(), make_ands_explicit(), dummy path*/
62+
CREATETABLEtest.improved_dummy (idBIGSERIAL, nameTEXTNOT NULL);
63+
INSERT INTOtest.improved_dummy (name)SELECT md5(g::TEXT)FROM generate_series(1,100)as g;
64+
SELECTpathman.create_range_partitions('test.improved_dummy','id',1,10);
65+
INSERT INTOtest.improved_dummy (name)VALUES ('test');/* spawns new partition*/
66+
67+
EXPLAIN (COSTS OFF)SELECT*FROMtest.improved_dummyWHERE id=101OR id=5AND name='ib';
68+
SELECTpathman.set_enable_parent('test.improved_dummy', true);/* enable parent*/
69+
EXPLAIN (COSTS OFF)SELECT*FROMtest.improved_dummyWHERE id=101OR id=5AND name='ib';
70+
SELECTpathman.set_enable_parent('test.improved_dummy', false);/* disable parent*/
71+
72+
ALTERTABLEtest.improved_dummy_1 ADDCHECK (name!='ib');/* make test.improved_dummy_1 disappear*/
73+
74+
EXPLAIN (COSTS OFF)SELECT*FROMtest.improved_dummyWHERE id=101OR id=5AND name='ib';
75+
SELECTpathman.set_enable_parent('test.improved_dummy', true);/* enable parent*/
76+
EXPLAIN (COSTS OFF)SELECT*FROMtest.improved_dummyWHERE id=101OR id=5AND name='ib';
77+
78+
DROPTABLEtest.improved_dummy CASCADE;
79+
80+
6081
/* test special case: ONLY statement with not-ONLY for partitioned table*/
6182
CREATETABLEtest.from_only_test(valINTNOT NULL);
6283
INSERT INTOtest.from_only_testSELECT generate_series(1,20);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp