diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c index cd7669b..dfe50fc 100644 --- a/src/bin/pg_dump/pg_backup_archiver.c +++ b/src/bin/pg_dump/pg_backup_archiver.c @@ -547,8 +547,40 @@ restore_toc_entry(ArchiveHandle *AH, TocEntry *te, if ((reqs & REQ_SCHEMA) != 0) /* We want the schema */ { - ahlog(AH, 1, "creating %s %s\n", te->desc, te->tag); + char *p = NULL; + /* For the following operations, prepend the schema to the object name */ + if(te->namespace && + (strcmp(te->desc, "AGGREGATE") == 0 || + strcmp(te->desc, "COLLATION") == 0 || + strcmp(te->desc, "CONVERSION") == 0 || + strcmp(te->desc, "DOMAIN") == 0 || + strcmp(te->desc, "FOREIGN TABLE") == 0 || + strcmp(te->desc, "FUNCTION") == 0 || + strcmp(te->desc, "MATERIALIZED VIEW") == 0 || + strcmp(te->desc, "OPERATOR") == 0 || + strcmp(te->desc, "OPERATOR CLASS") == 0 || + strcmp(te->desc, "OPERATOR FAMILY") == 0 || + strcmp(te->desc, "SEQUENCE") == 0 || + strcmp(te->desc, "TABLE") == 0 || + strcmp(te->desc, "TEXT SEARCH DICTIONARY") == 0 || + strcmp(te->desc, "TEXT SEARCH CONFIGURATION") == 0 || + strcmp(te->desc, "TEXT SEARCH PARSER") == 0 || + strcmp(te->desc, "TEXT SEARCH TEMPLATE") == 0 || + strcmp(te->desc, "TYPE") == 0 || + strcmp(te->desc, "VIEW") == 0 ) + ) + { + int bSize = strlen(te->namespace) + strlen(te->tag) + 2; + p = (char *) pg_malloc(bSize); + + snprintf(p, bSize, "%s.%s", te->namespace, te->tag); + } + else { + p = pg_strdup(te->tag); + } + + ahlog(AH, 1, "creating %s %s\n", te->desc, p); _printTocEntry(AH, te, ropt, false, false); defnDumped = true; @@ -633,7 +665,8 @@ restore_toc_entry(ArchiveHandle *AH, TocEntry *te, _becomeOwner(AH, te); _selectOutputSchema(AH, te->namespace); - ahlog(AH, 1, "processing data for table \"%s\"\n", + ahlog(AH, 1, "processing data for table \"%s.%s\"\n", + te->namespace, te->tag); /*