Skip to content

Commit 062824e

Browse files
committed
Ensure commands in extension scripts see the results of preceding DDL.
Due to a missing CommandCounterIncrement() call, parsing of a non-utility command in an extension script would not see the effects of the immediately preceding DDL command, unless that command's execution ends with CommandCounterIncrement() internally ... which some do but many don't. Report by Philippe Beaudoin, diagnosis by Julien Rouhaud. Rather remarkably, this bug has evaded detection since extensions were invented, so back-patch to all supported branches. Discussion: https://postgr.es/m/2cf7941e-4e41-7714-3de8-37b1a8f74dff@free.fr
1 parent dc93caf commit 062824e

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

src/backend/commands/extension.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -710,6 +710,9 @@ execute_sql_string(const char *sql, const char *filename)
710710
List *stmt_list;
711711
ListCell *lc2;
712712

713+
/* Be sure parser can see any DDL done so far */
714+
CommandCounterIncrement();
715+
713716
stmt_list = pg_analyze_and_rewrite(parsetree,
714717
sql,
715718
NULL,

0 commit comments

Comments
 (0)