Teach map_partition_varattnos to handle whole-row expressions.
Robert Haas <rhaas@postgresql.org>
Teach map_partition_varattnos to handle whole-row expressions. Otherwise, partitioned tables with RETURNING expressions or subject to a WITH CHECK OPTION do not work properly. Amit Langote, reviewed by Amit Khandekar and Etsuro Fujita. A few comment changes by me. Discussion: http://postgr.es/m/9a39df80-871e-6212-0684-f93c83be4097@lab.ntt.co.jp
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/catalog/partition.c | modified | +15 −6 |
| src/backend/commands/tablecmds.c | modified | +9 −3 |
| src/backend/executor/nodeModifyTable.c | modified | +2 −2 |
| src/backend/parser/parse_utilcmd.c | modified | +3 −3 |
| src/backend/rewrite/rewriteManip.c | modified | +38 −9 |
| src/include/catalog/partition.h | modified | +2 −1 |
| src/include/rewrite/rewriteManip.h | modified | +1 −1 |
| src/test/regress/expected/insert.out | modified | +21 −0 |
| src/test/regress/expected/updatable_views.out | modified | +26 −0 |
| src/test/regress/sql/insert.sql | modified | +13 −0 |
| src/test/regress/sql/updatable_views.sql | modified | +27 −0 |
Discussion
- map_partition_varattnos() and whole-row vars 24 messages · 2017-07-26 → 2017-08-04