From: | Andrew Dunstan <andrew(dot)dunstan(at)2ndquadrant(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, balazs(at)obiserver(dot)hu |
Cc: | pgsql-bugs(at)postgresql(dot)org, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: BUG #14825: enum type: unsafe use? |
Date: | 2017-09-23 01:27:29 |
Message-ID: | 3cece400-af56-7145-2e65-f044de1b0b68@2ndQuadrant.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs pgsql-hackers |
On 09/22/2017 05:46 PM, Tom Lane wrote:
> balazs(at)obiserver(dot)hu writes:
>> PostgreSQL version: 10beta4
>> testdb=# begin;
>> BEGIN
>> testdb=# create type enumtype as enum ('v1', 'v2');
>> CREATE TYPE
>> testdb=# alter type enumtype owner to testrole;
>> ALTER TYPE
>> testdb=# create table testtable (enumcolumn enumtype not null default 'v1');
>> ERROR: unsafe use of new value "v1" of enum type enumtype
>> HINT: New enum values must be committed before they can be used.
> Hmm, that's pretty annoying. It's happening be
> cause check_safe_enum_use
> insists that the enum's pg_type entry not be updated-in-transaction.
> We thought that the new rules instituted by 15bc038f9 would be generally
> more convenient to use than the old ones --- but this example shows
> that, for example, pg_dump scripts involving enums often could not
> be restored inside a single transaction.
>
> I'm not sure if that qualifies as a stop-ship problem, but it ain't
> good, for sure. We need to look at whether we should revert 15bc038f9
> or somehow revise its rules.
:-(
The only real problem comes from adding a value to an enum that has been
created in an earlier transaction and then using that enum value. What
we're doing here is essentially a heuristic test for that condition, and
we're getting some false positives. I wonder if we wouldn't be better
doing this more directly, keeping a per-transaction hash of unsafe enum
values (which will almost always be empty). It might even speed up the
check.
cheers
andrew
--
Andrew Dunstan https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Joel Hoffman | 2017-09-23 02:49:22 | Re: Multiple evaluation of single reference to function with out parameters |
Previous Message | David G. Johnston | 2017-09-23 00:22:24 | Re: Multiple evaluation of single reference to function with out parameters |
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2017-09-23 01:28:46 | Re: Built-in plugin for logical decoding output |
Previous Message | Robert Haas | 2017-09-23 00:58:16 | Re: CREATE COLLATION does not sanitize ICU's BCP 47 language tags. Should it? |