| /*------------------------------------------------------------------------- |
| * |
| * namespace.h |
| * prototypes for functions in backend/catalog/namespace.c |
| * |
| * |
| * Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group |
| * Portions Copyright (c) 1994, Regents of the University of California |
| * |
| * $PostgreSQL: pgsql/src/include/catalog/namespace.h,v 1.42 2006/05/01 23:22:43 tgl Exp $ |
| * |
| *------------------------------------------------------------------------- |
| */ |
| #ifndef NAMESPACE_H |
| #define NAMESPACE_H |
| |
| #include "nodes/primnodes.h" |
| |
| |
| /* |
| * This structure holds a list of possible functions or operators |
| * found by namespace lookup. Each function/operator is identified |
| * by OID and by argument types; the list must be pruned by type |
| * resolution rules that are embodied in the parser, not here. |
| */ |
| typedef struct _FuncCandidateList |
| { |
| struct _FuncCandidateList *next; |
| int pathpos; /* for internal use of namespace lookup */ |
| Oid oid; /* the function or operator's OID */ |
| int nargs; /* number of arg types returned */ |
| Oid args[1]; /* arg types --- VARIABLE LENGTH ARRAY */ |
| } *FuncCandidateList; /* VARIABLE LENGTH STRUCT */ |
| |
| |
| extern Oid GetCatalogId(const char *catalogname); |
| extern Oid RangeVarGetRelid(const RangeVar *relation, bool failOK, bool allowHcatalog); |
| extern Oid RangeVarGetCreationNamespace(const RangeVar *newRelation); |
| extern Oid RelnameGetRelid(const char *relname); |
| extern bool RelationIsVisible(Oid relid); |
| |
| extern Oid TypenameGetTypid(const char *typname); |
| extern char *TypeOidGetTypename(Oid typid); |
| extern bool TypeIsVisible(Oid typid); |
| |
| extern FuncCandidateList FuncnameGetCandidates(List *names, int nargs); |
| extern bool FunctionIsVisible(Oid funcid); |
| |
| extern Oid OpernameGetOprid(List *names, Oid oprleft, Oid oprright); |
| extern FuncCandidateList OpernameGetCandidates(List *names, char oprkind); |
| extern bool OperatorIsVisible(Oid oprid); |
| |
| extern Oid OpclassnameGetOpcid(Oid amid, const char *opcname); |
| extern bool OpclassIsVisible(Oid opcid); |
| |
| extern Oid ConversionGetConid(const char *conname); |
| extern bool ConversionIsVisible(Oid conid); |
| |
| extern void DeconstructQualifiedName(List *names, |
| char **nspname_p, |
| char **objname_p); |
| extern Oid LookupInternalNamespaceId(const char *nspname); |
| extern Oid LookupNamespaceId(const char *nspname, Oid dboid); |
| extern Oid LookupExplicitNamespace(const char *nspname, Oid dboid); |
| |
| extern bool ExistsCommittedTempNamespace(void); |
| extern void DropTempTableNamespaceForResetSession(Oid namespaceOid); |
| extern void SetTempNamespace(Oid namespaceOid); |
| extern bool TempNamespaceOidIsValid(void); /* GPDB only: used by cdbgang.c */ |
| |
| extern Oid LookupCreationNamespace(const char *nspname); |
| extern Oid QualifiedNameGetCreationNamespace(List *names, char **objname_p); |
| extern RangeVar *makeRangeVarFromNameList(List *names); |
| extern char *NameListToString(List *names); |
| extern char *NameListToQuotedString(List *names); |
| |
| extern bool isTempNamespace(Oid namespaceId); |
| extern bool isAnyTempNamespace(Oid namespaceId); |
| extern bool isOtherTempNamespace(Oid namespaceId); |
| |
| extern void PushSpecialNamespace(Oid namespaceId); |
| extern void PopSpecialNamespace(Oid namespaceId); |
| |
| extern Oid FindConversionByName(List *conname); |
| extern Oid FindDefaultConversionProc(int4 for_encoding, int4 to_encoding); |
| |
| /* initialization & transaction cleanup code */ |
| extern void InitializeSearchPath(void); |
| extern void AtEOXact_Namespace(bool isCommit); |
| extern void AtEOSubXact_Namespace(bool isCommit, SubTransactionId mySubid, |
| SubTransactionId parentSubid); |
| |
| extern List *fetch_search_path(bool includeImplicit); |
| |
| extern void reset_query_sign(); |
| |
| /* stuff for search_path GUC variable */ |
| extern char *namespace_search_path; |
| |
| |
| |
| #endif /* NAMESPACE_H */ |