* dumpNamespace * writes out to fout the queries to recreate a user-defined namespace */
| 11574 | * writes out to fout the queries to recreate a user-defined namespace |
| 11575 | */ |
| 11576 | static void |
| 11577 | dumpNamespace(Archive *fout, const NamespaceInfo *nspinfo) |
| 11578 | { |
| 11579 | DumpOptions *dopt = fout->dopt; |
| 11580 | PQExpBuffer q; |
| 11581 | PQExpBuffer delq; |
| 11582 | char *qnspname; |
| 11583 | |
| 11584 | /* Skip if not to be dumped */ |
| 11585 | if (!nspinfo->dobj.dump || dopt->dataOnly) |
| 11586 | return; |
| 11587 | |
| 11588 | q = createPQExpBuffer(); |
| 11589 | delq = createPQExpBuffer(); |
| 11590 | |
| 11591 | qnspname = pg_strdup(fmtId(nspinfo->dobj.name)); |
| 11592 | |
| 11593 | appendPQExpBuffer(delq, "DROP SCHEMA %s;\n", qnspname); |
| 11594 | |
| 11595 | if (dopt->binary_upgrade) |
| 11596 | binary_upgrade_set_namespace_oid(fout, q, nspinfo->dobj.catId.oid); |
| 11597 | |
| 11598 | appendPQExpBuffer(q, "CREATE SCHEMA %s;\n", qnspname); |
| 11599 | |
| 11600 | if (dopt->binary_upgrade) |
| 11601 | binary_upgrade_extension_member(q, &nspinfo->dobj, |
| 11602 | "SCHEMA", qnspname, NULL); |
| 11603 | |
| 11604 | if (nspinfo->dobj.dump & DUMP_COMPONENT_DEFINITION) |
| 11605 | ArchiveEntry(fout, nspinfo->dobj.catId, nspinfo->dobj.dumpId, |
| 11606 | ARCHIVE_OPTS(.tag = nspinfo->dobj.name, |
| 11607 | .owner = nspinfo->rolname, |
| 11608 | .description = "SCHEMA", |
| 11609 | .section = SECTION_PRE_DATA, |
| 11610 | .createStmt = q->data, |
| 11611 | .dropStmt = delq->data)); |
| 11612 | |
| 11613 | /* Dump Schema Comments and Security Labels */ |
| 11614 | if (nspinfo->dobj.dump & DUMP_COMPONENT_COMMENT) |
| 11615 | dumpComment(fout, "SCHEMA", qnspname, |
| 11616 | NULL, nspinfo->rolname, |
| 11617 | nspinfo->dobj.catId, 0, nspinfo->dobj.dumpId); |
| 11618 | |
| 11619 | if (nspinfo->dobj.dump & DUMP_COMPONENT_SECLABEL) |
| 11620 | dumpSecLabel(fout, "SCHEMA", qnspname, |
| 11621 | NULL, nspinfo->rolname, |
| 11622 | nspinfo->dobj.catId, 0, nspinfo->dobj.dumpId); |
| 11623 | |
| 11624 | if (nspinfo->dobj.dump & DUMP_COMPONENT_ACL) |
| 11625 | dumpACL(fout, nspinfo->dobj.dumpId, InvalidDumpId, "SCHEMA", |
| 11626 | qnspname, NULL, NULL, |
| 11627 | nspinfo->rolname, nspinfo->nspacl, nspinfo->rnspacl, |
| 11628 | nspinfo->initnspacl, nspinfo->initrnspacl); |
| 11629 | |
| 11630 | free(qnspname); |
| 11631 | |
| 11632 | destroyPQExpBuffer(q); |
| 11633 | destroyPQExpBuffer(delq); |
no test coverage detected