diff options
| author | Amit Langote <amitlan@postgresql.org> | 2026-01-23 10:17:43 +0900 |
|---|---|---|
| committer | Amit Langote <amitlan@postgresql.org> | 2026-01-23 10:23:30 +0900 |
| commit | f9a468c664a4605e3080383ffaa302057d56feb1 (patch) | |
| tree | 24392b7e40d5a2996a18c9a775aafb966e260318 /src/test/regress/sql/strings.sql | |
| parent | 4b760a181ab220f425a6fe8e08335891b0ba62d4 (diff) | |
Fix bogus ctid requirement for dummy-root partitioned targets
ExecInitModifyTable() unconditionally required a ctid junk column even
when the target was a partitioned table. This led to spurious "could
not find junk ctid column" errors when all children were excluded and
only the dummy root result relation remained.
A partitioned table only appears in the result relations list when all
leaf partitions have been pruned, leaving the dummy root as the sole
entry. Assert this invariant (nrels == 1) and skip the ctid requirement.
Also adjust ExecModifyTable() to tolerate invalid ri_RowIdAttNo for
partitioned tables, which is safe since no rows will be processed in
this case.
Bug: #19099
Reported-by: Alexander Lakhin <exclusion@gmail.com>
Author: Amit Langote <amitlangote09@gmail.com>
Reviewed-by: Tender Wang <tndrwang@gmail.com>
Reviewed-by: Kirill Reshke <reshkekirill@gmail.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/19099-e05dcfa022fe553d%40postgresql.org
Backpatch-through: 14
Diffstat (limited to 'src/test/regress/sql/strings.sql')
0 files changed, 0 insertions, 0 deletions
