Andreas Karlsson <andreas@proxel.se> writes:
> On 1/3/26 1:22 PM, Marcos Pegoraro wrote:
>> Em sáb., 3 de jan. de 2026 às 03:35, Pavel Stehule
>> <pavel.stehule@gmail.com <mailto:pavel.stehule@gmail.com>> escreveu:
>>> here is a patch (with small regress test)
>> An anonymous block doesn't accept vacuum too.
>> Wouldn't it be better to specify what kind of block you are running
>> instead of function, procedure or anonymous block ?
I don't think PreventInTransactionBlock has ready access to that
information.
> A potential third option would be to take your solution but to add a
> HINT about that it needs to run as a top-level statement outside any
> transactions, but I kinda liked how simple the original patch was.
Yeah, I like just adding "or procedure" and calling it good.
I do not think we need a regression test, either ...
Poking around, I also found this:
src/backend/commands/wait.c: errdetail("WAIT FOR cannot be executed from a function or a
procedureor within a transaction with an isolation level higher than READ COMMITTED."));
which is also not great grammar. What do you think of "WAIT FOR
cannot be executed from a function or procedure, nor within a
transaction with an isolation level higher than READ COMMITTED." ?
regards, tom lane