Claudio Freire wrote: > On Wed, Feb 7, 2018 at 8:52 PM, Alvaro Herrera <alvhe...@alvh.no-ip.org> > wrote: > >> Waiting as you say would be akin to what the patch does by putting > >> vacuum on its own parallel group. > > > > I don't think it's the same. We don't need to wait until all the > > concurrent tests are done -- we only need to wait until the transactions > > that were current when the delete finished are done, which is very > > different since each test runs tons of small transactions rather than > > one single big transaction. > > Um... maybe "lock pg_class" ?
I was thinking in first doing SELECT array_agg(DISTINCT virtualtransaction) vxids FROM pg_locks \gset and then in a DO block loop until SELECT DISTINCT virtualtransaction FROM pg_locks INTERSECT SELECT (unnest(:'vxids'::text[])); returns empty; something along those lines. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services