summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Browne2014-12-17 22:16:05 +0000
committerChristopher Browne2014-12-17 22:16:05 +0000
commitd79166fffe59c259b088681e7f9e59a3713905c8 (patch)
tree4acda32c832be9347ad412fcfa2a2ba21a253b50
parentd5e89f95d191ce7a0f961d62b5d37ebca1c78396 (diff)
Add RESET ALL to crucial places in DDL processingbug355
-rw-r--r--src/backend/slony1_funcs.sql1
-rw-r--r--src/slonik/slonik.c11
2 files changed, 12 insertions, 0 deletions
diff --git a/src/backend/slony1_funcs.sql b/src/backend/slony1_funcs.sql
index e83c911e..e87c9e53 100644
--- a/src/backend/slony1_funcs.sql
+++ b/src/backend/slony1_funcs.sql
@@ -3787,6 +3787,7 @@ create or replace function @NAMESPACE@.ddlScript_complete_int ()
returns int4
as $$
begin
+ execute 'RESET ALL;';
perform @NAMESPACE@.updateRelname();
perform @NAMESPACE@.repair_log_triggers(true);
return 0;
diff --git a/src/slonik/slonik.c b/src/slonik/slonik.c
index 5ab4cd9c..d2f9486c 100644
--- a/src/slonik/slonik.c
+++ b/src/slonik/slonik.c
@@ -5061,6 +5061,17 @@ slonik_ddl_script(SlonikStmt_ddl_script * stmt)
return -1;
}
PQclear(res1);
+
+ slon_mkquery(&query, "%s", "RESET ALL;");
+ res1 = PQexec(adminfo1->dbconn, dstring_data(&query));
+ if (PQresultStatus(res1) != PGRES_COMMAND_OK) {
+ fprintf(stderr, "%s [%s] - %s",
+ PQresStatus(PQresultStatus(res1)),
+ dstring_data(&query), PQresultErrorMessage(res1));
+ PQclear(res1);
+ dstring_free(&query);
+ return -1;
+ }
}
/*