Re: Regression tests vs SERIALIZABLE

Thomas Munro <thomas.munro@gmail.com>

From: Thomas Munro <thomas.munro@gmail.com>
To: Bharath Rupireddy <bharath.rupireddyforpostgres@gmail.com>
Cc: pgsql-hackers <pgsql-hackers@postgresql.org>, Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Date: 2021-03-15T05:33:29Z
Lists: pgsql-hackers

Attachments

On Mon, Mar 15, 2021 at 6:14 PM Bharath Rupireddy
<bharath.rupireddyforpostgres@gmail.com> wrote:
> On Mon, Mar 15, 2021 at 9:54 AM Thomas Munro <thomas.munro@gmail.com> wrote:
> > While reviewing the patch for parallel REFRESH MATERIALIZED VIEW, I
> > noticed that select_parallel.sql and write_parallel.sql believe that
> > (1) the tests are supposed to work with serializable as a default
> > isolation level, and (2) parallelism would be inhibited by that, so
> > they'd better use something else explicitly.  Here's a patch to update
> > that second thing in light of commit bb16aba5.  I don't think it
> > matters enough to bother back-patching it.
>
> +1, patch basically LGTM. I have one point - do we also need to remove
> "begin isolation level repeatable read;" in aggreates.sql, explain.sql
> and insert_parallel.sql? And in insert_parallel.sql, the comment also
> says "Serializable isolation would disable parallel query", which is
> not true after bb16aba5. Do we need to change that too?

Yeah, you're right.  That brings us to the attached.

Commits

  1. Fix transaction.sql tests in higher isolation levels.

  2. Drop SERIALIZABLE workaround from parallel query tests.

  3. Fix behavior of AND CHAIN outside of explicit transaction blocks

  4. Enable parallel query with SERIALIZABLE isolation.