diff --git a/doc/src/sgml/mvcc.sgml b/doc/src/sgml/mvcc.sgml
index a0d6867..bd3e42a 100644
--- a/doc/src/sgml/mvcc.sgml
+++ b/doc/src/sgml/mvcc.sgml
@@ -908,9 +908,10 @@ 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, ALTER
+ TRIGGER, and many forms of ALTER TABLE
+ (see ).
+ >
@@ -957,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 b5ef09e..5d2534a 100644
--- a/doc/src/sgml/ref/alter_table.sgml
+++ b/doc/src/sgml/ref/alter_table.sgml
@@ -405,6 +405,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 66d5083..ce5510e 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -2858,13 +2858,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:
@@ -2873,6 +2868,17 @@ 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_ProcessedConstraint: /* becomes AT_AddConstraint */
+ case AT_AddConstraintRecurse: /* becomes AT_AddConstraint */
+ case AT_ReAddConstraint: /* becomes AT_AddConstraint */
case AT_AlterConstraint:
case AT_AddIndex: /* from ADD CONSTRAINT */
case AT_AddIndexConstraint:
@@ -2909,11 +2915,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:
@@ -6030,16 +6034,15 @@ 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. Note that this does not create risks
+ * of deadlocks as triggers add added to the pk table using the same
+ * lock.
*/
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 4899a27..33f8448 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -158,9 +158,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
@@ -526,8 +526,7 @@ CreateTrigger(CreateTrigStmt *stmt, const char *queryString,
* can skip this for internally generated triggers, since the name
* modification above should be sufficient.
*
- * NOTE that this is cool only because we have AccessExclusiveLock on the
- * relation, so the trigger set won't be changing underneath us.
+ * NOTE that this is cool only because of the unique contraint.
*/
if (!isInternal)
{
@@ -1103,7 +1102,7 @@ RemoveTriggerById(Oid trigOid)
*/
relid = ((Form_pg_trigger) GETSTRUCT(tup))->tgrelid;
- rel = heap_open(relid, AccessExclusiveLock);
+ rel = heap_open(relid, ShareRowExclusiveLock);
if (rel->rd_rel->relkind != RELKIND_RELATION &&
rel->rd_rel->relkind != RELKIND_VIEW &&
@@ -1258,7 +1257,7 @@ renametrig(RenameStmt *stmt)
* Look up name, check permissions, and acquire lock (which we will NOT
* release until end of transaction).
*/
- relid = RangeVarGetRelidExtended(stmt->relation, AccessExclusiveLock,
+ relid = RangeVarGetRelidExtended(stmt->relation, ShareRowExclusiveLock,
false, false,
RangeVarCallbackForRenameTrigger,
NULL);
@@ -1272,8 +1271,7 @@ renametrig(RenameStmt *stmt)
* on tgrelid/tgname would complain anyway) and to ensure a trigger does
* exist with oldname.
*
- * NOTE that this is cool only because we have AccessExclusiveLock on the
- * relation, so the trigger set won't be changing underneath us.
+ * NOTE that this is cool only because there is a unique constraint.
*/
tgrel = heap_open(TriggerRelationId, RowExclusiveLock);
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c
index dd748ac..8eeccf2 100644
--- a/src/backend/utils/adt/ruleutils.c
+++ b/src/backend/utils/adt/ruleutils.c
@@ -699,7 +699,8 @@ pg_get_triggerdef_worker(Oid trigid, bool pretty)
HeapTuple ht_trig;
Form_pg_trigger trigrec;
StringInfoData buf;
- Relation tgrel;
+ Snapshot snapshot = RegisterSnapshot(GetTransactionSnapshot());
+ Relation tgrel = heap_open(TriggerRelationId, AccessShareLock);
ScanKeyData skey[1];
SysScanDesc tgscan;
int findx = 0;
@@ -710,18 +711,18 @@ pg_get_triggerdef_worker(Oid trigid, bool pretty)
/*
* Fetch the pg_trigger tuple by the Oid of the trigger
*/
- tgrel = heap_open(TriggerRelationId, AccessShareLock);
-
ScanKeyInit(&skey[0],
ObjectIdAttributeNumber,
BTEqualStrategyNumber, F_OIDEQ,
ObjectIdGetDatum(trigid));
tgscan = systable_beginscan(tgrel, TriggerOidIndexId, true,
- NULL, 1, skey);
+ snapshot, 1, skey);
ht_trig = systable_getnext(tgscan);
+ UnregisterSnapshot(snapshot);
+
if (!HeapTupleIsValid(ht_trig))
elog(ERROR, "could not find tuple for trigger %u", trigid);
diff --git a/src/test/isolation/expected/alter-table-1.out b/src/test/isolation/expected/alter-table-1.out
index edf7288..9daa418 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,137 +1103,362 @@ 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
-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;
-invalid permutation detected
+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
-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;
-invalid permutation detected
+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 c2 at2 sc2
+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;
-invalid permutation detected
+step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
+a_id
-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;
+1
+step wx: INSERT INTO b VALUES (0);
invalid permutation detected
-starting permutation: s1 at1 rx1 wx rx1 c2 sc1 s2 at2 sc2
+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;
-invalid permutation detected
-
-starting permutation: s1 rx1 at1 sc1 s2 at2 sc2 wx 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 sc1 s2 at2 wx sc2 rx1 c2
+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;
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 sc1 s2 at2 wx rx1 sc2 c2
+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;
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 sc1 s2 at2 wx rx1 c2 sc2
+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;
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 sc1 s2 wx at2 sc2 rx1 c2
+starting permutation: s1 rx1 at1 sc1 s2 at2 sc2 wx 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
+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
+
+3
+3
+3
+step c2: COMMIT;
+
+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;
@@ -1261,8 +1466,19 @@ 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
+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;
@@ -1270,8 +1486,19 @@ 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
+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;
@@ -1279,8 +1506,19 @@ 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
+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;
@@ -1288,8 +1526,19 @@ 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
+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;
@@ -1297,8 +1546,19 @@ 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
+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;
@@ -1306,8 +1566,19 @@ 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
+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;
@@ -1315,189 +1586,548 @@ 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
+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 sc1 wx s2 at2 rx1 c2 sc2
+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;
-invalid permutation detected
+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
-starting permutation: s1 rx1 at1 sc1 wx s2 rx1 at2 sc2 c2
+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;
-invalid permutation detected
+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
-starting permutation: s1 rx1 at1 sc1 wx s2 rx1 at2 c2 sc2
+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;
-invalid permutation detected
+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
-starting permutation: s1 rx1 at1 sc1 wx s2 rx1 c2 at2 sc2
+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 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 sc1 wx rx1 s2 at2 sc2 c2
+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 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 sc1 wx rx1 s2 at2 c2 sc2
+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 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 sc1 wx rx1 s2 c2 at2 sc2
+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 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 sc1 wx rx1 c2 s2 at2 sc2
+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 wx: INSERT INTO b VALUES (0);
invalid permutation detected
-starting permutation: s1 rx1 at1 wx sc1 s2 at2 sc2 rx1 c2
+starting permutation: s1 rx1 wx at1 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 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 rx1 sc2 c2
+starting permutation: s1 rx1 wx at1 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 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 rx1 c2 sc2
+starting permutation: s1 rx1 wx at1 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 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 rx1 at2 sc2 c2
+starting permutation: s1 rx1 wx at1 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 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 rx1 at2 c2 sc2
+starting permutation: s1 rx1 wx at1 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 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 rx1 c2 at2 sc2
+starting permutation: s1 rx1 wx at1 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 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 rx1 s2 at2 sc2 c2
+starting permutation: s1 rx1 wx at1 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 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 rx1 s2 at2 c2 sc2
+starting permutation: s1 rx1 wx at1 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 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 rx1 s2 c2 at2 sc2
+starting permutation: s1 rx1 wx at1 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 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 rx1 c2 s2 at2 sc2
+starting permutation: s1 rx1 wx at1 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 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 rx1 sc1 s2 at2 sc2 c2
+starting permutation: s1 rx1 wx at1 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 at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
a_id
@@ -1506,14 +2136,14 @@ a_id
3
invalid permutation detected
-starting permutation: s1 rx1 at1 wx rx1 sc1 s2 at2 c2 sc2
+starting permutation: s1 rx1 wx at1 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 at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
a_id
@@ -1522,14 +2152,14 @@ a_id
3
invalid permutation detected
-starting permutation: s1 rx1 at1 wx rx1 sc1 s2 c2 at2 sc2
+starting permutation: s1 rx1 wx at1 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 at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
a_id
@@ -1538,14 +2168,14 @@ a_id
3
invalid permutation detected
-starting permutation: s1 rx1 at1 wx rx1 sc1 c2 s2 at2 sc2
+starting permutation: s1 rx1 wx at1 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 at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
a_id
@@ -1554,14 +2184,14 @@ a_id
3
invalid permutation detected
-starting permutation: s1 rx1 at1 wx rx1 c2 sc1 s2 at2 sc2
+starting permutation: s1 rx1 wx at1 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);
+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 = 3 LIMIT 3;
a_id
@@ -1575,197 +2205,181 @@ step s2: BEGIN;
step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
step sc2: COMMIT;
-starting permutation: s1 rx1 wx at1 sc1 s2 at2 sc2 rx1 c2
-step s1: BEGIN;
-step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id
-
-1
-step wx: INSERT INTO b VALUES (0);
-step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
-invalid permutation detected
-
-starting permutation: s1 rx1 wx at1 sc1 s2 at2 rx1 sc2 c2
-step s1: BEGIN;
-step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
-a_id
-
-1
-step wx: INSERT INTO b VALUES (0);
-step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
-invalid permutation detected
-
-starting permutation: s1 rx1 wx at1 sc1 s2 at2 rx1 c2 sc2
+starting permutation: s1 rx1 wx rx1 at1 sc1 s2 at2 sc2 c2
step s1: BEGIN;
step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
a_id
1
step wx: INSERT INTO b VALUES (0);
-step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
-invalid permutation detected
-
-starting permutation: s1 rx1 wx at1 sc1 s2 rx1 at2 sc2 c2
-step s1: BEGIN;
-step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
+step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
a_id
-1
-step wx: INSERT INTO b VALUES (0);
+3
+3
+3
step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
invalid permutation detected
-starting permutation: s1 rx1 wx at1 sc1 s2 rx1 at2 c2 sc2
+starting permutation: s1 rx1 wx rx1 at1 sc1 s2 at2 c2 sc2
step s1: BEGIN;
step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
a_id
1
step wx: INSERT INTO b VALUES (0);
-step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
-invalid permutation detected
-
-starting permutation: s1 rx1 wx at1 sc1 s2 rx1 c2 at2 sc2
-step s1: BEGIN;
-step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
+step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
a_id
-1
-step wx: INSERT INTO b VALUES (0);
+3
+3
+3
step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
invalid permutation detected
-starting permutation: s1 rx1 wx at1 sc1 rx1 s2 at2 sc2 c2
+starting permutation: s1 rx1 wx rx1 at1 sc1 s2 c2 at2 sc2
step s1: BEGIN;
step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
a_id
1
step wx: INSERT INTO b VALUES (0);
-step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
-invalid permutation detected
-
-starting permutation: s1 rx1 wx at1 sc1 rx1 s2 at2 c2 sc2
-step s1: BEGIN;
-step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
+step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
a_id
-1
-step wx: INSERT INTO b VALUES (0);
+3
+3
+3
step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
invalid permutation detected
-starting permutation: s1 rx1 wx at1 sc1 rx1 s2 c2 at2 sc2
+starting permutation: s1 rx1 wx rx1 at1 sc1 c2 s2 at2 sc2
step s1: BEGIN;
step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
a_id
1
step wx: INSERT INTO b VALUES (0);
-step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
-invalid permutation detected
-
-starting permutation: s1 rx1 wx at1 sc1 rx1 c2 s2 at2 sc2
-step s1: BEGIN;
-step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
+step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
a_id
-1
-step wx: INSERT INTO b VALUES (0);
+3
+3
+3
step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
invalid permutation detected
-starting permutation: s1 rx1 wx at1 rx1 sc1 s2 at2 sc2 c2
+starting permutation: s1 rx1 wx rx1 at1 c2 sc1 s2 at2 sc2
step s1: BEGIN;
step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
a_id
1
step wx: INSERT INTO b VALUES (0);
-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 = 3 LIMIT 3;
a_id
3
3
3
-invalid permutation detected
+step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step c2: COMMIT;
+step at1: <... completed>
+step sc1: COMMIT;
+step s2: BEGIN;
+step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
+step sc2: COMMIT;
-starting permutation: s1 rx1 wx at1 rx1 sc1 s2 at2 c2 sc2
+starting permutation: s1 rx1 wx rx1 c2 at1 sc1 s2 at2 sc2
step s1: BEGIN;
step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 1;
a_id
1
step wx: INSERT INTO b VALUES (0);
-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 = 3 LIMIT 3;
a_id
3
3
3
-invalid permutation detected
+step c2: COMMIT;
+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;
-starting permutation: s1 rx1 wx at1 rx1 sc1 s2 c2 at2 sc2
-step s1: BEGIN;
+starting permutation: rx1 s1 at1 sc1 s2 at2 sc2 wx 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 sc2: COMMIT;
step wx: INSERT INTO b VALUES (0);
-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 = 3 LIMIT 3;
a_id
3
3
3
-invalid permutation detected
+step c2: COMMIT;
-starting permutation: s1 rx1 wx at1 rx1 sc1 c2 s2 at2 sc2
-step s1: BEGIN;
+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 at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step sc2: COMMIT;
step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
a_id
3
3
3
-invalid permutation detected
+step c2: COMMIT;
-starting permutation: s1 rx1 wx at1 rx1 c2 sc1 s2 at2 sc2
-step s1: BEGIN;
+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 at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
step rx1: SELECT * FROM b WHERE a_id = 3 LIMIT 3;
a_id
3
3
3
-step c2: COMMIT;
-step at1: <... completed>
-step sc1: COMMIT;
-step s2: BEGIN;
-step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
step sc2: COMMIT;
+step c2: COMMIT;
-starting permutation: s1 rx1 wx rx1 at1 sc1 s2 at2 sc2 c2
-step s1: BEGIN;
+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
@@ -1773,63 +2387,78 @@ a_id
3
3
3
-step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
-invalid permutation detected
+step c2: COMMIT;
+step sc2: COMMIT;
-starting permutation: s1 rx1 wx rx1 at1 sc1 s2 at2 c2 sc2
-step s1: BEGIN;
+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 at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
-invalid permutation detected
+step c2: COMMIT;
-starting permutation: s1 rx1 wx rx1 at1 sc1 s2 c2 at2 sc2
-step s1: BEGIN;
+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 at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
-invalid permutation detected
+step sc2: COMMIT;
+step c2: COMMIT;
-starting permutation: s1 rx1 wx rx1 at1 sc1 c2 s2 at2 sc2
-step s1: BEGIN;
+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 at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
-invalid permutation detected
+step c2: COMMIT;
+step sc2: COMMIT;
-starting permutation: s1 rx1 wx rx1 at1 c2 sc1 s2 at2 sc2
-step s1: BEGIN;
+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
@@ -1837,20 +2466,19 @@ a_id
3
3
3
-step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
-step c2: COMMIT;
-step at1: <... completed>
-step sc1: COMMIT;
-step s2: BEGIN;
step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
step sc2: COMMIT;
+step c2: COMMIT;
-starting permutation: s1 rx1 wx rx1 c2 at1 sc1 s2 at2 sc2
-step s1: BEGIN;
+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
@@ -1858,174 +2486,189 @@ a_id
3
3
3
-step c2: COMMIT;
-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 c2: COMMIT;
step sc2: COMMIT;
-starting permutation: rx1 s1 at1 sc1 s2 at2 sc2 wx rx1 c2
+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 s2 at2 wx sc2 rx1 c2
-step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 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
-1
-step s1: BEGIN;
-step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
-invalid permutation detected
+3
+3
+3
+step c2: COMMIT;
+step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
+step sc2: COMMIT;
-starting permutation: rx1 s1 at1 sc1 s2 at2 wx rx1 sc2 c2
+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 s2 at2 wx rx1 c2 sc2
-step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 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
-1
-step s1: BEGIN;
-step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
-invalid permutation detected
+3
+3
+3
+step c2: COMMIT;
-starting permutation: rx1 s1 at1 sc1 s2 wx at2 sc2 rx1 c2
+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 s2 wx at2 rx1 sc2 c2
-step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 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
-1
-step s1: BEGIN;
-step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
-invalid permutation detected
+3
+3
+3
+step sc2: COMMIT;
+step c2: COMMIT;
-starting permutation: rx1 s1 at1 sc1 s2 wx at2 rx1 c2 sc2
+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 s2 wx rx1 at2 sc2 c2
-step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 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
-1
-step s1: BEGIN;
-step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
-invalid permutation detected
+3
+3
+3
+step c2: COMMIT;
+step sc2: COMMIT;
-starting permutation: rx1 s1 at1 sc1 s2 wx rx1 at2 c2 sc2
+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 s2 wx rx1 c2 at2 sc2
-step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 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
-1
-step s1: BEGIN;
-step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
-invalid permutation detected
+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 at2 sc2 rx1 c2
+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 at2 rx1 sc2 c2
-step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 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
-1
-step s1: BEGIN;
-step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
-invalid permutation detected
+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 at2 rx1 c2 sc2
+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 s2 rx1 at2 sc2 c2
-step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 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
-1
-step s1: BEGIN;
-step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
-invalid permutation detected
+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 rx1 at2 c2 sc2
+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 s2 rx1 c2 at2 sc2
-step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 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
-1
-step s1: BEGIN;
-step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
-invalid permutation detected
+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 sc2 c2
+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 at2 c2 sc2
-step rx1: SELECT * FROM b WHERE a_id = 1 LIMIT 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
-1
-step s1: BEGIN;
-step at1: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
-invalid permutation detected
+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;
@@ -2033,8 +2676,19 @@ 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
+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;
@@ -2042,8 +2696,19 @@ 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
+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;
@@ -2051,9 +2716,20 @@ 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
+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;
@@ -2061,9 +2737,20 @@ 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
+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;
@@ -2071,9 +2758,20 @@ 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
+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;
@@ -2081,9 +2779,20 @@ 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
+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;
@@ -2091,9 +2800,20 @@ 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
+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;
@@ -2101,9 +2821,20 @@ 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
+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;
@@ -2111,9 +2842,20 @@ 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
+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;
@@ -2121,9 +2863,20 @@ 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
+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;
@@ -2131,50 +2884,60 @@ 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;
+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
-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
+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 rx1 sc1 s2 at2 sc2 c2
+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 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
-invalid permutation detected
+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 c2 sc2
+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;
+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
-3
-3
-3
+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
@@ -2183,14 +2946,8 @@ 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
+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
@@ -2199,14 +2956,8 @@ 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
+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
@@ -2215,20 +2966,9 @@ 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
-step c2: COMMIT;
-step at1: <... completed>
-step sc1: COMMIT;
-step s2: BEGIN;
-step at2: ALTER TABLE b VALIDATE CONSTRAINT bfk;
-step sc2: COMMIT;
+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/expected/alter-table-2.out b/src/test/isolation/expected/alter-table-2.out
new file mode 100644
index 0000000..cef7516
--- /dev/null
+++ b/src/test/isolation/expected/alter-table-2.out
@@ -0,0 +1,1389 @@
+Parsed test spec with 2 sessions
+
+starting permutation: s1a s1b s1c s2a s2b s2c s2d s2e s2f
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s1c: COMMIT;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s1a s1b s2a s1c s2b s2c s2d s2e s2f
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2a: BEGIN;
+step s1c: COMMIT;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s1a s1b s2a s2b s1c s2c s2d s2e s2f
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1c: COMMIT;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s1a s1b s2a s2b s2c s1c s2d s2e s2f
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1c: COMMIT;
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s1a s1b s2a s2b s2c s2d s1c s2e s2f
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1c: COMMIT;
+step s2d: <... completed>
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s1a s1b s2a s2b s2c s2d s2e s1c s2f
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+invalid permutation detected
+
+starting permutation: s1a s1b s2a s2b s2c s2d s2e s2f s1c
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+invalid permutation detected
+
+starting permutation: s1a s2a s1b s1c s2b s2c s2d s2e s2f
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s1c: COMMIT;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s1a s2a s1b s2b s1c s2c s2d s2e s2f
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1c: COMMIT;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s1a s2a s1b s2b s2c s1c s2d s2e s2f
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1c: COMMIT;
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s1a s2a s1b s2b s2c s2d s1c s2e s2f
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1c: COMMIT;
+step s2d: <... completed>
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s1a s2a s1b s2b s2c s2d s2e s1c s2f
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+invalid permutation detected
+
+starting permutation: s1a s2a s1b s2b s2c s2d s2e s2f s1c
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+invalid permutation detected
+
+starting permutation: s1a s2a s2b s1b s1c s2c s2d s2e s2f
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s1c: COMMIT;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s1a s2a s2b s1b s2c s1c s2d s2e s2f
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1c: COMMIT;
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s1a s2a s2b s1b s2c s2d s1c s2e s2f
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1c: COMMIT;
+step s2d: <... completed>
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s1a s2a s2b s1b s2c s2d s2e s1c s2f
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+invalid permutation detected
+
+starting permutation: s1a s2a s2b s1b s2c s2d s2e s2f s1c
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+invalid permutation detected
+
+starting permutation: s1a s2a s2b s2c s1b s1c s2d s2e s2f
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s1c: COMMIT;
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s1a s2a s2b s2c s1b s2d s1c s2e s2f
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2d: INSERT INTO b VALUES (0);
+step s1c: COMMIT;
+step s2d: <... completed>
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s1a s2a s2b s2c s1b s2d s2e s1c s2f
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2d: INSERT INTO b VALUES (0);
+invalid permutation detected
+
+starting permutation: s1a s2a s2b s2c s1b s2d s2e s2f s1c
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2d: INSERT INTO b VALUES (0);
+invalid permutation detected
+
+starting permutation: s1a s2a s2b s2c s2d s1b s1c s2e s2f
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+invalid permutation detected
+
+starting permutation: s1a s2a s2b s2c s2d s1b s2e s1c s2f
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2e: INSERT INTO a VALUES (4);
+invalid permutation detected
+
+starting permutation: s1a s2a s2b s2c s2d s1b s2e s2f s1c
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+step s1b: <... completed>
+step s1c: COMMIT;
+
+starting permutation: s1a s2a s2b s2c s2d s2e s1b s1c s2f
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+invalid permutation detected
+
+starting permutation: s1a s2a s2b s2c s2d s2e s1b s2f s1c
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2f: COMMIT;
+step s1b: <... completed>
+step s1c: COMMIT;
+
+starting permutation: s1a s2a s2b s2c s2d s2e s2f s1b s1c
+step s1a: BEGIN;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s1c: COMMIT;
+
+starting permutation: s2a s1a s1b s1c s2b s2c s2d s2e s2f
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s1c: COMMIT;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s2a s1a s1b s2b s1c s2c s2d s2e s2f
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1c: COMMIT;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s2a s1a s1b s2b s2c s1c s2d s2e s2f
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1c: COMMIT;
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s2a s1a s1b s2b s2c s2d s1c s2e s2f
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1c: COMMIT;
+step s2d: <... completed>
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s2a s1a s1b s2b s2c s2d s2e s1c s2f
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+invalid permutation detected
+
+starting permutation: s2a s1a s1b s2b s2c s2d s2e s2f s1c
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+invalid permutation detected
+
+starting permutation: s2a s1a s2b s1b s1c s2c s2d s2e s2f
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s1c: COMMIT;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s2a s1a s2b s1b s2c s1c s2d s2e s2f
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1c: COMMIT;
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s2a s1a s2b s1b s2c s2d s1c s2e s2f
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1c: COMMIT;
+step s2d: <... completed>
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s2a s1a s2b s1b s2c s2d s2e s1c s2f
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+invalid permutation detected
+
+starting permutation: s2a s1a s2b s1b s2c s2d s2e s2f s1c
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+invalid permutation detected
+
+starting permutation: s2a s1a s2b s2c s1b s1c s2d s2e s2f
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s1c: COMMIT;
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s2a s1a s2b s2c s1b s2d s1c s2e s2f
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2d: INSERT INTO b VALUES (0);
+step s1c: COMMIT;
+step s2d: <... completed>
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s2a s1a s2b s2c s1b s2d s2e s1c s2f
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2d: INSERT INTO b VALUES (0);
+invalid permutation detected
+
+starting permutation: s2a s1a s2b s2c s1b s2d s2e s2f s1c
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2d: INSERT INTO b VALUES (0);
+invalid permutation detected
+
+starting permutation: s2a s1a s2b s2c s2d s1b s1c s2e s2f
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+invalid permutation detected
+
+starting permutation: s2a s1a s2b s2c s2d s1b s2e s1c s2f
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2e: INSERT INTO a VALUES (4);
+invalid permutation detected
+
+starting permutation: s2a s1a s2b s2c s2d s1b s2e s2f s1c
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+step s1b: <... completed>
+step s1c: COMMIT;
+
+starting permutation: s2a s1a s2b s2c s2d s2e s1b s1c s2f
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+invalid permutation detected
+
+starting permutation: s2a s1a s2b s2c s2d s2e s1b s2f s1c
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2f: COMMIT;
+step s1b: <... completed>
+step s1c: COMMIT;
+
+starting permutation: s2a s1a s2b s2c s2d s2e s2f s1b s1c
+step s2a: BEGIN;
+step s1a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s1c: COMMIT;
+
+starting permutation: s2a s2b s1a s1b s1c s2c s2d s2e s2f
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s1c: COMMIT;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s2a s2b s1a s1b s2c s1c s2d s2e s2f
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1c: COMMIT;
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s2a s2b s1a s1b s2c s2d s1c s2e s2f
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1c: COMMIT;
+step s2d: <... completed>
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s2a s2b s1a s1b s2c s2d s2e s1c s2f
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+invalid permutation detected
+
+starting permutation: s2a s2b s1a s1b s2c s2d s2e s2f s1c
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+invalid permutation detected
+
+starting permutation: s2a s2b s1a s2c s1b s1c s2d s2e s2f
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1a: BEGIN;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s1c: COMMIT;
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s2a s2b s1a s2c s1b s2d s1c s2e s2f
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1a: BEGIN;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2d: INSERT INTO b VALUES (0);
+step s1c: COMMIT;
+step s2d: <... completed>
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s2a s2b s1a s2c s1b s2d s2e s1c s2f
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1a: BEGIN;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2d: INSERT INTO b VALUES (0);
+invalid permutation detected
+
+starting permutation: s2a s2b s1a s2c s1b s2d s2e s2f s1c
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1a: BEGIN;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2d: INSERT INTO b VALUES (0);
+invalid permutation detected
+
+starting permutation: s2a s2b s1a s2c s2d s1b s1c s2e s2f
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1a: BEGIN;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+invalid permutation detected
+
+starting permutation: s2a s2b s1a s2c s2d s1b s2e s1c s2f
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1a: BEGIN;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2e: INSERT INTO a VALUES (4);
+invalid permutation detected
+
+starting permutation: s2a s2b s1a s2c s2d s1b s2e s2f s1c
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1a: BEGIN;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+step s1b: <... completed>
+step s1c: COMMIT;
+
+starting permutation: s2a s2b s1a s2c s2d s2e s1b s1c s2f
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1a: BEGIN;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+invalid permutation detected
+
+starting permutation: s2a s2b s1a s2c s2d s2e s1b s2f s1c
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1a: BEGIN;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2f: COMMIT;
+step s1b: <... completed>
+step s1c: COMMIT;
+
+starting permutation: s2a s2b s1a s2c s2d s2e s2f s1b s1c
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1a: BEGIN;
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s1c: COMMIT;
+
+starting permutation: s2a s2b s2c s1a s1b s1c s2d s2e s2f
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s1c: COMMIT;
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s2a s2b s2c s1a s1b s2d s1c s2e s2f
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2d: INSERT INTO b VALUES (0);
+step s1c: COMMIT;
+step s2d: <... completed>
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+
+starting permutation: s2a s2b s2c s1a s1b s2d s2e s1c s2f
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2d: INSERT INTO b VALUES (0);
+invalid permutation detected
+
+starting permutation: s2a s2b s2c s1a s1b s2d s2e s2f s1c
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2d: INSERT INTO b VALUES (0);
+invalid permutation detected
+
+starting permutation: s2a s2b s2c s1a s2d s1b s1c s2e s2f
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1a: BEGIN;
+step s2d: INSERT INTO b VALUES (0);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+invalid permutation detected
+
+starting permutation: s2a s2b s2c s1a s2d s1b s2e s1c s2f
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1a: BEGIN;
+step s2d: INSERT INTO b VALUES (0);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2e: INSERT INTO a VALUES (4);
+invalid permutation detected
+
+starting permutation: s2a s2b s2c s1a s2d s1b s2e s2f s1c
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1a: BEGIN;
+step s2d: INSERT INTO b VALUES (0);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+step s1b: <... completed>
+step s1c: COMMIT;
+
+starting permutation: s2a s2b s2c s1a s2d s2e s1b s1c s2f
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1a: BEGIN;
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+invalid permutation detected
+
+starting permutation: s2a s2b s2c s1a s2d s2e s1b s2f s1c
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1a: BEGIN;
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2f: COMMIT;
+step s1b: <... completed>
+step s1c: COMMIT;
+
+starting permutation: s2a s2b s2c s1a s2d s2e s2f s1b s1c
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s1a: BEGIN;
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s1c: COMMIT;
+
+starting permutation: s2a s2b s2c s2d s1a s1b s1c s2e s2f
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+invalid permutation detected
+
+starting permutation: s2a s2b s2c s2d s1a s1b s2e s1c s2f
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2e: INSERT INTO a VALUES (4);
+invalid permutation detected
+
+starting permutation: s2a s2b s2c s2d s1a s1b s2e s2f s1c
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+step s1b: <... completed>
+step s1c: COMMIT;
+
+starting permutation: s2a s2b s2c s2d s1a s2e s1b s1c s2f
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1a: BEGIN;
+step s2e: INSERT INTO a VALUES (4);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+invalid permutation detected
+
+starting permutation: s2a s2b s2c s2d s1a s2e s1b s2f s1c
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1a: BEGIN;
+step s2e: INSERT INTO a VALUES (4);
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2f: COMMIT;
+step s1b: <... completed>
+step s1c: COMMIT;
+
+starting permutation: s2a s2b s2c s2d s1a s2e s2f s1b s1c
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s1a: BEGIN;
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s1c: COMMIT;
+
+starting permutation: s2a s2b s2c s2d s2e s1a s1b s1c s2f
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+invalid permutation detected
+
+starting permutation: s2a s2b s2c s2d s2e s1a s1b s2f s1c
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s2f: COMMIT;
+step s1b: <... completed>
+step s1c: COMMIT;
+
+starting permutation: s2a s2b s2c s2d s2e s1a s2f s1b s1c
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s1a: BEGIN;
+step s2f: COMMIT;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s1c: COMMIT;
+
+starting permutation: s2a s2b s2c s2d s2e s2f s1a s1b s1c
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: SELECT * FROM b WHERE a_id = 3 LIMIT 1 FOR UPDATE;
+a_id
+
+3
+step s2d: INSERT INTO b VALUES (0);
+step s2e: INSERT INTO a VALUES (4);
+step s2f: COMMIT;
+step s1a: BEGIN;
+step s1b: ALTER TABLE b ADD CONSTRAINT bfk FOREIGN KEY (a_id) REFERENCES a (i) NOT VALID;
+step s1c: COMMIT;
diff --git a/src/test/isolation/expected/alter-table-3.out b/src/test/isolation/expected/alter-table-3.out
new file mode 100644
index 0000000..7dc64df
--- /dev/null
+++ b/src/test/isolation/expected/alter-table-3.out
@@ -0,0 +1,947 @@
+Parsed test spec with 2 sessions
+
+starting permutation: s1a s1b s1c s1d s2a s2b s2c s2d
+step s1a: BEGIN;
+step s1b: ALTER TABLE a DISABLE TRIGGER t;
+step s1c: ALTER TABLE a ENABLE TRIGGER t;
+step s1d: COMMIT;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: INSERT INTO a VALUES (0);
+ERROR: duplicate key value violates unique constraint "a_pkey"
+step s2d: COMMIT;
+
+starting permutation: s1a s1b s1c s2a s1d s2b s2c s2d
+step s1a: BEGIN;
+step s1b: ALTER TABLE a DISABLE TRIGGER t;
+step s1c: ALTER TABLE a ENABLE TRIGGER t;
+step s2a: BEGIN;
+step s1d: COMMIT;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: INSERT INTO a VALUES (0);
+ERROR: duplicate key value violates unique constraint "a_pkey"
+step s2d: COMMIT;
+
+starting permutation: s1a s1b s1c s2a s2b s1d s2c s2d
+step s1a: BEGIN;
+step s1b: ALTER TABLE a DISABLE TRIGGER t;
+step s1c: ALTER TABLE a ENABLE TRIGGER t;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1d: COMMIT;
+step s2c: INSERT INTO a VALUES (0);
+ERROR: duplicate key value violates unique constraint "a_pkey"
+step s2d: COMMIT;
+
+starting permutation: s1a s1b s1c s2a s2b s2c s1d s2d
+step s1a: BEGIN;
+step s1b: ALTER TABLE a DISABLE TRIGGER t;
+step s1c: ALTER TABLE a ENABLE TRIGGER t;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: INSERT INTO a VALUES (0);
+step s1d: COMMIT;
+step s2c: <... completed>
+error in steps s1d s2c: ERROR: duplicate key value violates unique constraint "a_pkey"
+step s2d: COMMIT;
+
+starting permutation: s1a s1b s1c s2a s2b s2c s2d s1d
+step s1a: BEGIN;
+step s1b: ALTER TABLE a DISABLE TRIGGER t;
+step s1c: ALTER TABLE a ENABLE TRIGGER t;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: INSERT INTO a VALUES (0);
+invalid permutation detected
+
+starting permutation: s1a s1b s2a s1c s1d s2b s2c s2d
+step s1a: BEGIN;
+step s1b: ALTER TABLE a DISABLE TRIGGER t;
+step s2a: BEGIN;
+step s1c: ALTER TABLE a ENABLE TRIGGER t;
+step s1d: COMMIT;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: INSERT INTO a VALUES (0);
+ERROR: duplicate key value violates unique constraint "a_pkey"
+step s2d: COMMIT;
+
+starting permutation: s1a s1b s2a s1c s2b s1d s2c s2d
+step s1a: BEGIN;
+step s1b: ALTER TABLE a DISABLE TRIGGER t;
+step s2a: BEGIN;
+step s1c: ALTER TABLE a ENABLE TRIGGER t;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1d: COMMIT;
+step s2c: INSERT INTO a VALUES (0);
+ERROR: duplicate key value violates unique constraint "a_pkey"
+step s2d: COMMIT;
+
+starting permutation: s1a s1b s2a s1c s2b s2c s1d s2d
+step s1a: BEGIN;
+step s1b: ALTER TABLE a DISABLE TRIGGER t;
+step s2a: BEGIN;
+step s1c: ALTER TABLE a ENABLE TRIGGER t;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: INSERT INTO a VALUES (0);
+step s1d: COMMIT;
+step s2c: <... completed>
+error in steps s1d s2c: ERROR: duplicate key value violates unique constraint "a_pkey"
+step s2d: COMMIT;
+
+starting permutation: s1a s1b s2a s1c s2b s2c s2d s1d
+step s1a: BEGIN;
+step s1b: ALTER TABLE a DISABLE TRIGGER t;
+step s2a: BEGIN;
+step s1c: ALTER TABLE a ENABLE TRIGGER t;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: INSERT INTO a VALUES (0);
+invalid permutation detected
+
+starting permutation: s1a s1b s2a s2b s1c s1d s2c s2d
+step s1a: BEGIN;
+step s1b: ALTER TABLE a DISABLE TRIGGER t;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1c: ALTER TABLE a ENABLE TRIGGER t;
+step s1d: COMMIT;
+step s2c: INSERT INTO a VALUES (0);
+ERROR: duplicate key value violates unique constraint "a_pkey"
+step s2d: COMMIT;
+
+starting permutation: s1a s1b s2a s2b s1c s2c s1d s2d
+step s1a: BEGIN;
+step s1b: ALTER TABLE a DISABLE TRIGGER t;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1c: ALTER TABLE a ENABLE TRIGGER t;
+step s2c: INSERT INTO a VALUES (0);
+step s1d: COMMIT;
+step s2c: <... completed>
+error in steps s1d s2c: ERROR: duplicate key value violates unique constraint "a_pkey"
+step s2d: COMMIT;
+
+starting permutation: s1a s1b s2a s2b s1c s2c s2d s1d
+step s1a: BEGIN;
+step s1b: ALTER TABLE a DISABLE TRIGGER t;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s1c: ALTER TABLE a ENABLE TRIGGER t;
+step s2c: INSERT INTO a VALUES (0);
+invalid permutation detected
+
+starting permutation: s1a s1b s2a s2b s2c s1c s1d s2d
+step s1a: BEGIN;
+step s1b: ALTER TABLE a DISABLE TRIGGER t;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: INSERT INTO a VALUES (0);
+step s1c: ALTER TABLE a ENABLE TRIGGER t;
+step s1d: COMMIT;
+step s2c: <... completed>
+error in steps s1d s2c: ERROR: duplicate key value violates unique constraint "a_pkey"
+step s2d: COMMIT;
+
+starting permutation: s1a s1b s2a s2b s2c s1c s2d s1d
+step s1a: BEGIN;
+step s1b: ALTER TABLE a DISABLE TRIGGER t;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: INSERT INTO a VALUES (0);
+step s1c: ALTER TABLE a ENABLE TRIGGER t;
+invalid permutation detected
+
+starting permutation: s1a s1b s2a s2b s2c s2d s1c s1d
+step s1a: BEGIN;
+step s1b: ALTER TABLE a DISABLE TRIGGER t;
+step s2a: BEGIN;
+step s2b: SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE;
+i
+
+1
+step s2c: INSERT INTO a VALUES (0);