From: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
---|---|
To: | Kyle Kingsbury <aphyr(at)jepsen(dot)io> |
Cc: | PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Potential G2-item cycles under serializable isolation |
Date: | 2020-06-02 23:13:02 |
Message-ID: | CA+hUKGJNbDc6haq1VZbNsLWXJbcxWVcZyEiVOWzupmJiKC-PeA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
On Wed, Jun 3, 2020 at 4:19 AM Kyle Kingsbury <aphyr(at)jepsen(dot)io> wrote:
> https://github.com/jepsen-io/jepsen/blob/f47eb25ab32529a7b66f1dfdd3b5ef2fc84ed778/stolon/src/jepsen/stolon/append.clj#L31-L108
I'm looking into this, but just by the way, you said:
; OK, so first worrying thing: why can this throw duplicate key errors if
; it's executed with "if not exists"?
(try
(j/execute! conn
[(str "create table if not exists " (table-name i)
....
That's (unfortunately) a known problem under concurrency. It'd be
very nice to fix that, but it's an independent problem relating to DDL
(not just tables, and not just IF EXISTS DDL, but anything modifying
catalogues can race in this way and miss out on "nice" error messages
or the IF EXISTS no-op). Here's a good short summary:
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Geoghegan | 2020-06-02 23:17:42 | Re: Potential G2-item cycles under serializable isolation |
Previous Message | Tom Lane | 2020-06-02 22:53:48 | Re: Explicit deterministic COLLATE fails with pattern matching operations on column with non-deterministic collation |