Thread: 11 beta 3 / ROLLBACK TO SAVEPOINT regression in PLPGSQL

11 beta 3 / ROLLBACK TO SAVEPOINT regression in PLPGSQL

From
"David Klika"
Date:

This routine works well on postgres v10:

 

CREATE FUNCTION test_savepoint() RETURNS VOID AS $body$

BEGIN

  SAVEPOINT my_savepoint;

  ROLLBACK TO my_savepoint;

END $body$ LANGUAGE plpgsql;

 

The same code can not be compiled in postgres v11 beta 3, I got error:

 

[42601] ERROR: syntax error at or near "TO"

Position: 117

 

Best regards

David Klika

Re: 11 beta 3 / ROLLBACK TO SAVEPOINT regression in PLPGSQL

From
Sergei Kornilov
Date:
Hello

> This routine works well on postgres v10:
it works? Or is only accepted as input? I got error on function call.
I thought plpgsql cannot directly uses savepoints, only implicitly with begin ... exception ... end block (
https://www.postgresql.org/docs/current/static/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING)
 

Well, you can still create this function with set check_function_bodies to off

regards, Sergei


Re: 11 beta 3 / ROLLBACK TO SAVEPOINT regression in PLPGSQL

From
Pavel Stehule
Date:


2018-08-23 14:41 GMT+02:00 Sergei Kornilov <sk@zsrv.org>:
Hello

> This routine works well on postgres v10:
it works? Or is only accepted as input? I got error on function call.
I thought plpgsql cannot directly uses savepoints, only implicitly with begin ... exception ... end block ( https://www.postgresql.org/docs/current/static/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING )

Well, you can still create this function with set check_function_bodies to off

This doesn't help, because any function is validated before execution

Regards

Pavel

regards, Sergei


Re: 11 beta 3 / ROLLBACK TO SAVEPOINT regression in PLPGSQL

From
Pavel Stehule
Date:


2018-08-23 15:00 GMT+02:00 Pavel Stehule <pavel.stehule@gmail.com>:


2018-08-23 14:41 GMT+02:00 Sergei Kornilov <sk@zsrv.org>:
Hello

> This routine works well on postgres v10:
it works? Or is only accepted as input? I got error on function call.
I thought plpgsql cannot directly uses savepoints, only implicitly with begin ... exception ... end block ( https://www.postgresql.org/docs/current/static/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING )

Well, you can still create this function with set check_function_bodies to off

This doesn't help, because any function is validated before execution

but it is hard to believe, so it was working ever.



Regards

Pavel

regards, Sergei



RE: 11 beta 3 / ROLLBACK TO SAVEPOINT regression in PLPGSQL

From
"David Klika"
Date:


> This routine works well on postgres v10:
it works? Or is only accepted as input? I got error on function call.
I thought plpgsql cannot directly uses savepoints, only implicitly with begin ... exception ... end block ( https://www.postgresql.org/docs/current/static/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING )

Well, you can still create this function with set check_function_bodies to off

 

This doesn't help, because any function is validated before execution

 

but it is hard to believe, so it was working ever.

 

 

You are right, calling the method lead to error in both cases. My misunderstanding, sorry. David

Re: 11 beta 3 / ROLLBACK TO SAVEPOINT regression in PLPGSQL

From
Pavel Stehule
Date:


2018-08-23 16:45 GMT+02:00 David Klika <david.klika@atlas.cz>:


> This routine works well on postgres v10:
it works? Or is only accepted as input? I got error on function call.
I thought plpgsql cannot directly uses savepoints, only implicitly with begin ... exception ... end block ( https://www.postgresql.org/docs/current/static/plpgsql-control-structures.html#PLPGSQL-ERROR-TRAPPING )

Well, you can still create this function with set check_function_bodies to off

 

This doesn't help, because any function is validated before execution

 

but it is hard to believe, so it was working ever.

 

 

You are right, calling the method lead to error in both cases. My misunderstanding, sorry. David


No problem :)

Pavel