postgresql/src/include/executor
Dean Rasheed 421d7a1579 Fix replica identity check for MERGE.
When executing a MERGE, check that the target relation supports all
actions mentioned in the MERGE command. Specifically, check that it
has a REPLICA IDENTITY if it publishes updates or deletes and the
MERGE command contains update or delete actions. Failing to do this
can silently break replication.

Author: Zhijie Hou <houzj.fnst@fujitsu.com>
Reviewed-by: Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>
Reviewed-by: Dean Rasheed <dean.a.rasheed@gmail.com>
Tested-by: Chao Li <li.evan.chao@gmail.com>
Discussion: https://postgr.es/m/OS3PR01MB57180C87E43A679A730482DF94B62@OS3PR01MB5718.jpnprd01.prod.outlook.com
Backpatch-through: 15
2025-09-04 11:48:51 +01:00
..
execAsync.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
execdebug.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
execdesc.h Simplify executor's determination of whether to use parallelism. 2024-12-09 14:38:19 -05:00
execExpr.h Fix NULLIF()'s handling of read-write expanded objects. 2024-11-25 18:09:10 -05:00
execParallel.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
execPartition.h Revert "Move PartitionPruneInfo out of plan nodes into PlannedStmt" 2023-05-04 12:09:59 +02:00
executor.h Fix replica identity check for MERGE. 2025-09-04 11:48:51 +01:00
functions.h Fix confusion about the return rowtype of SQL-language procedures. 2024-03-12 18:16:10 -04:00
hashjoin.h Pre-beta mechanical code beautification. 2023-05-19 17:24:48 -04:00
instrument.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeAgg.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeAppend.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeBitmapAnd.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeBitmapHeapscan.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeBitmapIndexscan.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeBitmapOr.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeCtescan.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeCustom.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeForeignscan.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeFunctionscan.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeGather.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeGatherMerge.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeGroup.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeHash.h Parallel Hash Full Join. 2023-03-31 11:34:03 +13:00
nodeHashjoin.h Allocate hash join files in a separate memory context 2023-05-19 17:17:58 +02:00
nodeIncrementalSort.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeIndexonlyscan.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeIndexscan.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeLimit.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeLockRows.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeMaterial.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeMemoize.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeMergeAppend.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeMergejoin.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeModifyTable.h Make new GENERATED-expressions code more bulletproof. 2023-01-15 13:14:52 -05:00
nodeNamedtuplestorescan.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeNestloop.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeProjectSet.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeRecursiveunion.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeResult.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeSamplescan.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeSeqscan.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeSetOp.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeSort.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeSubplan.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeSubqueryscan.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeTableFuncscan.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeTidrangescan.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeTidscan.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeUnique.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeValuesscan.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeWindowAgg.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
nodeWorktablescan.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
spi.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
spi_priv.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
tablefunc.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
tqueue.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
tstoreReceiver.h Update copyright for 2023 2023-01-02 15:00:37 -05:00
tuptable.h Remove obsolete comment 2023-06-05 15:33:08 +02:00