Commit 7ebbc815 authored by Bruce Momjian's avatar Bruce Momjian

If pg_dump drops a schema, make sure 'search_path' it SET the next time

it is needed --- basically don't remember the previous 'search_path'
after a drop schema because it might have failed but be created later.
parent 8a52d0c9
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.149 2007/11/15 21:14:41 momjian Exp $ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.150 2007/11/24 17:45:32 momjian Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -245,6 +245,21 @@ RestoreArchive(Archive *AHX, RestoreOptions *ropt) ...@@ -245,6 +245,21 @@ RestoreArchive(Archive *AHX, RestoreOptions *ropt)
_selectOutputSchema(AH, te->namespace); _selectOutputSchema(AH, te->namespace);
/* Drop it */ /* Drop it */
ahprintf(AH, "%s", te->dropStmt); ahprintf(AH, "%s", te->dropStmt);
if (strcmp(te->desc, "SCHEMA") == 0)
{
/*
* If we dropped a schema, we know we are going to be
* creating one later so don't remember the current one
* so we try later. The previous 'search_path' setting
* might have failed because the schema didn't exist
* (and now it certainly doesn't exist), so force
* search_path to be set as part of the next operation
* and it might succeed.
*/
if (AH->currSchema)
free(AH->currSchema);
AH->currSchema = strdup("");
}
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment