in pg10: ts=# begin;VACUUM FULL pg_toast.pg_toast_2619; BEGIN ERROR: 25001: VACUUM cannot run inside a transaction block LOCATION: PreventTransactionChain, xact.c:3167 => sounds fine
$ psql postgres -c 'SELECT 1; VACUUM pg_statistic' ERROR: VACUUM cannot be executed from a function or multi-command string => sounds fine In pg11b1: pryzbyj=# begin;VACUUM FULL pg_toast.pg_toast_2619; BEGIN ERROR: 25001: VACUUM cannot run inside a transaction block LOCATION: PreventInTransactionBlock, xact.c:3163 => sounds fine [pryzbyj@dev ~]$ psql -c 'SELECT 1; VACUUM pg_statistic' ERROR: VACUUM cannot run inside a transaction block => Error message seems off?? I couldn't figure out how to \set VERBOSITY verbose inside a psql command (??), but strace shows for v10: SERROR\0VERROR\0C25001\0MVACUUM cannot be executed from a function or multi-command string\0Fxact.c\0L3187\0RPreventTransactionChain And for v11: SERROR\0VERROR\0C25001\0MVACUUM cannot run inside a transaction block\0Fxact.c\0L3163\0RPreventInTransactionBlock Function renamed by commit 04700b685f31508036456bea4d92533e5ceee9d6. So behavior change maybe caused by 6eb52da3948dc8bc7c8a61cbacac14823b670c58 ? Justin