Re: [BUGS] BUG #14825: enum type: unsafe use?
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Andrew Dunstan <andrew.dunstan@2ndquadrant.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Stephen Frost <sfrost@snowman.net>, Bruce Momjian <bruce@momjian.us>, "David E. Wheeler" <david@justatheory.com>, Christophe Pettus <christophe.pettus@pgexperts.com>, pgsql-bugs@postgresql.org, pgsql-hackers@postgresql.org
Date: 2017-10-04T01:38:56Z
Lists: pgsql-bugs, pgsql-hackers
On 2017-10-03 19:53:41 -0400, Andrew Dunstan wrote: > On 09/27/2017 02:52 PM, Tom Lane wrote: > > Andrew Dunstan <andrew.dunstan@2ndquadrant.com> writes: > >> At this stage on reflection I agree it should be pulled :-( > > That seems to be the consensus, so I'll go make it happen. > > > >> I'm not happy about the idea of marking an input function as not > >> parallel safe, certainly not without a good deal of thought and > >> discussion that we don't have time for this cycle. > > I think the way forward is to do what we had as of HEAD (984c92074), > > but add the ability to transmit the blacklist table to parallel > > workers. Since we expect the blacklist table would be empty most of > > the time, this should be close to no overhead in practice. I concur > > that the idea of marking the relevant functions parallel-restricted is > > probably not as safe a fix as I originally thought, and it's not a > > very desirable restriction even if it did fix the problem. > Do you have any suggestion as to how we should transmit the blacklist to > parallel workers? How about storing them in the a dshash table instead of dynahash? Similar to how we're now dealing with the shared typmod registry stuff? It should be fairly simple to now simply add a new struct Session member shared_enum_whatevs_table. Greetings, Andres Freund
Commits
-
Revert to 9.6 treatment of ALTER TYPE enumtype ADD VALUE.
- 28e072707685 11.0 landed
- 93a1af0b3f63 10.0 landed
-
Remove heuristic same-transaction test from check_safe_enum_use().
- 01c5de88ff24 10.0 landed
- 984c92074d84 11.0 landed
-
Use a blacklist to distinguish original from add-on enum values.
- 175774d2932d 10.0 landed
- 1635e80d30b1 11.0 landed
-
Add support for coordinating record typmods among parallel workers.
- cc5f81366c36 11.0 cited