*/
if (table_include_oids.head != NULL)
- nsinfo->dobj.dump = DUMP_COMPONENT_NONE;
+ nsinfo->dobj.dump_contains = nsinfo->dobj.dump = DUMP_COMPONENT_NONE;
else if (schema_include_oids.head != NULL)
- nsinfo->dobj.dump = simple_oid_list_member(&schema_include_oids,
- nsinfo->dobj.catId.oid) ?
+ nsinfo->dobj.dump_contains = nsinfo->dobj.dump =
+ simple_oid_list_member(&schema_include_oids,
+ nsinfo->dobj.catId.oid) ?
DUMP_COMPONENT_ALL : DUMP_COMPONENT_NONE;
else if (strncmp(nsinfo->dobj.name, "pg_", 3) == 0 ||
strcmp(nsinfo->dobj.name, "information_schema") == 0)
- nsinfo->dobj.dump = DUMP_COMPONENT_NONE;
+ nsinfo->dobj.dump_contains = nsinfo->dobj.dump = DUMP_COMPONENT_NONE;
else
- nsinfo->dobj.dump = DUMP_COMPONENT_ALL;
+ nsinfo->dobj.dump_contains = nsinfo->dobj.dump = DUMP_COMPONENT_ALL;
/*
* In any case, a namespace can be excluded by an exclusion switch
*/
- if (nsinfo->dobj.dump &&
+ if (nsinfo->dobj.dump_contains &&
simple_oid_list_member(&schema_exclude_oids,
nsinfo->dobj.catId.oid))
- nsinfo->dobj.dump = DUMP_COMPONENT_NONE;
+ nsinfo->dobj.dump_contains = nsinfo->dobj.dump = DUMP_COMPONENT_NONE;
}
/*
tbinfo->dobj.catId.oid) ?
DUMP_COMPONENT_ALL : DUMP_COMPONENT_NONE;
else
- tbinfo->dobj.dump = tbinfo->dobj.namespace->dobj.dump;
+ tbinfo->dobj.dump = tbinfo->dobj.namespace->dobj.dump_contains;
/*
* In any case, a table can be excluded by an exclusion switch
if (checkExtensionMembership(&tyinfo->dobj, dopt))
return; /* extension membership overrides all else */
- tyinfo->dobj.dump = tyinfo->dobj.namespace->dobj.dump;
+ /* Dump based on if the contents of the namespace are being dumped */
+ tyinfo->dobj.dump = tyinfo->dobj.namespace->dobj.dump_contains;
}
/*
/* Default ACLs can't be extension members */
if (dinfo->dobj.namespace)
+ /* default ACLs are considered part of the namespace */
dinfo->dobj.dump = dinfo->dobj.namespace->dobj.dump;
else
dinfo->dobj.dump = dopt->include_everything ?
* non-namespace-associated items, dump if we're dumping "everything".
*/
if (dobj->namespace)
- dobj->dump = dobj->namespace->dobj.dump;
+ dobj->dump = dobj->namespace->dobj.dump_contains;
else
dobj->dump = dopt->include_everything ?
DUMP_COMPONENT_ALL : DUMP_COMPONENT_NONE;
DumpId dumpId; /* assigned by AssignDumpId() */
char *name; /* object name (should never be NULL) */
struct _namespaceInfo *namespace; /* containing namespace, or NULL */
- DumpComponents dump; /* bitmask of components to dump */
+ DumpComponents dump; /* bitmask of components to dump */
+ DumpComponents dump_contains; /* as above, but for contained objects */
bool ext_member; /* true if object is member of extension */
DumpId *dependencies; /* dumpIds of objects this one depends on */
int nDeps; /* number of valid dependencies */