Hello, hackers!
When debugging is enabled for server logging, isolation tests fail
because there're no corresponding output functions for InsertStmt /
DeleteStmt / UpdateStmt that are used in the output of the MergeAction
nodes (see the attached regressions diffs and output). I also attached a
try that makes the tests pass. Sorry if I missed that it was already
discussed somewhere.
--
Marina Polyakova
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company
diff --git a/src/backend/nodes/outfuncs.c b/src/backend/nodes/outfuncs.c
index c8d9626..2411658 100644
--- a/src/backend/nodes/outfuncs.c
+++ b/src/backend/nodes/outfuncs.c
@@ -409,6 +409,68 @@ _outMergeAction(StringInfo str, const MergeAction *node)
}
static void
+_outInferClause(StringInfo str, const InferClause *node)
+{
+ WRITE_NODE_TYPE("INFERCLAUSE");
+
+ WRITE_NODE_FIELD(indexElems);
+ WRITE_NODE_FIELD(whereClause);
+ WRITE_STRING_FIELD(conname);
+ WRITE_LOCATION_FIELD(location);
+}
+
+static void
+_outOnConflictClause(StringInfo str, const OnConflictClause *node)
+{
+ WRITE_NODE_TYPE("ONCONFLICTCLAUSE");
+
+ WRITE_ENUM_FIELD(action, OnConflictAction);
+ WRITE_NODE_FIELD(infer);
+ WRITE_NODE_FIELD(targetList);
+ WRITE_NODE_FIELD(whereClause);
+ WRITE_LOCATION_FIELD(location);
+}
+
+static void
+_outInsertStmt(StringInfo str, const InsertStmt *node)
+{
+ WRITE_NODE_TYPE("INSERT");
+
+ WRITE_NODE_FIELD(relation);
+ WRITE_NODE_FIELD(cols);
+ WRITE_NODE_FIELD(selectStmt);
+ WRITE_NODE_FIELD(onConflictClause);
+ WRITE_NODE_FIELD(returningList);
+ WRITE_NODE_FIELD(withClause);
+ WRITE_ENUM_FIELD(override, OverridingKind);
+}
+
+static void
+_outDeleteStmt(StringInfo str, const DeleteStmt *node)
+{
+ WRITE_NODE_TYPE("DELETE");
+
+ WRITE_NODE_FIELD(relation);
+ WRITE_NODE_FIELD(usingClause);
+ WRITE_NODE_FIELD(whereClause);
+ WRITE_NODE_FIELD(returningList);
+ WRITE_NODE_FIELD(withClause);
+}
+
+static void
+_outUpdateStmt(StringInfo str, const UpdateStmt *node)
+{
+ WRITE_NODE_TYPE("UPDATE");
+
+ WRITE_NODE_FIELD(relation);
+ WRITE_NODE_FIELD(targetList);
+ WRITE_NODE_FIELD(whereClause);
+ WRITE_NODE_FIELD(fromClause);
+ WRITE_NODE_FIELD(returningList);
+ WRITE_NODE_FIELD(withClause);
+}
+
+static void
_outAppend(StringInfo str, const Append *node)
{
WRITE_NODE_TYPE("APPEND");
@@ -3682,6 +3744,21 @@ outNode(StringInfo str, const void *obj)
case T_MergeAction:
_outMergeAction(str, obj);
break;
+ case T_InferClause:
+ _outInferClause(str, obj);
+ break;
+ case T_OnConflictClause:
+ _outOnConflictClause(str, obj);
+ break;
+ case T_InsertStmt:
+ _outInsertStmt(str, obj);
+ break;
+ case T_DeleteStmt:
+ _outDeleteStmt(str, obj);
+ break;
+ case T_UpdateStmt:
+ _outUpdateStmt(str, obj);
+ break;
case T_Append:
_outAppend(str, obj);
break;
diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c
index 4518fa0..13891b1 100644
--- a/src/backend/nodes/readfuncs.c
+++ b/src/backend/nodes/readfuncs.c
@@ -1620,6 +1620,93 @@ _readMergeAction(void)
}
/*
+ * _readInferClause
+ */
+static InferClause *
+_readInferClause(void)
+{
+ READ_LOCALS(InferClause);
+
+ READ_NODE_FIELD(indexElems);
+ READ_NODE_FIELD(whereClause);
+ READ_STRING_FIELD(conname);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+/*
+ * _readOnConflictClause
+ */
+static OnConflictClause *
+_readOnConflictClause(void)
+{
+ READ_LOCALS(OnConflictClause);
+
+ READ_ENUM_FIELD(action, OnConflictAction);
+ READ_NODE_FIELD(infer);
+ READ_NODE_FIELD(targetList);
+ READ_NODE_FIELD(whereClause);
+ READ_LOCATION_FIELD(location);
+
+ READ_DONE();
+}
+
+/*
+ * _readInsertStmt
+ */
+static InsertStmt *
+_readInsertStmt(void)
+{
+ READ_LOCALS(InsertStmt);
+
+ READ_NODE_FIELD(relation);
+ READ_NODE_FIELD(cols);
+ READ_NODE_FIELD(selectStmt);
+ READ_NODE_FIELD(onConflictClause);
+ READ_NODE_FIELD(returningList);
+ READ_NODE_FIELD(withClause);
+ READ_ENUM_FIELD(override, OverridingKind);
+
+ READ_DONE();
+}
+
+/*
+ * _readDeleteStmt
+ */
+static DeleteStmt *
+_readDeleteStmt(void)
+{
+ READ_LOCALS(DeleteStmt);
+
+ READ_NODE_FIELD(relation);
+ READ_NODE_FIELD(usingClause);
+ READ_NODE_FIELD(whereClause);
+ READ_NODE_FIELD(returningList);
+ READ_NODE_FIELD(withClause);
+
+ READ_DONE();
+}
+
+/*
+ * _readUpdateStmt
+ */
+static UpdateStmt *
+_readUpdateStmt(void)
+{
+ READ_LOCALS(UpdateStmt);
+
+ READ_NODE_FIELD(relation);
+ READ_NODE_FIELD(targetList);
+ READ_NODE_FIELD(whereClause);
+ READ_NODE_FIELD(fromClause);
+ READ_NODE_FIELD(returningList);
+ READ_NODE_FIELD(withClause);
+
+ READ_DONE();
+}
+
+/*
* _readAppend
*/
static Append *
@@ -2620,6 +2707,16 @@ parseNodeString(void)
return_value = _readModifyTable();
else if (MATCH("MERGEACTION", 11))
return_value = _readMergeAction();
+ else if (MATCH("INFERCLAUSE", 11))
+ return_value = _readInferClause();
+ else if (MATCH("ONCONFLICTCLAUSE", 16))
+ return_value = _readOnConflictClause();
+ else if (MATCH("INSERT", 6))
+ return_value = _readInsertStmt();
+ else if (MATCH("DELETE", 6))
+ return_value = _readDeleteStmt();
+ else if (MATCH("UPDATE", 6))
+ return_value = _readUpdateStmt();
else if (MATCH("APPEND", 6))
return_value = _readAppend();
else if (MATCH("MERGEAPPEND", 11))
*** C:/Users/buildfarm/mpolyakova/postgresql/src/test/isolation/expected/merge-insert-update.out Wed Apr 4 14:42:57 2018
--- C:/Users/buildfarm/mpolyakova/postgresql/src/test/isolation/results/merge-insert-update.out Wed Apr 4 18:16:00 2018
***************
*** 1,6 ****
--- 1,12 ----
Parsed test spec with 2 sessions
starting permutation: merge1 c1 select2 c2
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge1: MERGE INTO target t USING (SELECT 1 as key, 'merge1' as val) s ON s.key = t.key WHEN NOT MATCHED THEN INSERT VALUES (s.key, s.val) WHEN MATCHED THEN UPDATE set val = t.val || ' updated by merge1';
step c1: COMMIT;
step select2: SELECT * FROM target;
***************
*** 10,17 ****
--- 16,35 ----
step c2: COMMIT;
starting permutation: merge1 c1 merge2 select2 c2
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge1: MERGE INTO target t USING (SELECT 1 as key, 'merge1' as val) s ON s.key = t.key WHEN NOT MATCHED THEN INSERT VALUES (s.key, s.val) WHEN MATCHED THEN UPDATE set val = t.val || ' updated by merge1';
step c1: COMMIT;
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge2: MERGE INTO target t USING (SELECT 1 as key, 'merge2' as val) s ON s.key = t.key WHEN NOT MATCHED THEN INSERT VALUES (s.key, s.val) WHEN MATCHED THEN UPDATE set val = t.val || ' updated by merge2';
step select2: SELECT * FROM target;
key val
***************
*** 21,26 ****
--- 39,50 ----
starting permutation: insert1 merge2 c1 select2 c2
step insert1: INSERT INTO target VALUES (1, 'insert1');
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge2: MERGE INTO target t USING (SELECT 1 as key, 'merge2' as val) s ON s.key = t.key WHEN NOT MATCHED THEN INSERT VALUES (s.key, s.val) WHEN MATCHED THEN UPDATE set val = t.val || ' updated by merge2'; <waiting ...>
step c1: COMMIT;
step merge2: <... completed>
***************
*** 30,36 ****
--- 54,72 ----
step c2: COMMIT;
starting permutation: merge1 merge2 c1 select2 c2
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge1: MERGE INTO target t USING (SELECT 1 as key, 'merge1' as val) s ON s.key = t.key WHEN NOT MATCHED THEN INSERT VALUES (s.key, s.val) WHEN MATCHED THEN UPDATE set val = t.val || ' updated by merge1';
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge2: MERGE INTO target t USING (SELECT 1 as key, 'merge2' as val) s ON s.key = t.key WHEN NOT MATCHED THEN INSERT VALUES (s.key, s.val) WHEN MATCHED THEN UPDATE set val = t.val || ' updated by merge2'; <waiting ...>
step c1: COMMIT;
step merge2: <... completed>
***************
*** 40,46 ****
--- 76,94 ----
step c2: COMMIT;
starting permutation: merge1 merge2 a1 select2 c2
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge1: MERGE INTO target t USING (SELECT 1 as key, 'merge1' as val) s ON s.key = t.key WHEN NOT MATCHED THEN INSERT VALUES (s.key, s.val) WHEN MATCHED THEN UPDATE set val = t.val || ' updated by merge1';
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge2: MERGE INTO target t USING (SELECT 1 as key, 'merge2' as val) s ON s.key = t.key WHEN NOT MATCHED THEN INSERT VALUES (s.key, s.val) WHEN MATCHED THEN UPDATE set val = t.val || ' updated by merge2'; <waiting ...>
step a1: ABORT;
step merge2: <... completed>
***************
*** 54,59 ****
--- 102,113 ----
step delete1: DELETE FROM target WHERE key = 1;
step insert1: INSERT INTO target VALUES (1, 'insert1');
step c1: COMMIT;
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge2: MERGE INTO target t USING (SELECT 1 as key, 'merge2' as val) s ON s.key = t.key WHEN NOT MATCHED THEN INSERT VALUES (s.key, s.val) WHEN MATCHED THEN UPDATE set val = t.val || ' updated by merge2';
step select2: SELECT * FROM target;
key val
***************
*** 64,69 ****
--- 118,129 ----
starting permutation: delete1 insert1 merge2 c1 select2 c2
step delete1: DELETE FROM target WHERE key = 1;
step insert1: INSERT INTO target VALUES (1, 'insert1');
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge2: MERGE INTO target t USING (SELECT 1 as key, 'merge2' as val) s ON s.key = t.key WHEN NOT MATCHED THEN INSERT VALUES (s.key, s.val) WHEN MATCHED THEN UPDATE set val = t.val || ' updated by merge2'; <waiting ...>
step c1: COMMIT;
step merge2: <... completed>
***************
*** 75,80 ****
--- 135,143 ----
starting permutation: delete1 insert1 merge2i c1 select2 c2
step delete1: DELETE FROM target WHERE key = 1;
step insert1: INSERT INTO target VALUES (1, 'insert1');
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
step merge2i: MERGE INTO target t USING (SELECT 1 as key, 'merge2' as val) s ON s.key = t.key WHEN MATCHED THEN UPDATE set val = t.val || ' updated by merge2';
step c1: COMMIT;
step select2: SELECT * FROM target;
======================================================================
*** C:/Users/buildfarm/mpolyakova/postgresql/src/test/isolation/expected/merge-delete.out Wed Apr 4 14:42:57 2018
--- C:/Users/buildfarm/mpolyakova/postgresql/src/test/isolation/results/merge-delete.out Wed Apr 4 18:16:01 2018
***************
*** 9,14 ****
--- 9,17 ----
step c2: COMMIT;
starting permutation: merge_delete c1 select2 c2
+ WARNING: could not dump unrecognized node type: 228
+ WARNING: could not dump unrecognized node type: 228
+ WARNING: could not dump unrecognized node type: 228
step merge_delete: MERGE INTO target t USING (SELECT 1 as key) s ON s.key = t.key WHEN MATCHED THEN DELETE;
step c1: COMMIT;
step select2: SELECT * FROM target;
***************
*** 26,31 ****
--- 29,37 ----
step c2: COMMIT;
starting permutation: merge_delete c1 update1 select2 c2
+ WARNING: could not dump unrecognized node type: 228
+ WARNING: could not dump unrecognized node type: 228
+ WARNING: could not dump unrecognized node type: 228
step merge_delete: MERGE INTO target t USING (SELECT 1 as key) s ON s.key = t.key WHEN MATCHED THEN DELETE;
step c1: COMMIT;
step update1: UPDATE target t SET val = t.val || ' updated by update1' WHERE t.key = 1;
***************
*** 37,42 ****
--- 43,54 ----
starting permutation: delete c1 merge2 select2 c2
step delete: DELETE FROM target t WHERE t.key = 1;
step c1: COMMIT;
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge2: MERGE INTO target t USING (SELECT 1 as key, 'merge2a' as val) s ON s.key = t.key WHEN NOT MATCHED THEN INSERT VALUES (s.key, s.val) WHEN MATCHED THEN UPDATE set key = t.key + 1, val = t.val || ' updated by ' || s.val;
step select2: SELECT * FROM target;
key val
***************
*** 45,52 ****
--- 57,73 ----
step c2: COMMIT;
starting permutation: merge_delete c1 merge2 select2 c2
+ WARNING: could not dump unrecognized node type: 228
+ WARNING: could not dump unrecognized node type: 228
+ WARNING: could not dump unrecognized node type: 228
step merge_delete: MERGE INTO target t USING (SELECT 1 as key) s ON s.key = t.key WHEN MATCHED THEN DELETE;
step c1: COMMIT;
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge2: MERGE INTO target t USING (SELECT 1 as key, 'merge2a' as val) s ON s.key = t.key WHEN NOT MATCHED THEN INSERT VALUES (s.key, s.val) WHEN MATCHED THEN UPDATE set key = t.key + 1, val = t.val || ' updated by ' || s.val;
step select2: SELECT * FROM target;
key val
***************
*** 65,70 ****
--- 86,94 ----
step c2: COMMIT;
starting permutation: merge_delete update1 c1 select2 c2
+ WARNING: could not dump unrecognized node type: 228
+ WARNING: could not dump unrecognized node type: 228
+ WARNING: could not dump unrecognized node type: 228
step merge_delete: MERGE INTO target t USING (SELECT 1 as key) s ON s.key = t.key WHEN MATCHED THEN DELETE;
step update1: UPDATE target t SET val = t.val || ' updated by update1' WHERE t.key = 1; <waiting ...>
step c1: COMMIT;
***************
*** 76,81 ****
--- 100,111 ----
starting permutation: delete merge2 c1 select2 c2
step delete: DELETE FROM target t WHERE t.key = 1;
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge2: MERGE INTO target t USING (SELECT 1 as key, 'merge2a' as val) s ON s.key = t.key WHEN NOT MATCHED THEN INSERT VALUES (s.key, s.val) WHEN MATCHED THEN UPDATE set key = t.key + 1, val = t.val || ' updated by ' || s.val; <waiting ...>
step c1: COMMIT;
step merge2: <... completed>
***************
*** 86,92 ****
--- 116,131 ----
step c2: COMMIT;
starting permutation: merge_delete merge2 c1 select2 c2
+ WARNING: could not dump unrecognized node type: 228
+ WARNING: could not dump unrecognized node type: 228
+ WARNING: could not dump unrecognized node type: 228
step merge_delete: MERGE INTO target t USING (SELECT 1 as key) s ON s.key = t.key WHEN MATCHED THEN DELETE;
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge2: MERGE INTO target t USING (SELECT 1 as key, 'merge2a' as val) s ON s.key = t.key WHEN NOT MATCHED THEN INSERT VALUES (s.key, s.val) WHEN MATCHED THEN UPDATE set key = t.key + 1, val = t.val || ' updated by ' || s.val; <waiting ...>
step c1: COMMIT;
step merge2: <... completed>
======================================================================
*** C:/Users/buildfarm/mpolyakova/postgresql/src/test/isolation/expected/merge-update.out Wed Apr 4 14:42:57 2018
--- C:/Users/buildfarm/mpolyakova/postgresql/src/test/isolation/results/merge-update.out Wed Apr 4 18:16:03 2018
***************
*** 1,6 ****
--- 1,12 ----
Parsed test spec with 2 sessions
starting permutation: merge1 c1 select2 c2
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge1:
MERGE INTO target t
USING (SELECT 1 as key, 'merge1' as val) s
***************
*** 18,23 ****
--- 24,35 ----
step c2: COMMIT;
starting permutation: merge1 c1 merge2a select2 c2
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge1:
MERGE INTO target t
USING (SELECT 1 as key, 'merge1' as val) s
***************
*** 28,33 ****
--- 40,51 ----
UPDATE set key = t.key + 1, val = t.val || ' updated by ' || s.val;
step c1: COMMIT;
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge2a:
MERGE INTO target t
USING (SELECT 1 as key, 'merge2a' as val) s
***************
*** 45,50 ****
--- 63,74 ----
step c2: COMMIT;
starting permutation: merge1 merge2a c1 select2 c2
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge1:
MERGE INTO target t
USING (SELECT 1 as key, 'merge1' as val) s
***************
*** 54,59 ****
--- 78,89 ----
WHEN MATCHED THEN
UPDATE set key = t.key + 1, val = t.val || ' updated by ' || s.val;
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge2a:
MERGE INTO target t
USING (SELECT 1 as key, 'merge2a' as val) s
***************
*** 73,78 ****
--- 103,114 ----
step c2: COMMIT;
starting permutation: merge1 merge2a a1 select2 c2
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge1:
MERGE INTO target t
USING (SELECT 1 as key, 'merge1' as val) s
***************
*** 82,87 ****
--- 118,129 ----
WHEN MATCHED THEN
UPDATE set key = t.key + 1, val = t.val || ' updated by ' || s.val;
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge2a:
MERGE INTO target t
USING (SELECT 1 as key, 'merge2a' as val) s
***************
*** 100,105 ****
--- 142,153 ----
step c2: COMMIT;
starting permutation: merge1 merge2b c1 select2 c2
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge1:
MERGE INTO target t
USING (SELECT 1 as key, 'merge1' as val) s
***************
*** 109,114 ****
--- 157,168 ----
WHEN MATCHED THEN
UPDATE set key = t.key + 1, val = t.val || ' updated by ' || s.val;
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge2b:
MERGE INTO target t
USING (SELECT 1 as key, 'merge2b' as val) s
***************
*** 128,133 ****
--- 182,193 ----
step c2: COMMIT;
starting permutation: merge1 merge2c c1 select2 c2
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge1:
MERGE INTO target t
USING (SELECT 1 as key, 'merge1' as val) s
***************
*** 137,142 ****
--- 197,208 ----
WHEN MATCHED THEN
UPDATE set key = t.key + 1, val = t.val || ' updated by ' || s.val;
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step merge2c:
MERGE INTO target t
USING (SELECT 1 as key, 'merge2c' as val) s
***************
*** 156,161 ****
--- 222,233 ----
step c2: COMMIT;
starting permutation: pa_merge1 pa_merge2a c1 pa_select2 c2
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step pa_merge1:
MERGE INTO pa_target t
USING (SELECT 1 as key, 'pa_merge1' as val) s
***************
*** 165,170 ****
--- 237,248 ----
WHEN MATCHED THEN
UPDATE set val = t.val || ' updated by ' || s.val;
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step pa_merge2a:
MERGE INTO pa_target t
USING (SELECT 1 as key, 'pa_merge2a' as val) s
***************
*** 184,189 ****
--- 262,273 ----
step c2: COMMIT;
starting permutation: pa_merge2 pa_merge2a c1 pa_select2 c2
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step pa_merge2:
MERGE INTO pa_target t
USING (SELECT 1 as key, 'pa_merge1' as val) s
***************
*** 193,198 ****
--- 277,288 ----
WHEN MATCHED THEN
UPDATE set key = t.key + 1, val = t.val || ' updated by ' || s.val;
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 227
+ WARNING: could not dump unrecognized node type: 229
step pa_merge2a:
MERGE INTO pa_target t
USING (SELECT 1 as key, 'pa_merge2a' as val) s
======================================================================
*** C:/Users/buildfarm/mpolyakova/postgresql/src/test/isolation/expected/merge-match-recheck.out Wed Apr 4 14:42:57 2018
--- C:/Users/buildfarm/mpolyakova/postgresql/src/test/isolation/results/merge-match-recheck.out Wed Apr 4 18:16:04 2018
***************
*** 2,7 ****
--- 2,16 ----
starting permutation: update1 merge_status c2 select1 c1
step update1: UPDATE target t SET balance = balance + 10, val = t.val || ' updated by update1' WHERE t.key = 1;
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
step merge_status:
MERGE INTO target t
USING (SELECT 1 as key) s
***************
*** 23,28 ****
--- 32,46 ----
starting permutation: update2 merge_status c2 select1 c1
step update2: UPDATE target t SET status = 's2', val = t.val || ' updated by update2' WHERE t.key = 1;
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
step merge_status:
MERGE INTO target t
USING (SELECT 1 as key) s
***************
*** 44,49 ****
--- 62,76 ----
starting permutation: update3 merge_status c2 select1 c1
step update3: UPDATE target t SET status = 's3', val = t.val || ' updated by update3' WHERE t.key = 1;
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
step merge_status:
MERGE INTO target t
USING (SELECT 1 as key) s
***************
*** 65,70 ****
--- 92,106 ----
starting permutation: update5 merge_status c2 select1 c1
step update5: UPDATE target t SET status = 's5', val = t.val || ' updated by update5' WHERE t.key = 1;
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
step merge_status:
MERGE INTO target t
USING (SELECT 1 as key) s
***************
*** 86,91 ****
--- 122,136 ----
starting permutation: update_bal1 merge_bal c2 select1 c1
step update_bal1: UPDATE target t SET balance = 50, val = t.val || ' updated by update_bal1' WHERE t.key = 1;
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
+ WARNING: could not dump unrecognized node type: 229
step merge_bal:
MERGE INTO target t
USING (SELECT 1 as key) s
======================================================================
test read-only-anomaly ... ok
test read-only-anomaly-2 ... ok
test read-only-anomaly-3 ... ok
test read-write-unique ... ok
test read-write-unique-2 ... ok
test read-write-unique-3 ... ok
test read-write-unique-4 ... ok
test simple-write-skew ... ok
test receipt-report ... ok
test temporal-range-integrity ... ok
test project-manager ... ok
test classroom-scheduling ... ok
test total-cash ... ok
test referential-integrity ... ok
test ri-trigger ... ok
test partial-index ... ok
test two-ids ... ok
test multiple-row-versions ... ok
test index-only-scan ... ok
test deadlock-simple ... ok
test deadlock-hard ... ok
test deadlock-soft ... ok
test deadlock-soft-2 ... ok
test fk-contention ... ok
test fk-deadlock ... ok
test fk-deadlock2 ... ok
test eval-plan-qual ... ok
test lock-update-delete ... ok
test lock-update-traversal ... ok
test insert-conflict-do-nothing ... ok
test insert-conflict-do-nothing-2 ... ok
test insert-conflict-do-update ... ok
test insert-conflict-do-update-2 ... ok
test insert-conflict-do-update-3 ... ok
test insert-conflict-toast ... ok
test merge-insert-update ... FAILED
test merge-delete ... FAILED
test merge-update ... FAILED
test merge-match-recheck ... FAILED
test delete-abort-savept ... ok
test delete-abort-savept-2 ... ok
test aborted-keyrevoke ... ok
test multixact-no-deadlock ... ok
test multixact-no-forget ... ok
test lock-committed-update ... ok
test lock-committed-keyupdate ... ok
test update-locked-tuple ... ok
test propagate-lock-delete ... ok
test tuplelock-conflict ... ok
test tuplelock-update ... ok
test freeze-the-dead ... ok
test nowait ... ok
test nowait-2 ... ok
test nowait-3 ... ok
test nowait-4 ... ok
test nowait-5 ... ok
test skip-locked ... ok
test skip-locked-2 ... ok
test skip-locked-3 ... ok
test skip-locked-4 ... ok
test drop-index-concurrently-1 ... ok
test multiple-cic ... ok
test alter-table-1 ... ok
test alter-table-2 ... ok
test alter-table-3 ... ok
test alter-table-4 ... ok
test create-trigger ... ok
test sequence-ddl ... ok
test async-notify ... ok
test vacuum-reltuples ... ok
test timeouts ... ok
test vacuum-concurrent-drop ... ok
test predicate-gist ... ok
test predicate-gin ... ok