Ignore AFTER triggers sorting after z_repack_trigger
They are not a problem, and they fore after the BEFORE trigger anyway. To be checked against more PostgreSQL versions.
This commit is contained in:
parent
14c4d4653e
commit
a2138b6d7d
@ -326,3 +326,29 @@ INFO: repacking table "tbl_pk_uk"
|
|||||||
\! pg_repack --dbname=contrib_regression --table=tbl_nn_puk
|
\! pg_repack --dbname=contrib_regression --table=tbl_nn_puk
|
||||||
WARNING: relation "tbl_nn_puk" must have a primary key or not-null unique keys
|
WARNING: relation "tbl_nn_puk" must have a primary key or not-null unique keys
|
||||||
-- => WARNING
|
-- => WARNING
|
||||||
|
--
|
||||||
|
-- Triggers handling
|
||||||
|
--
|
||||||
|
CREATE FUNCTION trgtest() RETURNS trigger AS
|
||||||
|
$$BEGIN RETURN NEW; END$$
|
||||||
|
LANGUAGE plpgsql;
|
||||||
|
CREATE TABLE trg1 (id integer PRIMARY KEY);
|
||||||
|
CREATE TRIGGER z_repack_triggeq BEFORE UPDATE ON trg1 FOR EACH ROW EXECUTE PROCEDURE trgtest();
|
||||||
|
\! pg_repack --dbname=contrib_regression --table=trg1
|
||||||
|
INFO: repacking table "trg1"
|
||||||
|
CREATE TABLE trg2 (id integer PRIMARY KEY);
|
||||||
|
CREATE TRIGGER z_repack_trigger BEFORE UPDATE ON trg2 FOR EACH ROW EXECUTE PROCEDURE trgtest();
|
||||||
|
\! pg_repack --dbname=contrib_regression --table=trg2
|
||||||
|
INFO: repacking table "trg2"
|
||||||
|
WARNING: the table "trg2" has already a trigger called "z_repack_trigger"
|
||||||
|
DETAIL: The trigger was probably installed during a previous attempt to run pg_repack on the table which was interrupted and for some reason failed to clean up the temporary objects. Please drop the trigger or drop and recreate the pg_repack extension altogether to remove all the temporary objects left over.
|
||||||
|
CREATE TABLE trg3 (id integer PRIMARY KEY);
|
||||||
|
CREATE TRIGGER z_repack_trigges BEFORE UPDATE ON trg3 FOR EACH ROW EXECUTE PROCEDURE trgtest();
|
||||||
|
\! pg_repack --dbname=contrib_regression --table=trg3
|
||||||
|
INFO: repacking table "trg3"
|
||||||
|
WARNING: trigger "z_repack_trigges" conflicting on table "trg3"
|
||||||
|
DETAIL: The trigger "z_repack_trigger" must be the last of the BEFORE triggers to fire on the table (triggers fire in alphabetical order). Please rename the trigger so that it sorts before "z_repack_trigger": you can use "ALTER TRIGGER z_repack_trigges ON trg3 RENAME TO newname".
|
||||||
|
CREATE TABLE trg4 (id integer PRIMARY KEY);
|
||||||
|
CREATE TRIGGER zzzzzz AFTER UPDATE ON trg4 FOR EACH ROW EXECUTE PROCEDURE trgtest();
|
||||||
|
\! pg_repack --dbname=contrib_regression --table=trg4
|
||||||
|
INFO: repacking table "trg4"
|
||||||
|
@ -187,3 +187,22 @@ CREATE UNIQUE INDEX tbl_nn_puk_pcol1_idx ON tbl_nn_puk(col1) WHERE col1 < 10;
|
|||||||
-- => OK
|
-- => OK
|
||||||
\! pg_repack --dbname=contrib_regression --table=tbl_nn_puk
|
\! pg_repack --dbname=contrib_regression --table=tbl_nn_puk
|
||||||
-- => WARNING
|
-- => WARNING
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Triggers handling
|
||||||
|
--
|
||||||
|
CREATE FUNCTION trgtest() RETURNS trigger AS
|
||||||
|
$$BEGIN RETURN NEW; END$$
|
||||||
|
LANGUAGE plpgsql;
|
||||||
|
CREATE TABLE trg1 (id integer PRIMARY KEY);
|
||||||
|
CREATE TRIGGER z_repack_triggeq BEFORE UPDATE ON trg1 FOR EACH ROW EXECUTE PROCEDURE trgtest();
|
||||||
|
\! pg_repack --dbname=contrib_regression --table=trg1
|
||||||
|
CREATE TABLE trg2 (id integer PRIMARY KEY);
|
||||||
|
CREATE TRIGGER z_repack_trigger BEFORE UPDATE ON trg2 FOR EACH ROW EXECUTE PROCEDURE trgtest();
|
||||||
|
\! pg_repack --dbname=contrib_regression --table=trg2
|
||||||
|
CREATE TABLE trg3 (id integer PRIMARY KEY);
|
||||||
|
CREATE TRIGGER z_repack_trigges BEFORE UPDATE ON trg3 FOR EACH ROW EXECUTE PROCEDURE trgtest();
|
||||||
|
\! pg_repack --dbname=contrib_regression --table=trg3
|
||||||
|
CREATE TABLE trg4 (id integer PRIMARY KEY);
|
||||||
|
CREATE TRIGGER zzzzzz AFTER UPDATE ON trg4 FOR EACH ROW EXECUTE PROCEDURE trgtest();
|
||||||
|
\! pg_repack --dbname=contrib_regression --table=trg4
|
||||||
|
@ -219,6 +219,7 @@ CREATE FUNCTION repack.conflicted_triggers(oid) RETURNS SETOF name AS
|
|||||||
$$
|
$$
|
||||||
SELECT tgname FROM pg_trigger
|
SELECT tgname FROM pg_trigger
|
||||||
WHERE tgrelid = $1 AND tgname >= 'z_repack_trigger'
|
WHERE tgrelid = $1 AND tgname >= 'z_repack_trigger'
|
||||||
|
AND (tgtype & 2) = 2 -- BEFORE trigger
|
||||||
ORDER BY tgname;
|
ORDER BY tgname;
|
||||||
$$
|
$$
|
||||||
LANGUAGE sql STABLE STRICT;
|
LANGUAGE sql STABLE STRICT;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user