Re: [HACKERS] UPDATE of partition key
Tom Lane <tgl@sss.pgh.pa.us>
Robert Haas <robertmhaas@gmail.com> writes: > Committed with a bunch of mostly-cosmetic revisions. Buildfarm member skink has been unhappy since this patch went in. Running the regression tests under valgrind easily reproduces the failure. Now, I might be wrong about which of the patches committed on Friday caused the unhappiness, but the valgrind backtrace sure looks like it's to do with partition routing: ==00:00:05:49.683 17549== Invalid read of size 4 ==00:00:05:49.683 17549== at 0x62A8BA: ExecCleanupTupleRouting (execPartition.c:483) ==00:00:05:49.683 17549== by 0x6483AA: ExecEndModifyTable (nodeModifyTable.c:2682) ==00:00:05:49.683 17549== by 0x627139: standard_ExecutorEnd (execMain.c:1604) ==00:00:05:49.683 17549== by 0x7780AF: ProcessQuery (pquery.c:206) ==00:00:05:49.683 17549== by 0x7782E4: PortalRunMulti (pquery.c:1286) ==00:00:05:49.683 17549== by 0x778AAF: PortalRun (pquery.c:799) ==00:00:05:49.683 17549== by 0x774E4C: exec_simple_query (postgres.c:1120) ==00:00:05:49.683 17549== by 0x776C17: PostgresMain (postgres.c:4143) ==00:00:05:49.683 17549== by 0x6FA419: PostmasterMain (postmaster.c:4412) ==00:00:05:49.683 17549== by 0x66E51F: main (main.c:228) ==00:00:05:49.683 17549== Address 0xe25e298 is 2,088 bytes inside a block of size 32,768 alloc'd ==00:00:05:49.683 17549== at 0x4A06A2E: malloc (vg_replace_malloc.c:270) ==00:00:05:49.683 17549== by 0x89EB15: AllocSetAlloc (aset.c:945) ==00:00:05:49.683 17549== by 0x8A7577: palloc (mcxt.c:848) ==00:00:05:49.683 17549== by 0x671969: new_list (list.c:68) ==00:00:05:49.683 17549== by 0x672859: lappend_oid (list.c:169) ==00:00:05:49.683 17549== by 0x55330E: find_inheritance_children (pg_inherits.c:144) ==00:00:05:49.683 17549== by 0x553447: find_all_inheritors (pg_inherits.c:203) ==00:00:05:49.683 17549== by 0x62AC76: ExecSetupPartitionTupleRouting (execPartition.c:68) ==00:00:05:49.683 17549== by 0x64949D: ExecInitModifyTable (nodeModifyTable.c:2232) ==00:00:05:49.683 17549== by 0x62BBE8: ExecInitNode (execProcnode.c:174) ==00:00:05:49.683 17549== by 0x627B53: standard_ExecutorStart (execMain.c:1043) ==00:00:05:49.683 17549== by 0x778046: ProcessQuery (pquery.c:156) (This is my local result, but skink's log looks about the same.) regards, tom lane
Commits
-
Avoid referencing off the end of subplan_partition_offsets.
- 945f71db8452 11.0 landed
-
Allow UPDATE to move rows between partitions.
- 2f178441044b 11.0 landed
-
Remove useless lookup of root partitioned rel in ExecInitModifyTable().
- dca48d145e0e 11.0 cited
-
Factor error generation out of ExecPartitionCheck.
- 19c47e7c8202 11.0 landed
-
Minor preparatory refactoring for UPDATE row movement.
- ef6087ee5fa8 11.0 landed
-
Simplify and encapsulate tuple routing support code.
- cc6337d2fed5 11.0 landed
-
Avoid coercing a whole-row variable that is already coerced.
- 1c497fa72df7 11.0 landed
-
Use ResultRelInfo ** rather than ResultRelInfo * for tuple routing.
- 60f7c0abef03 11.0 landed
-
Make RelationGetPartitionDispatchInfo expand depth-first.
- 77b6b5e9ceca 11.0 cited
-
Expand partitioned tables in PartDesc order.
- 30833ba154e0 11.0 cited
-
Use a real RT index when setting up partition tuple routing.
- f81a91db4d1c 10.0 cited
-
Fix transition tables for partition/inheritance.
- 501ed02cf6f4 10.0 cited
-
Fix confusion about number of subplans in partitioned INSERT setup.
- 78a030a44196 10.0 cited
-
Prevent BEFORE triggers from violating partitioning constraints.
- 15ce775faa42 10.0 cited
-
Fire per-statement triggers on partitioned tables.
- e180c8aa8caf 10.0 cited
-
Fix reporting of violations in ExecConstraints, again.
- c0a8ae7be392 10.0 cited
-
Don't scan partitioned tables.
- d3cc37f1d801 10.0 cited
-
Allow FDWs to push down quals without breaking EvalPlanQual rechecks.
- 5fc4c26db512 9.6.0 cited