summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane2017-05-02 22:05:54 +0000
committerTom Lane2017-05-02 22:05:54 +0000
commit062824edd953a5a07fae7400267502d19a8f7bbf (patch)
tree01d48f9d9bc52b59b8511f1103137300df1e1646 /src
parentdc93cafcad89d3e626986166ef0fb87f53ead521 (diff)
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
Diffstat (limited to 'src')
-rw-r--r--src/backend/commands/extension.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/backend/commands/extension.c b/src/backend/commands/extension.c
index 37f8df1bf73..6a93ff34dd7 100644
--- a/src/backend/commands/extension.c
+++ b/src/backend/commands/extension.c
@@ -710,6 +710,9 @@ execute_sql_string(const char *sql, const char *filename)
List *stmt_list;
ListCell *lc2;
+ /* Be sure parser can see any DDL done so far */
+ CommandCounterIncrement();
+
stmt_list = pg_analyze_and_rewrite(parsetree,
sql,
NULL,