From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | pgsql-hackers(at)postgresql(dot)org,Robert Haas <robertmhaas(at)gmail(dot)com> |
Cc: | Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>,Michael Paquier <michael(dot)paquier(at)gmail(dot)com>,PostgreSQL mailing lists <pgsql-hackers(at)postgresql(dot)org>,Noah Misch <noah(at)leadboat(dot)com>,Jason Petersen <jason(at)citusdata(dot)com>,PostgreSQL mailing lists <pgsql-bugs(at)postgresql(dot)org> |
Subject: | Re: [HACKERS] Concurrent ALTER SEQUENCE RESTART Regression |
Date: | 2017-05-24 13:04:41 |
Message-ID: | 54DD1674-B9FC-4723-AC3E-890373889E25@anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs pgsql-hackers |
On May 24, 2017 6:57:08 AM EDT, Robert Haas <robertmhaas(at)gmail(dot)com> wrote:
>On Tue, May 23, 2017 at 11:25 PM, Andres Freund <andres(at)anarazel(dot)de>
>wrote:
>> On 2017-05-23 22:47:07 -0400, Robert Haas wrote:
>>> On Mon, May 22, 2017 at 11:42 AM, Andres Freund <andres(at)anarazel(dot)de>
>wrote:
>>> > Ooops.
>>> >
>>> > Two issues: Firstly, we get a value smaller than seqmin, obviously
>>> > that's not ok. But even if we'd error out, it'd imo still not be
>ok,
>>> > because we have a command that behaves partially transactionally
>>> > (keeping the seqmax/min transactionally), partially not (keeping
>the
>>> > current sequence state at -9).
>>>
>>> I don't really agree that this is broken.
>>
>> Just a quick clarification question: You did notice that nextval() in
>S1
>> after the rollback returned -9, despite seqmin being 0? I can see
>> erroring out being acceptable, but returning flat out wrong
>values....?
>
>I did see that. I'm unclear what you think it should do instead. I
>mean, it could notice that cur_val < min_val and return min_val, but
>that doesn't have a very good chance of being correct either. I
>suppose the aborted transaction could try to restore the old cur_val
>when it rolls back, but that's clearly the wrong thing when there's no
>DDL involved (plus I'm not sure it would even be safe to try to do
>that). Do you have an idea?
At the very least we'll have to error out. That's still not nice usability wise, but it sure beats returning flat out wrong values.
I suspect that the proper fix would be to use a different relfilenode after ddl, when changing the seq file itself (I.e. setval and restart). That seems like it'd be architecturally more appropriate, but also some work.
Andres
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.
From | Date | Subject | |
---|---|---|---|
Next Message | Florian Gossin | 2017-05-24 14:10:36 | Can't restore view |
Previous Message | Robert Haas | 2017-05-24 10:57:08 | Re: [HACKERS] Concurrent ALTER SEQUENCE RESTART Regression |
From | Date | Subject | |
---|---|---|---|
Next Message | Daniele Varrazzo | 2017-05-24 13:26:42 | Re: [HACKERS] translatable string fixes |
Previous Message | Robert Haas | 2017-05-24 12:52:17 | Re: Is it possible to get query_string value in an event trigger? |