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

Commitf0c81f5

Browse files
authored
Merge pull request#266 from postgrespro/PGPRO-7870
PGPRO 7870
2 parents92f0734 +47acbe6 commitf0c81f5

13 files changed

+512
-22
lines changed

‎expected/pathman_cache_pranks.out

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,5 +76,155 @@ ERROR: can't partition table "part_test" with existing children
7676
DROP TABLE part_test CASCADE;
7777
NOTICE: drop cascades to 302 other objects
7878
--
79+
--
80+
-- PGPRO-7870
81+
-- Added error for case executing prepared query after DROP/CREATE EXTENSION.
82+
--
83+
-- DROP/CREATE extension
84+
CREATE TABLE part_test(a INT4 NOT NULL, b INT4);
85+
PREPARE q(int4) AS SELECT * FROM part_test WHERE a > ALL (array[$1, 898]);
86+
SELECT create_range_partitions('part_test', 'a', 1, 100, 10);
87+
create_range_partitions
88+
-------------------------
89+
10
90+
(1 row)
91+
92+
EXECUTE q(1);
93+
a | b
94+
---+---
95+
(0 rows)
96+
97+
EXECUTE q(1);
98+
a | b
99+
---+---
100+
(0 rows)
101+
102+
EXECUTE q(1);
103+
a | b
104+
---+---
105+
(0 rows)
106+
107+
EXECUTE q(1);
108+
a | b
109+
---+---
110+
(0 rows)
111+
112+
EXECUTE q(1);
113+
a | b
114+
---+---
115+
(0 rows)
116+
117+
EXECUTE q(1);
118+
a | b
119+
---+---
120+
(0 rows)
121+
122+
DROP EXTENSION pg_pathman;
123+
CREATE EXTENSION pg_pathman;
124+
EXECUTE q(1);
125+
ERROR: table "part_test" is not partitioned
126+
DEALLOCATE q;
127+
DROP TABLE part_test CASCADE;
128+
NOTICE: drop cascades to 11 other objects
129+
-- DROP/CREATE disabled extension
130+
CREATE TABLE part_test(a INT4 NOT NULL, b INT4);
131+
PREPARE q(int4) AS SELECT * FROM part_test WHERE a > ALL (array[$1, 898]);
132+
SELECT create_range_partitions('part_test', 'a', 1, 100, 10);
133+
create_range_partitions
134+
-------------------------
135+
10
136+
(1 row)
137+
138+
EXECUTE q(1);
139+
a | b
140+
---+---
141+
(0 rows)
142+
143+
EXECUTE q(1);
144+
a | b
145+
---+---
146+
(0 rows)
147+
148+
EXECUTE q(1);
149+
a | b
150+
---+---
151+
(0 rows)
152+
153+
EXECUTE q(1);
154+
a | b
155+
---+---
156+
(0 rows)
157+
158+
EXECUTE q(1);
159+
a | b
160+
---+---
161+
(0 rows)
162+
163+
EXECUTE q(1);
164+
a | b
165+
---+---
166+
(0 rows)
167+
168+
SET pg_pathman.enable = f;
169+
NOTICE: RuntimeAppend, RuntimeMergeAppend and PartitionFilter nodes and some other options have been disabled
170+
DROP EXTENSION pg_pathman;
171+
CREATE EXTENSION pg_pathman;
172+
SET pg_pathman.enable = t;
173+
NOTICE: RuntimeAppend, RuntimeMergeAppend and PartitionFilter nodes and some other options have been enabled
174+
EXECUTE q(1);
175+
ERROR: table "part_test" is not partitioned
176+
DEALLOCATE q;
177+
DROP TABLE part_test CASCADE;
178+
NOTICE: drop cascades to 11 other objects
179+
-- DROP/CREATE extension in autonomous transaction
180+
CREATE TABLE part_test(a INT4 NOT NULL, b INT4);
181+
PREPARE q(int4) AS SELECT * FROM part_test WHERE a > ALL (array[$1, 198]);
182+
SELECT create_range_partitions('part_test', 'a', 1, 100, 2);
183+
create_range_partitions
184+
-------------------------
185+
2
186+
(1 row)
187+
188+
EXECUTE q(1);
189+
a | b
190+
---+---
191+
(0 rows)
192+
193+
EXECUTE q(1);
194+
a | b
195+
---+---
196+
(0 rows)
197+
198+
EXECUTE q(1);
199+
a | b
200+
---+---
201+
(0 rows)
202+
203+
EXECUTE q(1);
204+
a | b
205+
---+---
206+
(0 rows)
207+
208+
EXECUTE q(1);
209+
a | b
210+
---+---
211+
(0 rows)
212+
213+
EXECUTE q(1);
214+
a | b
215+
---+---
216+
(0 rows)
217+
218+
BEGIN;
219+
BEGIN AUTONOMOUS;
220+
DROP EXTENSION pg_pathman;
221+
CREATE EXTENSION pg_pathman;
222+
COMMIT;
223+
COMMIT;
224+
EXECUTE q(1);
225+
ERROR: table "part_test" is not partitioned
226+
DEALLOCATE q;
227+
DROP TABLE part_test CASCADE;
228+
NOTICE: drop cascades to 3 other objects
79229
-- finalize
80230
DROP EXTENSION pg_pathman;

