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