diff options
Diffstat (limited to 'src/bin/pg_dump/common.c')
| -rw-r--r-- | src/bin/pg_dump/common.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/bin/pg_dump/common.c b/src/bin/pg_dump/common.c index 48a97392e14..a27fd151c99 100644 --- a/src/bin/pg_dump/common.c +++ b/src/bin/pg_dump/common.c @@ -50,14 +50,17 @@ static TableInfo *tblinfo; static TypeInfo *typinfo; static FuncInfo *funinfo; static OprInfo *oprinfo; +static NamespaceInfo *nspinfo; static int numTables; static int numTypes; static int numFuncs; static int numOperators; +static int numNamespaces; static DumpableObject **tblinfoindex; static DumpableObject **typinfoindex; static DumpableObject **funinfoindex; static DumpableObject **oprinfoindex; +static DumpableObject **nspinfoindex; static void flagInhTables(TableInfo *tbinfo, int numTables, @@ -78,7 +81,6 @@ static int strInArray(const char *pattern, char **arr, int arr_size); TableInfo * getSchemaData(int *numTablesPtr) { - NamespaceInfo *nsinfo; AggInfo *agginfo; InhInfo *inhinfo; RuleInfo *ruleinfo; @@ -94,7 +96,6 @@ getSchemaData(int *numTablesPtr) FdwInfo *fdwinfo; ForeignServerInfo *srvinfo; DefaultACLInfo *daclinfo; - int numNamespaces; int numAggregates; int numInherits; int numRules; @@ -113,7 +114,8 @@ getSchemaData(int *numTablesPtr) if (g_verbose) write_msg(NULL, "reading schemas\n"); - nsinfo = getNamespaces(&numNamespaces); + nspinfo = getNamespaces(&numNamespaces); + nspinfoindex = buildIndexArray(nspinfo, numNamespaces, sizeof(NamespaceInfo)); /* * getTables should be done as soon as possible, so as to minimize the @@ -714,6 +716,17 @@ findOprByOid(Oid oid) return (OprInfo *) findObjectByOid(oid, oprinfoindex, numOperators); } +/* + * findNamespaceByOid + * finds the entry (in nspinfo) of the namespace with the given oid + * returns NULL if not found + */ +NamespaceInfo * +findNamespaceByOid(Oid oid) +{ + return (NamespaceInfo *) findObjectByOid(oid, nspinfoindex, numNamespaces); +} + /* * findParentsByOid |
