-- We have different output files for the executor. The executor -- with PG10 behaves like non-executor PG11, and with PG11 it -- behaves like non-executor PG10. -- print whether we're using version > 10 to make version-specific tests clear SHOW server_version \gset SELECT substring(:'server_version', '\d+')::int > 10 AS version_above_ten; version_above_ten ------------------- f (1 row) SELECT citus.mitmproxy('conn.allow()'); mitmproxy ----------- (1 row) SET citus.shard_count = 1; SET citus.shard_replication_factor = 2; -- one shard per worker SET citus.multi_shard_commit_protocol TO '1pc'; CREATE TABLE vacuum_test (key int, value int); SELECT create_distributed_table('vacuum_test', 'key'); create_distributed_table -------------------------- (1 row) SELECT citus.clear_network_traffic(); clear_network_traffic ----------------------- (1 row) SELECT citus.mitmproxy('conn.onQuery(query="^VACUUM").kill()'); mitmproxy ----------- (1 row) VACUUM vacuum_test; ERROR: server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. CONTEXT: while executing command on localhost:9060 SELECT citus.mitmproxy('conn.onQuery(query="^ANALYZE").kill()'); mitmproxy ----------- (1 row) ANALYZE vacuum_test; ERROR: server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. CONTEXT: while executing command on localhost:9060 SELECT citus.mitmproxy('conn.onQuery(query="^COMMIT").kill()'); mitmproxy ----------- (1 row) ANALYZE vacuum_test; WARNING: connection not open CONTEXT: while executing command on localhost:9060 WARNING: failed to commit transaction on localhost:9060 WARNING: connection not open CONTEXT: while executing command on localhost:9060 -- ANALYZE transactions being critical is an open question, see #2430 UPDATE pg_dist_shard_placement SET shardstate = 1 WHERE shardid IN ( SELECT shardid FROM pg_dist_shard WHERE logicalrelid = 'vacuum_test'::regclass ); -- the same tests with cancel SELECT citus.mitmproxy('conn.onQuery(query="^VACUUM").cancel(' || pg_backend_pid() || ')'); mitmproxy ----------- (1 row) VACUUM vacuum_test; ERROR: canceling statement due to user request SELECT citus.mitmproxy('conn.onQuery(query="^ANALYZE").cancel(' || pg_backend_pid() || ')'); mitmproxy ----------- (1 row) ANALYZE vacuum_test; ERROR: canceling statement due to user request -- cancel during COMMIT should be ignored SELECT citus.mitmproxy('conn.onQuery(query="^COMMIT").cancel(' || pg_backend_pid() || ')'); mitmproxy ----------- (1 row) ANALYZE vacuum_test; SELECT citus.mitmproxy('conn.allow()'); mitmproxy ----------- (1 row) CREATE TABLE other_vacuum_test (key int, value int); SELECT create_distributed_table('other_vacuum_test', 'key'); create_distributed_table -------------------------- (1 row) SELECT citus.mitmproxy('conn.onQuery(query="^VACUUM.*other").kill()'); mitmproxy ----------- (1 row) VACUUM vacuum_test, other_vacuum_test; ERROR: syntax error at or near "," LINE 1: VACUUM vacuum_test, other_vacuum_test; ^ SELECT citus.mitmproxy('conn.onQuery(query="^VACUUM.*other").cancel(' || pg_backend_pid() || ')'); mitmproxy ----------- (1 row) VACUUM vacuum_test, other_vacuum_test; ERROR: syntax error at or near "," LINE 1: VACUUM vacuum_test, other_vacuum_test; ^ -- ==== Clean up, we're done here ==== SELECT citus.mitmproxy('conn.allow()'); mitmproxy ----------- (1 row) DROP TABLE vacuum_test, other_vacuum_test;