Re: UPDATE of partition key
Robert Haas <robertmhaas@gmail.com>
On Fri, May 12, 2017 at 3:07 AM, Amit Kapila <amit.kapila16@gmail.com> wrote: > I agree with you that it might not be straightforward to make it work, > but now that earliest it can go is v11, do we want to try doing > something other than just documenting it. What I could read from this > e-mail thread is that you are intending towards just documenting it > for the first cut of this feature. However, both Greg and Simon are of > opinion that we should do something about this and even patch Author > (Amit Khandekar) has shown some inclination to do something about this > point (return error to the user in some way), so I think we can't > ignore this point. > > I think now that we have some more time, it is better to try something > based on a couple of ideas floating in this thread to address this > point and see if we can come up with something doable without a big > architecture change. > > What is your take on this point now? I still don't think it's worth spending a bit on this, especially not with WARM probably gobbling up multiple bits. Reclaiming the bits seems like a good idea, but spending one on this still seems to me like it's probably not the best use of our increasingly-limited supply of infomask bits. Now, Simon and Greg may still feel otherwise, of course. I could get behind providing an option to turn this behavior on and off at the level of the partitioned table. That would use a reloption rather than an infomask bit, so no scarce resource is being consumed. I suspect that most people don't update the partition keys at all (so they don't care either way) and the ones who do are probably either depending on EPQ (in which case they most likely want to just disallow all UPDATE-row-movement) or not (in which case they again don't care). If I understand correctly, the only people who will benefit from consuming an infomask bit are the people who update their partition keys AND depend on EPQ BUT only for non-key updates AND need the system to make sure that they don't accidentally rely on it for the case of an EPQ update. That seems (to me, anyway) like it's got to be a really small percentage of actual users, but I just work here. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
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