‎expected/pathman_cache_pranks_1.out

Lines changed: 237 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,237 @@
1+
\set VERBOSITY terse
2+
-- is pathman (caches, in particular) strong enough to carry out this?
3+
SET search_path = 'public';
4+
-- make sure nothing breaks on disable/enable when nothing was initialized yet
5+
SET pg_pathman.enable = false;
6+
NOTICE: RuntimeAppend, RuntimeMergeAppend and PartitionFilter nodes and some other options have been disabled
7+
SET pg_pathman.enable = true;
8+
NOTICE: RuntimeAppend, RuntimeMergeAppend and PartitionFilter nodes and some other options have been enabled
9+
-- wobble with create-drop ext: tests cached relids sanity
10+
CREATE EXTENSION pg_pathman;
11+
SET pg_pathman.enable = f;
12+
NOTICE: RuntimeAppend, RuntimeMergeAppend and PartitionFilter nodes and some other options have been disabled
13+
DROP EXTENSION pg_pathman;
14+
CREATE EXTENSION pg_pathman;
15+
SET pg_pathman.enable = true;
16+
NOTICE: RuntimeAppend, RuntimeMergeAppend and PartitionFilter nodes and some other options have been enabled
17+
DROP EXTENSION pg_pathman;
18+
CREATE EXTENSION pg_pathman;
19+
DROP EXTENSION pg_pathman;
20+
-- create it for further tests
21+
CREATE EXTENSION pg_pathman;
22+
-- 079797e0d5
23+
CREATE TABLE part_test(val serial);
24+
INSERT INTO part_test SELECT generate_series(1, 30);
25+
SELECT create_range_partitions('part_test', 'val', 1, 10);
26+
create_range_partitions
27+
-------------------------
28+
3
29+
(1 row)
30+
31+
SELECT set_interval('part_test', 100);
32+
set_interval
33+
--------------
34+
35+
(1 row)
36+
37+
DELETE FROM pathman_config WHERE partrel = 'part_test'::REGCLASS;
38+
SELECT drop_partitions('part_test');
39+
ERROR: table "part_test" has no partitions
40+
SELECT disable_pathman_for('part_test');
41+
disable_pathman_for
42+
---------------------
43+
44+
(1 row)
45+
46+
CREATE TABLE wrong_partition (LIKE part_test) INHERITS (part_test);
47+
NOTICE: merging column "val" with inherited definition
48+
SELECT add_to_pathman_config('part_test', 'val', '10');
49+
ERROR: constraint "pathman_wrong_partition_check" of partition "wrong_partition" does not exist
50+
SELECT add_to_pathman_config('part_test', 'val');
51+
ERROR: wrong constraint format for HASH partition "part_test_1"
52+
DROP TABLE part_test CASCADE;
53+
NOTICE: drop cascades to 5 other objects
54+
--
55+
-- 85fc5ccf121
56+
CREATE TABLE part_test(val serial);
57+
INSERT INTO part_test SELECT generate_series(1, 3000);
58+
SELECT create_range_partitions('part_test', 'val', 1, 10);
59+
create_range_partitions
60+
-------------------------
61+
300
62+
(1 row)
63+
64+
SELECT append_range_partition('part_test');
65+
append_range_partition
66+
------------------------
67+
part_test_301
68+
(1 row)
69+
70+
DELETE FROM part_test;
71+
SELECT create_single_range_partition('part_test', NULL::INT4, NULL);/* not ok */
72+
ERROR: cannot create partition with range (-inf, +inf)
73+
DELETE FROM pathman_config WHERE partrel = 'part_test'::REGCLASS;
74+
SELECT create_hash_partitions('part_test', 'val', 2, partition_names := ARRAY[]::TEXT[]); /* not ok */
75+
ERROR: can't partition table "part_test" with existing children
76+
DROP TABLE part_test CASCADE;
77+
NOTICE: drop cascades to 302 other objects
78+
--
79+
--
80+
-- PGPRO-7870
81+
-- Added error for case executing prepared query after DROP/CREATE EXTENSION.
82+
--
83+
-- DROP/CREATE extension
84+
CREATE TABLE part_test(a INT4 NOT NULL, b INT4);
85+
PREPARE q(int4) AS SELECT * FROM part_test WHERE a > ALL (array[$1, 898]);
86+
SELECT create_range_partitions('part_test', 'a', 1, 100, 10);
87+
create_range_partitions
88+
-------------------------
89+
10
90+
(1 row)
91+
92+
EXECUTE q(1);
93+
a | b
94+
---+---
95+
(0 rows)
96+
97+
EXECUTE q(1);
98+
a | b
99+
---+---
100+
(0 rows)
101+
102+
EXECUTE q(1);
103+
a | b
104+
---+---
105+
(0 rows)
106+
107+
EXECUTE q(1);
108+
a | b
109+
---+---
110+
(0 rows)
111+
112+
EXECUTE q(1);
113+
a | b
114+
---+---
115+
(0 rows)
116+
117+
EXECUTE q(1);
118+
a | b
119+
---+---
120+
(0 rows)
121+
122+
DROP EXTENSION pg_pathman;
123+
CREATE EXTENSION pg_pathman;
124+
EXECUTE q(1);
125+
ERROR: table "part_test" is not partitioned
126+
DEALLOCATE q;
127+
DROP TABLE part_test CASCADE;
128+
NOTICE: drop cascades to 11 other objects
129+
-- DROP/CREATE disabled extension
130+
CREATE TABLE part_test(a INT4 NOT NULL, b INT4);
131+
PREPARE q(int4) AS SELECT * FROM part_test WHERE a > ALL (array[$1, 898]);
132+
SELECT create_range_partitions('part_test', 'a', 1, 100, 10);
133+
create_range_partitions
134+
-------------------------
135+
10
136+
(1 row)
137+
138+
EXECUTE q(1);
139+
a | b
140+
---+---
141+
(0 rows)
142+
143+
EXECUTE q(1);
144+
a | b
145+
---+---
146+
(0 rows)
147+
148+
EXECUTE q(1);
149+
a | b
150+
---+---
151+
(0 rows)
152+
153+
EXECUTE q(1);
154+
a | b
155+
---+---
156+
(0 rows)
157+
158+
EXECUTE q(1);
159+
a | b
160+
---+---
161+
(0 rows)
162+
163+
EXECUTE q(1);
164+
a | b
165+
---+---
166+
(0 rows)
167+
168+
SET pg_pathman.enable = f;
169+
NOTICE: RuntimeAppend, RuntimeMergeAppend and PartitionFilter nodes and some other options have been disabled
170+
DROP EXTENSION pg_pathman;
171+
CREATE EXTENSION pg_pathman;
172+
SET pg_pathman.enable = t;
173+
NOTICE: RuntimeAppend, RuntimeMergeAppend and PartitionFilter nodes and some other options have been enabled
174+
EXECUTE q(1);
175+
ERROR: table "part_test" is not partitioned
176+
DEALLOCATE q;
177+
DROP TABLE part_test CASCADE;
178+
NOTICE: drop cascades to 11 other objects
179+
-- DROP/CREATE extension in autonomous transaction
180+
CREATE TABLE part_test(a INT4 NOT NULL, b INT4);
181+
PREPARE q(int4) AS SELECT * FROM part_test WHERE a > ALL (array[$1, 198]);
182+
SELECT create_range_partitions('part_test', 'a', 1, 100, 2);
183+
create_range_partitions
184+
-------------------------
185+
2
186+
(1 row)
187+
188+
EXECUTE q(1);
189+
a | b
190+
---+---
191+
(0 rows)
192+
193+
EXECUTE q(1);
194+
a | b
195+
---+---
196+
(0 rows)
197+
198+
EXECUTE q(1);
199+
a | b
200+
---+---
201+
(0 rows)
202+
203+
EXECUTE q(1);
204+
a | b
205+
---+---
206+
(0 rows)
207+
208+
EXECUTE q(1);
209+
a | b
210+
---+---
211+
(0 rows)
212+
213+
EXECUTE q(1);
214+
a | b
215+
---+---
216+
(0 rows)
217+
218+
BEGIN;
219+
BEGIN AUTONOMOUS;
220+
ERROR: syntax error at or near "AUTONOMOUS" at character 7
221+
DROP EXTENSION pg_pathman;
222+
ERROR: current transaction is aborted, commands ignored until end of transaction block
223+
CREATE EXTENSION pg_pathman;
224+
ERROR: current transaction is aborted, commands ignored until end of transaction block
225+
COMMIT;
226+
COMMIT;
227+
WARNING: there is no transaction in progress
228+
EXECUTE q(1);
229+
a | b
230+
---+---
231+
(0 rows)
232+
233+
DEALLOCATE q;
234+
DROP TABLE part_test CASCADE;
235+
NOTICE: drop cascades to 3 other objects
236+
-- finalize
237+
DROP EXTENSION pg_pathman;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp