postgresql/src/include/nodes
Dean Rasheed 6d2de076cb Fix EvalPlanQual rechecking during MERGE.
Under some circumstances, concurrent MERGE operations could lead to
inconsistent results, that varied according the plan chosen. This was
caused by a lack of rowmarks on the source relation, which meant that
EvalPlanQual rechecking was not guaranteed to return the same source
tuples when re-running the join query.

Fix by ensuring that preprocess_rowmarks() sets up PlanRowMarks for
all non-target relations used in MERGE, in the same way that it does
for UPDATE and DELETE.

Per bug #18103. Back-patch to v15, where MERGE was introduced.

Dean Rasheed, reviewed by Richard Guo.

Discussion: https://postgr.es/m/18103-c4386baab8e355e3%40postgresql.org
2023-09-30 10:54:29 +01:00
..
.gitignore Automatically generate node support functions 2022-07-09 08:53:59 +02:00
bitmapset.h Require empty Bitmapsets to be represented as NULL. 2023-03-02 11:47:26 -05:00
execnodes.h Fix EvalPlanQual rechecking during MERGE. 2023-09-30 10:54:29 +01:00
extensible.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
lockoptions.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
makefuncs.h Don't include CaseTestExpr in JsonValueExpr.formatted_expr 2023-07-21 19:28:31 +09:00
memnodes.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
meson.build meson: Add dependencies to perl modules to various script invocations 2023-06-09 20:12:16 -07:00
miscnodes.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
multibitmapset.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeFuncs.h Fix typos in comments 2023-05-02 12:23:08 +09:00
nodes.h Support "Right Anti Join" plan shapes. 2023-04-05 16:59:09 -04:00
params.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
parsenodes.h Revert MAINTAIN privilege and pg_maintain predefined role. 2023-07-07 11:25:23 -07:00
pathnodes.h Update comments on CustomPath struct. 2023-08-03 17:15:01 +09:00
pg_list.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
plannodes.h Fix EvalPlanQual rechecking during MERGE. 2023-09-30 10:54:29 +01:00
primnodes.h Don't include CaseTestExpr in JsonValueExpr.formatted_expr 2023-07-21 19:28:31 +09:00
print.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
queryjumble.h Remove dependency to query text in JumbleQuery() 2023-06-28 08:59:36 +09:00
readfuncs.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
replnodes.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
subscripting.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
supportnodes.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
tidbitmap.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
value.h Update copyright for 2023 2023-01-02 15:00:37 -05:00