Avoid harmless warning from pg_dump --if-exists mode.
If the public schema has a non-default owner (perhaps due to
dropping and recreating it) then use of pg_dump's "--if-exists"
option results in a warning message:
warning: could not find where to insert IF EXISTS in statement "-- *not* dropping schema, since initdb creates it"
This is harmless since the dump output is the same either way,
but nonetheless it's undesirable. It's the fault of commit
a7a7be1f2
, which created situations where a TOC entry's "defn"
or "dropStmt" fields could be just comments. Although that
commit fixed up the kluges in pg_backup_archiver.c that munge defn
strings, it missed doing so for the one that munges dropStmts.
Per bug# 17753 from Justin Zhang.
Discussion: https://postgr.es/m/17753-9c8773631747ee1c@postgresql.org
This commit is contained in:
parent
9f1ca6ce65
commit
74739d1d3f
|
@ -538,9 +538,14 @@ RestoreArchive(Archive *AHX)
|
|||
*/
|
||||
if (*te->dropStmt != '\0')
|
||||
{
|
||||
if (!ropt->if_exists)
|
||||
if (!ropt->if_exists ||
|
||||
strncmp(te->dropStmt, "--", 2) == 0)
|
||||
{
|
||||
/* No --if-exists? Then just use the original */
|
||||
/*
|
||||
* Without --if-exists, or if it's just a comment (as
|
||||
* happens for the public schema), print the dropStmt
|
||||
* as-is.
|
||||
*/
|
||||
ahprintf(AH, "%s", te->dropStmt);
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue