postgres.git / summary / log / commit / refs

commit    142a110b312fa2d6bbc4eba4df196c35e0caf7bb
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Thu Sep 08 14:48:03 2016 +0000
First released in: 10.0, 9.5.5, 9.6.0

    Don't print database's tablespace in pg_dump -C --no-tablespaces output.
    
    If the database has a non-default tablespace, we emitted a TABLESPACE
    clause in the CREATE DATABASE command emitted by -C, even if
    --no-tablespaces was also specified.  This seems wrong, and it's
    inconsistent with what pg_dumpall does, so change it.  Per bug #14315
    from Danylo Hlynskyi.
    
    Back-patch to 9.5.  The bug is much older, but it'd be a more invasive
    change before 9.5 because dumpDatabase() hasn't got an easy way to get
    to the outputNoTablespaces flag.  Doesn't seem worth the work given
    the lack of previous complaints.
    
    Report: <20160908081953.1402.75347@wrigleys.postgresql.org>


src/bin/pg_dump/pg_dump.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 715e75c7cad..df6d2e73460 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -2444,7 +2444,8 @@ dumpDatabase(Archive *fout) appendPQExpBufferStr(creaQry, " LC_CTYPE = "); appendStringLiteralAH(creaQry, ctype, fout); } - if (strlen(tablespace) > 0 && strcmp(tablespace, "pg_default") != 0) + if (strlen(tablespace) > 0 && strcmp(tablespace, "pg_default") != 0 && + !dopt->outputNoTablespaces) appendPQExpBuffer(creaQry, " TABLESPACE = %s", fmtId(tablespace)); appendPQExpBufferStr(creaQry, ";\n"); [parent: 6cdc26e48218]