summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2017-05-02 18:05:54 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2017-05-02 18:05:54 -0400
commitc6b3d07061b8becc139b7ce854bda3a675e0ee2a (patch)
tree2ea06b233708b1f2c6cca5db29acb6c88aabd01f /src
parentb2ed1c8a467c2f8f91323a13696a900f31a3239d (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 9a0afa4b5dc..ff830b679ec 100644
--- a/src/backend/commands/extension.c
+++ b/src/backend/commands/extension.c
@@ -706,6 +706,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,