Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit e0ef136

Browse files
committed
Trigger stmt_beg and stmt_end for top-level statement blocks of PL/pgSQL
PL/pgSQL provides a set of callbacks which can be used for extra instrumentation of functions written in this language called at function setup, begin and end, as well as statement begin and end. When calling a routine, a trigger, or an event trigger, statement callbacks are not getting called for the top-level statement block leading to an inconsistent handling compared to the other statements. This inconsistency can potentially complicate extensions doing instrumentation work on top of PL/pgSQL, so this commit makes sure that all statement blocks, including the top-level one, go through the correct corresponding callbacks. Author: Pavel Stehule Reviewed-by: Michael Paquier Discussion: https://postgr.es/m/CAFj8pRArEANsaUjo5in9_iQt0vKf9ecwDAmsdN_EBwL13ps12A@mail.gmail.com
1 parent 4203842 commit e0ef136

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/pl/plpgsql/src/pl_exec.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -585,7 +585,7 @@ plpgsql_exec_function(PLpgSQL_function *func, FunctionCallInfo fcinfo,
585585
*/
586586
estate.err_text = NULL;
587587
estate.err_stmt = (PLpgSQL_stmt *) (func->action);
588-
rc = exec_stmt_block(&estate, func->action);
588+
rc = exec_stmt(&estate, (PLpgSQL_stmt *) func->action);
589589
if (rc != PLPGSQL_RC_RETURN)
590590
{
591591
estate.err_stmt = NULL;
@@ -955,7 +955,7 @@ plpgsql_exec_trigger(PLpgSQL_function *func,
955955
*/
956956
estate.err_text = NULL;
957957
estate.err_stmt = (PLpgSQL_stmt *) (func->action);
958-
rc = exec_stmt_block(&estate, func->action);
958+
rc = exec_stmt(&estate, (PLpgSQL_stmt *) func->action);
959959
if (rc != PLPGSQL_RC_RETURN)
960960
{
961961
estate.err_stmt = NULL;
@@ -1116,7 +1116,7 @@ plpgsql_exec_event_trigger(PLpgSQL_function *func, EventTriggerData *trigdata)
11161116
*/
11171117
estate.err_text = NULL;
11181118
estate.err_stmt = (PLpgSQL_stmt *) (func->action);
1119-
rc = exec_stmt_block(&estate, func->action);
1119+
rc = exec_stmt(&estate, (PLpgSQL_stmt *) func->action);
11201120
if (rc != PLPGSQL_RC_RETURN)
11211121
{
11221122
estate.err_stmt = NULL;

0 commit comments

Comments
 (0)