diff --git a/doc/src/sgml/mvcc.sgml b/doc/src/sgml/mvcc.sgml index e43a3be6d4e..958adc32bd3 100644 --- a/doc/src/sgml/mvcc.sgml +++ b/doc/src/sgml/mvcc.sgml @@ -909,9 +909,9 @@ ERROR: could not serialize access due to read/write dependencies among transact - This lock mode is not automatically acquired by any - PostgreSQL command. - + Acquired by CREATE TRIGGER and many forms of + ALTER TABLE (see ). + > @@ -958,9 +958,9 @@ ERROR: could not serialize access due to read/write dependencies among transact TRUNCATE, REINDEX, CLUSTER, and VACUUM FULL commands. Many forms of ALTER TABLE also acquire - a lock at this level (see ). - This is also the default lock mode for LOCK TABLE - statements that do not specify a mode explicitly. + a lock at this level. This is also the default lock mode for + LOCK TABLE statements that do not specify + a mode explicitly. diff --git a/doc/src/sgml/ref/alter_table.sgml b/doc/src/sgml/ref/alter_table.sgml index 19baf2961a4..6a82730a4b4 100644 --- a/doc/src/sgml/ref/alter_table.sgml +++ b/doc/src/sgml/ref/alter_table.sgml @@ -406,6 +406,9 @@ ALTER TABLE ALL IN TABLESPACE name mode, and triggers configured as ENABLE ALWAYS will fire regardless of the current replication mode. + + This command acquires a SHARE ROW EXCLUSIVE lock. + diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index eecc30f783f..06e4332d2ac 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -2892,13 +2892,8 @@ AlterTableGetLockLevel(List *cmds) break; /* - * These subcommands affect write operations only. XXX - * Theoretically, these could be ShareRowExclusiveLock. + * These subcommands affect write operations only. */ - case AT_ColumnDefault: - case AT_ProcessedConstraint: /* becomes AT_AddConstraint */ - case AT_AddConstraintRecurse: /* becomes AT_AddConstraint */ - case AT_ReAddConstraint: /* becomes AT_AddConstraint */ case AT_EnableTrig: case AT_EnableAlwaysTrig: case AT_EnableReplicaTrig: @@ -2907,6 +2902,14 @@ AlterTableGetLockLevel(List *cmds) case AT_DisableTrig: case AT_DisableTrigAll: case AT_DisableTrigUser: + cmd_lockmode = ShareRowExclusiveLock; + break; + + /* + * These subcommands affect write operations only. XXX + * Theoretically, these could be ShareRowExclusiveLock. + */ + case AT_ColumnDefault: case AT_AlterConstraint: case AT_AddIndex: /* from ADD CONSTRAINT */ case AT_AddIndexConstraint: @@ -2918,6 +2921,9 @@ AlterTableGetLockLevel(List *cmds) break; case AT_AddConstraint: + case AT_ProcessedConstraint: /* becomes AT_AddConstraint */ + case AT_AddConstraintRecurse: /* becomes AT_AddConstraint */ + case AT_ReAddConstraint: /* becomes AT_AddConstraint */ if (IsA(cmd->def, Constraint)) { Constraint *con = (Constraint *) cmd->def; @@ -2943,11 +2949,9 @@ AlterTableGetLockLevel(List *cmds) /* * We add triggers to both tables when we add a * Foreign Key, so the lock level must be at least - * as strong as CREATE TRIGGER. XXX Might be set - * down to ShareRowExclusiveLock though trigger - * info is accessed by pg_get_triggerdef + * as strong as CREATE TRIGGER. */ - cmd_lockmode = AccessExclusiveLock; + cmd_lockmode = ShareRowExclusiveLock; break; default: @@ -6193,16 +6197,13 @@ ATAddForeignKeyConstraint(AlteredTableInfo *tab, Relation rel, ListCell *old_pfeqop_item = list_head(fkconstraint->old_conpfeqop); /* - * Grab an exclusive lock on the pk table, so that someone doesn't delete - * rows out from under us. (Although a lesser lock would do for that - * purpose, we'll need exclusive lock anyway to add triggers to the pk - * table; trying to start with a lesser lock will just create a risk of - * deadlock.) + * Grab ShareRowExclusiveLock on the pk table, so that someone doesn't + * delete rows out from under us. */ if (OidIsValid(fkconstraint->old_pktable_oid)) - pkrel = heap_open(fkconstraint->old_pktable_oid, AccessExclusiveLock); + pkrel = heap_open(fkconstraint->old_pktable_oid, ShareRowExclusiveLock); else - pkrel = heap_openrv(fkconstraint->pktable, AccessExclusiveLock); + pkrel = heap_openrv(fkconstraint->pktable, ShareRowExclusiveLock); /* * Validity checks (permission checks wait till we have the column diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index e491c5ba772..098893f4944 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -165,9 +165,9 @@ CreateTrigger(CreateTrigStmt *stmt, const char *queryString, referenced; if (OidIsValid(relOid)) - rel = heap_open(relOid, AccessExclusiveLock); + rel = heap_open(relOid, ShareRowExclusiveLock); else - rel = heap_openrv(stmt->relation, AccessExclusiveLock); + rel = heap_openrv(stmt->relation, ShareRowExclusiveLock); /* * Triggers must be on tables or views, and there are additional diff --git a/src/test/isolation/expected/alter-table-1.out b/src/test/isolation/expected/alter-table-1.out index edf7288364c..9daa4186489 100644 --- a/src/test/isolation/expected/alter-table-1.out +++ b/src/test/isolation/expected/alter-table-1.out @@ -703,12 +703,11 @@ step sc2: COMMIT; starting permutation: s1 at1 rx1 sc1 s2 at2 sc2 wx rx1 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -step sc1: COMMIT; -step rx1: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 +step sc1: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step sc2: COMMIT; @@ -724,12 +723,11 @@ step c2: COMMIT; starting permutation: s1 at1 rx1 sc1 s2 at2 wx sc2 rx1 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -step sc1: COMMIT; -step rx1: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 +step sc1: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step wx: INSERT INTO b VALUES (0); @@ -745,12 +743,11 @@ step c2: COMMIT; starting permutation: s1 at1 rx1 sc1 s2 at2 wx rx1 sc2 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -step sc1: COMMIT; -step rx1: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 +step sc1: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step wx: INSERT INTO b VALUES (0); @@ -766,12 +763,11 @@ step c2: COMMIT; starting permutation: s1 at1 rx1 sc1 s2 at2 wx rx1 c2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -step sc1: COMMIT; -step rx1: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 +step sc1: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; step wx: INSERT INTO b VALUES (0); @@ -787,12 +783,11 @@ step sc2: COMMIT; starting permutation: s1 at1 rx1 sc1 s2 wx at2 sc2 rx1 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -step sc1: COMMIT; -step rx1: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 +step sc1: COMMIT; step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; @@ -808,12 +803,11 @@ step c2: COMMIT; starting permutation: s1 at1 rx1 sc1 s2 wx at2 rx1 sc2 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -step sc1: COMMIT; -step rx1: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 +step sc1: COMMIT; step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; @@ -829,12 +823,11 @@ step c2: COMMIT; starting permutation: s1 at1 rx1 sc1 s2 wx at2 rx1 c2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -step sc1: COMMIT; -step rx1: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 +step sc1: COMMIT; step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; @@ -850,12 +843,11 @@ step sc2: COMMIT; starting permutation: s1 at1 rx1 sc1 s2 wx rx1 at2 sc2 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -step sc1: COMMIT; -step rx1: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 +step sc1: COMMIT; step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; @@ -871,12 +863,11 @@ step c2: COMMIT; starting permutation: s1 at1 rx1 sc1 s2 wx rx1 at2 c2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -step sc1: COMMIT; -step rx1: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 +step sc1: COMMIT; step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; @@ -892,12 +883,11 @@ step sc2: COMMIT; starting permutation: s1 at1 rx1 sc1 s2 wx rx1 c2 at2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -step sc1: COMMIT; -step rx1: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 +step sc1: COMMIT; step s2: BEGIN; step wx: INSERT INTO b VALUES (0); step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; @@ -913,12 +903,11 @@ step sc2: COMMIT; starting permutation: s1 at1 rx1 sc1 wx s2 at2 sc2 rx1 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -step sc1: COMMIT; -step rx1: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 +step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; @@ -934,12 +923,11 @@ step c2: COMMIT; starting permutation: s1 at1 rx1 sc1 wx s2 at2 rx1 sc2 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -step sc1: COMMIT; -step rx1: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 +step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; @@ -955,12 +943,11 @@ step c2: COMMIT; starting permutation: s1 at1 rx1 sc1 wx s2 at2 rx1 c2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -step sc1: COMMIT; -step rx1: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 +step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; @@ -976,12 +963,11 @@ step sc2: COMMIT; starting permutation: s1 at1 rx1 sc1 wx s2 rx1 at2 sc2 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -step sc1: COMMIT; -step rx1: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 +step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; @@ -997,12 +983,11 @@ step c2: COMMIT; starting permutation: s1 at1 rx1 sc1 wx s2 rx1 at2 c2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -step sc1: COMMIT; -step rx1: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 +step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; @@ -1018,12 +1003,11 @@ step sc2: COMMIT; starting permutation: s1 at1 rx1 sc1 wx s2 rx1 c2 at2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -step sc1: COMMIT; -step rx1: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 +step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step s2: BEGIN; step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; @@ -1039,12 +1023,11 @@ step sc2: COMMIT; starting permutation: s1 at1 rx1 sc1 wx rx1 s2 at2 sc2 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -step sc1: COMMIT; -step rx1: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 +step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; a_id @@ -1060,12 +1043,11 @@ step c2: COMMIT; starting permutation: s1 at1 rx1 sc1 wx rx1 s2 at2 c2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -step sc1: COMMIT; -step rx1: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 +step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; a_id @@ -1081,12 +1063,11 @@ step sc2: COMMIT; starting permutation: s1 at1 rx1 sc1 wx rx1 s2 c2 at2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -step sc1: COMMIT; -step rx1: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 +step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; a_id @@ -1102,12 +1083,11 @@ step sc2: COMMIT; starting permutation: s1 at1 rx1 sc1 wx rx1 c2 s2 at2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -step sc1: COMMIT; -step rx1: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 +step sc1: COMMIT; step wx: INSERT INTO b VALUES (0); step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; a_id @@ -1123,91 +1103,261 @@ step sc2: COMMIT; starting permutation: s1 at1 rx1 wx sc1 s2 at2 sc2 rx1 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -invalid permutation detected +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; starting permutation: s1 at1 rx1 wx sc1 s2 at2 rx1 sc2 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -invalid permutation detected +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step sc2: COMMIT; +step c2: COMMIT; starting permutation: s1 at1 rx1 wx sc1 s2 at2 rx1 c2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -invalid permutation detected +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step sc2: COMMIT; starting permutation: s1 at1 rx1 wx sc1 s2 rx1 at2 sc2 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -invalid permutation detected +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step s2: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; +step c2: COMMIT; starting permutation: s1 at1 rx1 wx sc1 s2 rx1 at2 c2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -invalid permutation detected +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step s2: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step c2: COMMIT; +step sc2: COMMIT; starting permutation: s1 at1 rx1 wx sc1 s2 rx1 c2 at2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -invalid permutation detected +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step s2: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; starting permutation: s1 at1 rx1 wx sc1 rx1 s2 at2 sc2 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -invalid permutation detected +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; +step c2: COMMIT; starting permutation: s1 at1 rx1 wx sc1 rx1 s2 at2 c2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -invalid permutation detected +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step c2: COMMIT; +step sc2: COMMIT; starting permutation: s1 at1 rx1 wx sc1 rx1 s2 c2 at2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -invalid permutation detected +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step s2: BEGIN; +step c2: COMMIT; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; starting permutation: s1 at1 rx1 wx sc1 rx1 c2 s2 at2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -invalid permutation detected +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; starting permutation: s1 at1 rx1 wx rx1 sc1 s2 at2 sc2 c2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step wx: INSERT INTO b VALUES (0); invalid permutation detected starting permutation: s1 at1 rx1 wx rx1 sc1 s2 at2 c2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step wx: INSERT INTO b VALUES (0); invalid permutation detected starting permutation: s1 at1 rx1 wx rx1 sc1 s2 c2 at2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step wx: INSERT INTO b VALUES (0); invalid permutation detected starting permutation: s1 at1 rx1 wx rx1 sc1 c2 s2 at2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step wx: INSERT INTO b VALUES (0); invalid permutation detected starting permutation: s1 at1 rx1 wx rx1 c2 sc1 s2 at2 sc2 step s1: BEGIN; step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step wx: INSERT INTO b VALUES (0); invalid permutation detected starting permutation: s1 rx1 at1 sc1 s2 at2 sc2 wx rx1 c2 @@ -1216,351 +1366,11 @@ step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; a_id 1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: s1 rx1 at1 sc1 s2 at2 wx sc2 rx1 c2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: s1 rx1 at1 sc1 s2 at2 wx rx1 sc2 c2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: s1 rx1 at1 sc1 s2 at2 wx rx1 c2 sc2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: s1 rx1 at1 sc1 s2 wx at2 sc2 rx1 c2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: s1 rx1 at1 sc1 s2 wx at2 rx1 sc2 c2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: s1 rx1 at1 sc1 s2 wx at2 rx1 c2 sc2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: s1 rx1 at1 sc1 s2 wx rx1 at2 sc2 c2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: s1 rx1 at1 sc1 s2 wx rx1 at2 c2 sc2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: s1 rx1 at1 sc1 s2 wx rx1 c2 at2 sc2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: s1 rx1 at1 sc1 wx s2 at2 sc2 rx1 c2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: s1 rx1 at1 sc1 wx s2 at2 rx1 sc2 c2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: s1 rx1 at1 sc1 wx s2 at2 rx1 c2 sc2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: s1 rx1 at1 sc1 wx s2 rx1 at2 sc2 c2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: s1 rx1 at1 sc1 wx s2 rx1 at2 c2 sc2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: s1 rx1 at1 sc1 wx s2 rx1 c2 at2 sc2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: s1 rx1 at1 sc1 wx rx1 s2 at2 sc2 c2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: s1 rx1 at1 sc1 wx rx1 s2 at2 c2 sc2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: s1 rx1 at1 sc1 wx rx1 s2 c2 at2 sc2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: s1 rx1 at1 sc1 wx rx1 c2 s2 at2 sc2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: s1 rx1 at1 wx sc1 s2 at2 sc2 rx1 c2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -invalid permutation detected - -starting permutation: s1 rx1 at1 wx sc1 s2 at2 rx1 sc2 c2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -invalid permutation detected - -starting permutation: s1 rx1 at1 wx sc1 s2 at2 rx1 c2 sc2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -invalid permutation detected - -starting permutation: s1 rx1 at1 wx sc1 s2 rx1 at2 sc2 c2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -invalid permutation detected - -starting permutation: s1 rx1 at1 wx sc1 s2 rx1 at2 c2 sc2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -invalid permutation detected - -starting permutation: s1 rx1 at1 wx sc1 s2 rx1 c2 at2 sc2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -invalid permutation detected - -starting permutation: s1 rx1 at1 wx sc1 rx1 s2 at2 sc2 c2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -invalid permutation detected - -starting permutation: s1 rx1 at1 wx sc1 rx1 s2 at2 c2 sc2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -invalid permutation detected - -starting permutation: s1 rx1 at1 wx sc1 rx1 s2 c2 at2 sc2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -invalid permutation detected - -starting permutation: s1 rx1 at1 wx sc1 rx1 c2 s2 at2 sc2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -invalid permutation detected - -starting permutation: s1 rx1 at1 wx rx1 sc1 s2 at2 sc2 c2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id - -3 -3 -3 -invalid permutation detected - -starting permutation: s1 rx1 at1 wx rx1 sc1 s2 at2 c2 sc2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id - -3 -3 -3 -invalid permutation detected - -starting permutation: s1 rx1 at1 wx rx1 sc1 s2 c2 at2 sc2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id - -3 -3 -3 -invalid permutation detected - -starting permutation: s1 rx1 at1 wx rx1 sc1 c2 s2 at2 sc2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id - -3 -3 -3 -invalid permutation detected - -starting permutation: s1 rx1 at1 wx rx1 c2 sc1 s2 at2 sc2 -step s1: BEGIN; -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; step wx: INSERT INTO b VALUES (0); step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; a_id @@ -1569,11 +1379,646 @@ a_id 3 3 step c2: COMMIT; -step at1: <... completed> + +starting permutation: s1 rx1 at1 sc1 s2 at2 wx sc2 rx1 c2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step wx: INSERT INTO b VALUES (0); step sc2: COMMIT; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; + +starting permutation: s1 rx1 at1 sc1 s2 at2 wx rx1 sc2 c2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step wx: INSERT INTO b VALUES (0); +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step sc2: COMMIT; +step c2: COMMIT; + +starting permutation: s1 rx1 at1 sc1 s2 at2 wx rx1 c2 sc2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step wx: INSERT INTO b VALUES (0); +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step sc2: COMMIT; + +starting permutation: s1 rx1 at1 sc1 s2 wx at2 sc2 rx1 c2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step s2: BEGIN; +step wx: INSERT INTO b VALUES (0); +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; + +starting permutation: s1 rx1 at1 sc1 s2 wx at2 rx1 sc2 c2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step s2: BEGIN; +step wx: INSERT INTO b VALUES (0); +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step sc2: COMMIT; +step c2: COMMIT; + +starting permutation: s1 rx1 at1 sc1 s2 wx at2 rx1 c2 sc2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step s2: BEGIN; +step wx: INSERT INTO b VALUES (0); +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step sc2: COMMIT; + +starting permutation: s1 rx1 at1 sc1 s2 wx rx1 at2 sc2 c2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step s2: BEGIN; +step wx: INSERT INTO b VALUES (0); +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; +step c2: COMMIT; + +starting permutation: s1 rx1 at1 sc1 s2 wx rx1 at2 c2 sc2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step s2: BEGIN; +step wx: INSERT INTO b VALUES (0); +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step c2: COMMIT; +step sc2: COMMIT; + +starting permutation: s1 rx1 at1 sc1 s2 wx rx1 c2 at2 sc2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step s2: BEGIN; +step wx: INSERT INTO b VALUES (0); +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; + +starting permutation: s1 rx1 at1 sc1 wx s2 at2 sc2 rx1 c2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step wx: INSERT INTO b VALUES (0); +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; + +starting permutation: s1 rx1 at1 sc1 wx s2 at2 rx1 sc2 c2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step wx: INSERT INTO b VALUES (0); +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step sc2: COMMIT; +step c2: COMMIT; + +starting permutation: s1 rx1 at1 sc1 wx s2 at2 rx1 c2 sc2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step wx: INSERT INTO b VALUES (0); +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step sc2: COMMIT; + +starting permutation: s1 rx1 at1 sc1 wx s2 rx1 at2 sc2 c2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step wx: INSERT INTO b VALUES (0); +step s2: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; +step c2: COMMIT; + +starting permutation: s1 rx1 at1 sc1 wx s2 rx1 at2 c2 sc2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step wx: INSERT INTO b VALUES (0); +step s2: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step c2: COMMIT; +step sc2: COMMIT; + +starting permutation: s1 rx1 at1 sc1 wx s2 rx1 c2 at2 sc2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step wx: INSERT INTO b VALUES (0); +step s2: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; + +starting permutation: s1 rx1 at1 sc1 wx rx1 s2 at2 sc2 c2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step wx: INSERT INTO b VALUES (0); +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; +step c2: COMMIT; + +starting permutation: s1 rx1 at1 sc1 wx rx1 s2 at2 c2 sc2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step wx: INSERT INTO b VALUES (0); +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step c2: COMMIT; +step sc2: COMMIT; + +starting permutation: s1 rx1 at1 sc1 wx rx1 s2 c2 at2 sc2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step wx: INSERT INTO b VALUES (0); +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step s2: BEGIN; +step c2: COMMIT; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; + +starting permutation: s1 rx1 at1 sc1 wx rx1 c2 s2 at2 sc2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step wx: INSERT INTO b VALUES (0); +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; + +starting permutation: s1 rx1 at1 wx sc1 s2 at2 sc2 rx1 c2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; + +starting permutation: s1 rx1 at1 wx sc1 s2 at2 rx1 sc2 c2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step sc2: COMMIT; +step c2: COMMIT; + +starting permutation: s1 rx1 at1 wx sc1 s2 at2 rx1 c2 sc2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step sc2: COMMIT; + +starting permutation: s1 rx1 at1 wx sc1 s2 rx1 at2 sc2 c2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step s2: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; +step c2: COMMIT; + +starting permutation: s1 rx1 at1 wx sc1 s2 rx1 at2 c2 sc2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step s2: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step c2: COMMIT; +step sc2: COMMIT; + +starting permutation: s1 rx1 at1 wx sc1 s2 rx1 c2 at2 sc2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step s2: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; + +starting permutation: s1 rx1 at1 wx sc1 rx1 s2 at2 sc2 c2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; +step c2: COMMIT; + +starting permutation: s1 rx1 at1 wx sc1 rx1 s2 at2 c2 sc2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step c2: COMMIT; +step sc2: COMMIT; + +starting permutation: s1 rx1 at1 wx sc1 rx1 s2 c2 at2 sc2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step s2: BEGIN; +step c2: COMMIT; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; + +starting permutation: s1 rx1 at1 wx sc1 rx1 c2 s2 at2 sc2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; + +starting permutation: s1 rx1 at1 wx rx1 sc1 s2 at2 sc2 c2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +invalid permutation detected + +starting permutation: s1 rx1 at1 wx rx1 sc1 s2 at2 c2 sc2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +invalid permutation detected + +starting permutation: s1 rx1 at1 wx rx1 sc1 s2 c2 at2 sc2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +invalid permutation detected + +starting permutation: s1 rx1 at1 wx rx1 sc1 c2 s2 at2 sc2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +invalid permutation detected + +starting permutation: s1 rx1 at1 wx rx1 c2 sc1 s2 at2 sc2 +step s1: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +invalid permutation detected starting permutation: s1 rx1 wx at1 sc1 s2 at2 sc2 rx1 c2 step s1: BEGIN; @@ -1871,351 +2316,11 @@ a_id 1 step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: rx1 s1 at1 sc1 s2 at2 wx sc2 rx1 c2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: rx1 s1 at1 sc1 s2 at2 wx rx1 sc2 c2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: rx1 s1 at1 sc1 s2 at2 wx rx1 c2 sc2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: rx1 s1 at1 sc1 s2 wx at2 sc2 rx1 c2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: rx1 s1 at1 sc1 s2 wx at2 rx1 sc2 c2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: rx1 s1 at1 sc1 s2 wx at2 rx1 c2 sc2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: rx1 s1 at1 sc1 s2 wx rx1 at2 sc2 c2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: rx1 s1 at1 sc1 s2 wx rx1 at2 c2 sc2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: rx1 s1 at1 sc1 s2 wx rx1 c2 at2 sc2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: rx1 s1 at1 sc1 wx s2 at2 sc2 rx1 c2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: rx1 s1 at1 sc1 wx s2 at2 rx1 sc2 c2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: rx1 s1 at1 sc1 wx s2 at2 rx1 c2 sc2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: rx1 s1 at1 sc1 wx s2 rx1 at2 sc2 c2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: rx1 s1 at1 sc1 wx s2 rx1 at2 c2 sc2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: rx1 s1 at1 sc1 wx s2 rx1 c2 at2 sc2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: rx1 s1 at1 sc1 wx rx1 s2 at2 sc2 c2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: rx1 s1 at1 sc1 wx rx1 s2 at2 c2 sc2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: rx1 s1 at1 sc1 wx rx1 s2 c2 at2 sc2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: rx1 s1 at1 sc1 wx rx1 c2 s2 at2 sc2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -invalid permutation detected - -starting permutation: rx1 s1 at1 wx sc1 s2 at2 sc2 rx1 c2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -invalid permutation detected - -starting permutation: rx1 s1 at1 wx sc1 s2 at2 rx1 sc2 c2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -invalid permutation detected - -starting permutation: rx1 s1 at1 wx sc1 s2 at2 rx1 c2 sc2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -invalid permutation detected - -starting permutation: rx1 s1 at1 wx sc1 s2 rx1 at2 sc2 c2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -invalid permutation detected - -starting permutation: rx1 s1 at1 wx sc1 s2 rx1 at2 c2 sc2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -invalid permutation detected - -starting permutation: rx1 s1 at1 wx sc1 s2 rx1 c2 at2 sc2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -invalid permutation detected - -starting permutation: rx1 s1 at1 wx sc1 rx1 s2 at2 sc2 c2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -invalid permutation detected - -starting permutation: rx1 s1 at1 wx sc1 rx1 s2 at2 c2 sc2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -invalid permutation detected - -starting permutation: rx1 s1 at1 wx sc1 rx1 s2 c2 at2 sc2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -invalid permutation detected - -starting permutation: rx1 s1 at1 wx sc1 rx1 c2 s2 at2 sc2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -invalid permutation detected - -starting permutation: rx1 s1 at1 wx rx1 sc1 s2 at2 sc2 c2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id - -3 -3 -3 -invalid permutation detected - -starting permutation: rx1 s1 at1 wx rx1 sc1 s2 at2 c2 sc2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id - -3 -3 -3 -invalid permutation detected - -starting permutation: rx1 s1 at1 wx rx1 sc1 s2 c2 at2 sc2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id - -3 -3 -3 -invalid permutation detected - -starting permutation: rx1 s1 at1 wx rx1 sc1 c2 s2 at2 sc2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; -step wx: INSERT INTO b VALUES (0); -step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; -a_id - -3 -3 -3 -invalid permutation detected - -starting permutation: rx1 s1 at1 wx rx1 c2 sc1 s2 at2 sc2 -step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; -a_id - -1 -step s1: BEGIN; -step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; step wx: INSERT INTO b VALUES (0); step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; a_id @@ -2224,11 +2329,646 @@ a_id 3 3 step c2: COMMIT; -step at1: <... completed> + +starting permutation: rx1 s1 at1 sc1 s2 at2 wx sc2 rx1 c2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; step sc1: COMMIT; step s2: BEGIN; step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step wx: INSERT INTO b VALUES (0); step sc2: COMMIT; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; + +starting permutation: rx1 s1 at1 sc1 s2 at2 wx rx1 sc2 c2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step wx: INSERT INTO b VALUES (0); +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step sc2: COMMIT; +step c2: COMMIT; + +starting permutation: rx1 s1 at1 sc1 s2 at2 wx rx1 c2 sc2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step wx: INSERT INTO b VALUES (0); +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step sc2: COMMIT; + +starting permutation: rx1 s1 at1 sc1 s2 wx at2 sc2 rx1 c2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step s2: BEGIN; +step wx: INSERT INTO b VALUES (0); +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; + +starting permutation: rx1 s1 at1 sc1 s2 wx at2 rx1 sc2 c2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step s2: BEGIN; +step wx: INSERT INTO b VALUES (0); +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step sc2: COMMIT; +step c2: COMMIT; + +starting permutation: rx1 s1 at1 sc1 s2 wx at2 rx1 c2 sc2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step s2: BEGIN; +step wx: INSERT INTO b VALUES (0); +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step sc2: COMMIT; + +starting permutation: rx1 s1 at1 sc1 s2 wx rx1 at2 sc2 c2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step s2: BEGIN; +step wx: INSERT INTO b VALUES (0); +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; +step c2: COMMIT; + +starting permutation: rx1 s1 at1 sc1 s2 wx rx1 at2 c2 sc2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step s2: BEGIN; +step wx: INSERT INTO b VALUES (0); +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step c2: COMMIT; +step sc2: COMMIT; + +starting permutation: rx1 s1 at1 sc1 s2 wx rx1 c2 at2 sc2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step s2: BEGIN; +step wx: INSERT INTO b VALUES (0); +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; + +starting permutation: rx1 s1 at1 sc1 wx s2 at2 sc2 rx1 c2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step wx: INSERT INTO b VALUES (0); +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; + +starting permutation: rx1 s1 at1 sc1 wx s2 at2 rx1 sc2 c2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step wx: INSERT INTO b VALUES (0); +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step sc2: COMMIT; +step c2: COMMIT; + +starting permutation: rx1 s1 at1 sc1 wx s2 at2 rx1 c2 sc2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step wx: INSERT INTO b VALUES (0); +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step sc2: COMMIT; + +starting permutation: rx1 s1 at1 sc1 wx s2 rx1 at2 sc2 c2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step wx: INSERT INTO b VALUES (0); +step s2: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; +step c2: COMMIT; + +starting permutation: rx1 s1 at1 sc1 wx s2 rx1 at2 c2 sc2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step wx: INSERT INTO b VALUES (0); +step s2: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step c2: COMMIT; +step sc2: COMMIT; + +starting permutation: rx1 s1 at1 sc1 wx s2 rx1 c2 at2 sc2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step wx: INSERT INTO b VALUES (0); +step s2: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; + +starting permutation: rx1 s1 at1 sc1 wx rx1 s2 at2 sc2 c2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step wx: INSERT INTO b VALUES (0); +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; +step c2: COMMIT; + +starting permutation: rx1 s1 at1 sc1 wx rx1 s2 at2 c2 sc2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step wx: INSERT INTO b VALUES (0); +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step c2: COMMIT; +step sc2: COMMIT; + +starting permutation: rx1 s1 at1 sc1 wx rx1 s2 c2 at2 sc2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step wx: INSERT INTO b VALUES (0); +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step s2: BEGIN; +step c2: COMMIT; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; + +starting permutation: rx1 s1 at1 sc1 wx rx1 c2 s2 at2 sc2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step sc1: COMMIT; +step wx: INSERT INTO b VALUES (0); +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; + +starting permutation: rx1 s1 at1 wx sc1 s2 at2 sc2 rx1 c2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; + +starting permutation: rx1 s1 at1 wx sc1 s2 at2 rx1 sc2 c2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step sc2: COMMIT; +step c2: COMMIT; + +starting permutation: rx1 s1 at1 wx sc1 s2 at2 rx1 c2 sc2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step sc2: COMMIT; + +starting permutation: rx1 s1 at1 wx sc1 s2 rx1 at2 sc2 c2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step s2: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; +step c2: COMMIT; + +starting permutation: rx1 s1 at1 wx sc1 s2 rx1 at2 c2 sc2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step s2: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step c2: COMMIT; +step sc2: COMMIT; + +starting permutation: rx1 s1 at1 wx sc1 s2 rx1 c2 at2 sc2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step s2: BEGIN; +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; + +starting permutation: rx1 s1 at1 wx sc1 rx1 s2 at2 sc2 c2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; +step c2: COMMIT; + +starting permutation: rx1 s1 at1 wx sc1 rx1 s2 at2 c2 sc2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step c2: COMMIT; +step sc2: COMMIT; + +starting permutation: rx1 s1 at1 wx sc1 rx1 s2 c2 at2 sc2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step s2: BEGIN; +step c2: COMMIT; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; + +starting permutation: rx1 s1 at1 wx sc1 rx1 c2 s2 at2 sc2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +step sc1: COMMIT; +step wx: <... completed> +step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3; +a_id + +3 +3 +3 +step c2: COMMIT; +step s2: BEGIN; +step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk; +step sc2: COMMIT; + +starting permutation: rx1 s1 at1 wx rx1 sc1 s2 at2 sc2 c2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +invalid permutation detected + +starting permutation: rx1 s1 at1 wx rx1 sc1 s2 at2 c2 sc2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +invalid permutation detected + +starting permutation: rx1 s1 at1 wx rx1 sc1 s2 c2 at2 sc2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +invalid permutation detected + +starting permutation: rx1 s1 at1 wx rx1 sc1 c2 s2 at2 sc2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +invalid permutation detected + +starting permutation: rx1 s1 at1 wx rx1 c2 sc1 s2 at2 sc2 +step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; +a_id + +1 +step s1: BEGIN; +step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID; +step wx: INSERT INTO b VALUES (0); +invalid permutation detected starting permutation: rx1 s1 wx at1 sc1 s2 at2 sc2 rx1 c2 step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1; diff --git a/src/test/isolation/isolation_schedule b/src/test/isolation/isolation_schedule index c055a534766..3e2614ecacd 100644 --- a/src/test/isolation/isolation_schedule +++ b/src/test/isolation/isolation_schedule @@ -34,4 +34,7 @@ test: skip-locked-3 test: skip-locked-4 test: drop-index-concurrently-1 test: alter-table-1 +test: alter-table-2 +test: alter-table-3 +test: create-trigger test: timeouts diff --git a/src/test/regress/expected/alter_table.out b/src/test/regress/expected/alter_table.out index 6a31df7a296..65274bc26b7 100644 --- a/src/test/regress/expected/alter_table.out +++ b/src/test/regress/expected/alter_table.out @@ -1957,9 +1957,9 @@ create trigger ttdummy execute procedure ttdummy (1, 1); select * from my_locks order by 1; - relname | max_lockmode ------------+--------------------- - alterlock | AccessExclusiveLock + relname | max_lockmode +-----------+----------------------- + alterlock | ShareRowExclusiveLock (1 row) rollback; @@ -1971,10 +1971,10 @@ select * from my_locks order by 1; alter table alterlock2 add foreign key (f1) references alterlock (f1); select * from my_locks order by 1; - relname | max_lockmode ------------------+--------------------- - alterlock | AccessExclusiveLock - alterlock2 | AccessExclusiveLock + relname | max_lockmode +-----------------+----------------------- + alterlock | ShareRowExclusiveLock + alterlock2 | ShareRowExclusiveLock alterlock2_pkey | AccessShareLock alterlock_pkey | AccessShareLock (4 rows) @@ -1984,10 +1984,10 @@ begin; alter table alterlock2 add constraint alterlock2nv foreign key (f1) references alterlock (f1) NOT VALID; select * from my_locks order by 1; - relname | max_lockmode -------------+--------------------- - alterlock | AccessExclusiveLock - alterlock2 | AccessExclusiveLock + relname | max_lockmode +------------+----------------------- + alterlock | ShareRowExclusiveLock + alterlock2 | ShareRowExclusiveLock (2 rows) commit;