mirror of
https://github.com/postgres/postgres.git
synced 2025-06-23 14:01:44 +03:00
Here is another patch that fixes a stack of pg_dump bugs:
* Fix help text ordering * Add back --set-session-authorization to pg_dumpall. Updated the docs for that. Updated help for that. * Dump ALTER USER commands for the cluster owner ("pgsql"). These are dumped AFTER the create user and create database commands in case the permissions to do these have been revoked. * Dump ALTER OWNER for public schema (because it's possible to change it). This was done by adding TOC entries for the public schema, and filtering them out at archiver time. I also save the owner in the TOC entry just for the public schema. * Suppress dumping single quotes around schema_path and DateStyle options when they are set using ALTER USER or ALTER DATABASE. Added a comment to the steps in guc.c to remind people to update that list. * Fix dumping in --clean mode against a pre-7.3 server. It just sets all drop statements to assume the public schema, allowing it to restore without error. * Cleaned up text output. eg. Don't output -- Tablespaces comment if there are none. Same for groups and users. * Make the commands to DELETE FROM pg_shadow and DELETE FROM pg_group only be output when -c mode is enabled. I'm not sure why that hasn't been done before?!?! This should be good for application asap, after which I will start on regression dumping 7.0-7.4 databases. Christopher Kings-Lynne
This commit is contained in:
@ -15,7 +15,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.89 2004/07/19 21:02:17 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.90 2004/07/19 21:39:47 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -2356,7 +2356,8 @@ _printTocEntry(ArchiveHandle *AH, TocEntry *te, RestoreOptions *ropt, bool isDat
|
||||
strcmp(te->desc, "TABLE") == 0 ||
|
||||
strcmp(te->desc, "TYPE") == 0 ||
|
||||
strcmp(te->desc, "VIEW") == 0 ||
|
||||
strcmp(te->desc, "SEQUENCE") == 0
|
||||
strcmp(te->desc, "SEQUENCE") == 0 ||
|
||||
(strcmp(te->desc, "SCHEMA") == 0 && strcmp(te->tag, "public") == 0) /* Only public schema */
|
||||
))
|
||||
{
|
||||
char *temp = _getObjectFromDropStmt(te->dropStmt, te->desc);
|
||||
@ -2376,15 +2377,18 @@ _printTocEntry(ArchiveHandle *AH, TocEntry *te, RestoreOptions *ropt, bool isDat
|
||||
/*
|
||||
* Really crude hack for suppressing AUTHORIZATION clause of CREATE SCHEMA
|
||||
* when --no-owner mode is selected. This is ugly, but I see no other
|
||||
* good way ...
|
||||
* good way ... Also, avoid dumping the public schema as it will already be
|
||||
* created.
|
||||
*/
|
||||
if (AH->ropt && AH->ropt->noOwner && strcmp(te->desc, "SCHEMA") == 0)
|
||||
{
|
||||
ahprintf(AH, "CREATE SCHEMA %s;\n\n\n", te->tag);
|
||||
}
|
||||
else
|
||||
{
|
||||
ahprintf(AH, "%s\n\n", te->defn);
|
||||
if (strcmp(te->tag, "public") != 0) {
|
||||
if (AH->ropt && AH->ropt->noOwner && strcmp(te->desc, "SCHEMA") == 0)
|
||||
{
|
||||
ahprintf(AH, "CREATE SCHEMA %s;\n\n\n", te->tag);
|
||||
}
|
||||
else
|
||||
{
|
||||
ahprintf(AH, "%s\n\n", te->defn);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (isData) {
|
||||
|
Reference in New Issue
Block a user