Re: Concurrent ALTER SEQUENCE RESTART Regression

From: Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>
To: Jason Petersen <jason(at)citusdata(dot)com>, pgsql-bugs(at)postgresql(dot)org
Subject: Re: Concurrent ALTER SEQUENCE RESTART Regression
Date: 2017-05-02 14:53:19
Message-ID: c1864238-8f82-f8b5-b4d0-de351d3fbd9b@2ndquadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs pgsql-hackers

On 4/24/17 15:52, Jason Petersen wrote:
> 1. Create a new sequence: CREATE SEQUENCE my_seq;
> 2. Start this loop twice in different shells:
> while true; do psql -1Xtc 'ALTER SEQUENCE my_seq RESTART 1'; done

> Each loop should repeatedly succeed and simply print ALTER SEQUENCE over and over.

> The output stream is punctuated by occasional "ERROR: tuple concurrently updated" messages.

This message comes from the pg_sequence catalog update. But in the case
of the RESTART clause, you don't need to update the catalog, because it
just needs to write to the sequence's relation. So I have tweaked the
code a little to omit the catalog update if it's not needed. Your test
case works without errors now.

--
Peter Eisentraut http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Peter Eisentraut 2017-05-02 15:05:38 Re: Concurrent ALTER SEQUENCE RESTART Regression
Previous Message Peter Eisentraut 2017-05-02 14:37:07 Re: Concurrent ALTER SEQUENCE RESTART Regression

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Eisentraut 2017-05-02 15:05:38 Re: Concurrent ALTER SEQUENCE RESTART Regression
Previous Message Petr Jelinek 2017-05-02 14:48:21 Re: Logical replication in the same cluster