On Wed, Aug 5, 2020 at 4:19 PM Tom Lane <t...@sss.pgh.pa.us> wrote: > After thinking about it for a little bit, I'm envisioning a test module > that can be loaded into a session, and then it gets into the planner_hook, > and what it does is after each planner execution, take and release an > advisory lock with some selectable ID. Then we can construct > isolationtester specs that do something like > > session 1 session 2 > > LOAD test-module; > SET custom_guc_for_lock_id = n; > prepare test tables; > > SELECT pg_advisory_lock(n); > > SELECT victim-query-here; > ... after planning, query blocks on lock > > perform DDL changes; > SELECT pg_advisory_unlock(n); > > ... query executes with now-stale plan
Very sneaky! -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company