Luis Carril wrote: > The transaction isolation level is serializable. This situation does not > normally arise, because parallel query plans are not generated when the > transaction isolation level is serializable. However, it can happen if the > transaction isolation level is changed to serializable after the plan is > generated and before it is executed.
> BEGIN; > SET TRANSACTION ISOLATION LEVEL READ COMMITTED, READ ONLY; > EXPLAIN (COSTS OFF) SELECT avg(a) FROM parallel_big; > SET TRANSACTION ISOLATION LEVEL SERIALIZABLE, READ ONLY; > EXPLAIN ANALYZE SELECT avg(a) FROM parallel_big; > COMMIT; > > > But complains that after the first SELECT (even if it is in an EXPLAIN) > the isolation level cannot be changed, so the transaction is aborted and the > SELECT is never executed (even sequentially). > > > Is there any way to test the possible behavior described in the > documentation? I think you would do a PREPARE in a regular transaction, then open a transaction changing the isolation level to serializable and try the EXPLAIN EXECUTE there. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services