Fix nesting level counting for older PG version

pull/463/head
Artem Gavrilov 2024-06-11 17:39:42 +02:00
parent 0b3feb7d06
commit 3e91da8010
1 changed files with 7 additions and 0 deletions

View File

@ -1233,6 +1233,8 @@ pgsm_ProcessUtility(PlannedStmt *pstmt, const char *queryString,
* To be absolutely certain we don't mess up the nesting level, * To be absolutely certain we don't mess up the nesting level,
* evaluate the bump_level condition just once. * evaluate the bump_level condition just once.
*/ */
#if PG_VERSION_NUM >= 17000
bool bump_level = bool bump_level =
!IsA(parsetree, ExecuteStmt) && !IsA(parsetree, ExecuteStmt) &&
!IsA(parsetree, PrepareStmt) && !IsA(parsetree, PrepareStmt) &&
@ -1243,6 +1245,8 @@ pgsm_ProcessUtility(PlannedStmt *pstmt, const char *queryString,
PG_TRY(); PG_TRY();
{ {
#endif
#if PG_VERSION_NUM >= 140000 #if PG_VERSION_NUM >= 140000
if (prev_ProcessUtility) if (prev_ProcessUtility)
prev_ProcessUtility(pstmt, queryString, prev_ProcessUtility(pstmt, queryString,
@ -1279,6 +1283,8 @@ pgsm_ProcessUtility(PlannedStmt *pstmt, const char *queryString,
dest, dest,
completionTag); completionTag);
#endif #endif
#if PG_VERSION_NUM >= 17000
if (bump_level) if (bump_level)
nesting_level--; nesting_level--;
} }
@ -1290,6 +1296,7 @@ pgsm_ProcessUtility(PlannedStmt *pstmt, const char *queryString,
} }
PG_END_TRY(); PG_END_TRY();
} }
#endif
} }
#if PG_VERSION_NUM < 130000 #if PG_VERSION_NUM < 130000