|
58 | 58 | return 'ok';
|
59 | 59 | end;
|
60 | 60 | $$ language plpgsql
|
61 | | -set pg_pathman.enable = true |
62 | 61 | set enable_mergejoin = off
|
63 | 62 | set enable_hashjoin = off;
|
64 | 63 | create or replace function test.pathman_test_2() returns text as $$
|
|
100 | 99 | return 'ok';
|
101 | 100 | end;
|
102 | 101 | $$ language plpgsql
|
103 | | -set pg_pathman.enable = true |
104 | 102 | set enable_mergejoin = off
|
105 | 103 | set enable_hashjoin = off;
|
106 | 104 | create or replace function test.pathman_test_3() returns text as $$
|
@@ -133,7 +131,6 @@ begin
|
133 | 131 | return 'ok';
|
134 | 132 | end;
|
135 | 133 | $$ language plpgsql
|
136 | | -set pg_pathman.enable = true |
137 | 134 | set enable_mergejoin = off
|
138 | 135 | set enable_hashjoin = off;
|
139 | 136 | create or replace function test.pathman_test_4() returns text as $$
|
@@ -172,7 +169,6 @@ begin
|
172 | 169 | return 'ok';
|
173 | 170 | end;
|
174 | 171 | $$ language plpgsql
|
175 | | -set pg_pathman.enable = true |
176 | 172 | set enable_mergejoin = off
|
177 | 173 | set enable_hashjoin = off;
|
178 | 174 | create or replace function test.pathman_test_5() returns text as $$
|
@@ -233,7 +229,6 @@ begin
|
233 | 229 | return 'ok';
|
234 | 230 | end;
|
235 | 231 | $$ language plpgsql
|
236 | | -set pg_pathman.enable = true |
237 | 232 | set enable_hashjoin = off
|
238 | 233 | set enable_mergejoin = off;
|
239 | 234 | create table test.run_values as select generate_series(1, 10000) val;
|
@@ -464,5 +459,41 @@ DROP FUNCTION test.pathman_test_3();
|
464 | 459 | DROP FUNCTION test.pathman_test_4();
|
465 | 460 | DROP FUNCTION test.pathman_test_5();
|
466 | 461 | DROP SCHEMA test;
|
| 462 | +-- |
| 463 | +-- |
| 464 | +-- PGPRO-7928 |
| 465 | +-- Variable pg_pathman.enable must be called before any query. |
| 466 | +-- |
| 467 | +CREATE TABLE part_test (val int NOT NULL); |
| 468 | +SELECT create_hash_partitions('part_test', 'val', 2, partition_names := array['part_test_1','pg_pathman']); |
| 469 | +ERROR: function create_hash_partitions(unknown, unknown, integer, partition_names => text[]) does not exist at character 8 |
| 470 | +CREATE OR REPLACE FUNCTION part_test_trigger() RETURNS TRIGGER AS $$ |
| 471 | +BEGIN |
| 472 | + RAISE NOTICE '%', format('%s %s %s (%s)', TG_WHEN, TG_OP, TG_LEVEL, TG_TABLE_NAME); |
| 473 | + IF TG_OP::text = 'DELETE'::text then |
| 474 | + SET pg_pathman.enable = f; |
| 475 | + RETURN new; |
| 476 | + END IF; |
| 477 | +END; |
| 478 | +$$ LANGUAGE PLPGSQL; |
| 479 | +SET pg_pathman.enable_partitionrouter = t; |
| 480 | +CREATE TRIGGER ad AFTER DELETE ON part_test_1 FOR EACH ROW EXECUTE PROCEDURE part_test_trigger (); |
| 481 | +ERROR: relation "part_test_1" does not exist |
| 482 | +INSERT INTO part_test VALUES (1); |
| 483 | +UPDATE part_test SET val = val + 1 RETURNING *, tableoid::regclass; |
| 484 | + val | tableoid |
| 485 | +-----+----------- |
| 486 | + 2 | part_test |
| 487 | +(1 row) |
| 488 | + |
| 489 | +UPDATE part_test SET val = val + 1 RETURNING *, tableoid::regclass; |
| 490 | + val | tableoid |
| 491 | +-----+----------- |
| 492 | + 3 | part_test |
| 493 | +(1 row) |
| 494 | + |
| 495 | +RESET pg_pathman.enable_partitionrouter; |
| 496 | +DROP TABLE part_test CASCADE; |
| 497 | +DROP FUNCTION part_test_trigger(); |
467 | 498 | DROP EXTENSION pg_pathman CASCADE;
|
468 | 499 | DROP SCHEMA pathman;
|
0 commit comments