211 bool include_out_arguments,
int pronargs,
259 (
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
260 errmsg(
"cross-database references are not implemented: \"%s.%s.%s\"",
316 (
errcode(ERRCODE_INVALID_TABLE_DEFINITION),
317 errmsg(
"temporary tables cannot specify a schema name")));
351 callback(relation, relId, oldRelId, callback_arg);
374 if (relId == oldRelId)
397 (
errcode(ERRCODE_LOCK_NOT_AVAILABLE),
398 errmsg(
"could not obtain lock on relation \"%s.%s\"",
402 (
errcode(ERRCODE_LOCK_NOT_AVAILABLE),
403 errmsg(
"could not obtain lock on relation \"%s\"",
431 errmsg(
"relation \"%s.%s\" does not exist",
436 errmsg(
"relation \"%s\" does not exist",
463 (
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
464 errmsg(
"cross-database references are not implemented: \"%s.%s.%s\"",
472 if (strcmp(newRelation->
schemaname,
"pg_temp") == 0)
501 (
errcode(ERRCODE_UNDEFINED_SCHEMA),
502 errmsg(
"no schema has been selected to create in")));
539 Oid *existing_relation_id)
555 (
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
556 errmsg(
"cross-database references are not implemented: \"%s.%s.%s\"",
576 if (existing_relation_id != NULL)
598 if (relid == oldrelid &&
nspid == oldnspid)
601 if (
nspid != oldnspid)
610 if (
nspid != oldnspid)
619 if (relid != oldrelid)
634 if (existing_relation_id != NULL)
635 *existing_relation_id = relid;
648 case RELPERSISTENCE_TEMP:
653 (
errcode(ERRCODE_INVALID_TABLE_DEFINITION),
654 errmsg(
"cannot create relations in temporary schemas of other sessions")));
657 (
errcode(ERRCODE_INVALID_TABLE_DEFINITION),
658 errmsg(
"cannot create temporary relation in non-temporary schema")));
661 case RELPERSISTENCE_PERMANENT:
666 (
errcode(ERRCODE_INVALID_TABLE_DEFINITION),
667 errmsg(
"cannot create relations in temporary schemas of other sessions")));
672 (
errcode(ERRCODE_INVALID_TABLE_DEFINITION),
673 errmsg(
"only temporary relations may be created in temporary schemas")));
720 elog(
ERROR,
"cache lookup failed for relation %u", relid);
730 relnamespace = relform->relnamespace;
731 if (relnamespace != PG_CATALOG_NAMESPACE &&
749 if (namespaceId == relnamespace)
828 elog(
ERROR,
"cache lookup failed for type %u", typid);
838 typnamespace = typform->typnamespace;
839 if (typnamespace != PG_CATALOG_NAMESPACE &&
857 if (namespaceId == typnamespace)
953 bool expand_variadic,
bool expand_defaults,
954 bool include_out_arguments,
bool missing_ok)
957 bool any_special =
false;
965 Assert(nargs >= 0 || !(expand_variadic | expand_defaults));
991 Oid *proargtypes = procform->proargtypes.values;
998 int *argnumbers = NULL;
1004 if (procform->pronamespace != namespaceId)
1017 if (procform->pronamespace ==
lfirst_oid(nsp) &&
1032 if (include_out_arguments)
1034 Datum proallargtypes;
1038 Anum_pg_proc_proallargtypes,
1049 elog(
ERROR,
"proallargtypes is not a 1-D Oid array or it contains nulls");
1055 if (argnames !=
NIL)
1064 if (
OidIsValid(procform->provariadic) && expand_variadic)
1074 if (
pronargs > nargs && expand_defaults)
1077 if (nargs + procform->pronargdefaults <
pronargs)
1079 use_defaults =
true;
1082 use_defaults =
false;
1085 if (
pronargs != nargs && !use_defaults)
1106 if (
pronargs <= nargs && expand_variadic)
1108 va_elem_type = procform->provariadic;
1110 any_special |= variadic;
1121 if (
pronargs > nargs && expand_defaults)
1124 if (nargs + procform->pronargdefaults <
pronargs)
1126 use_defaults =
true;
1130 use_defaults =
false;
1133 if (nargs >= 0 &&
pronargs != nargs && !variadic && !use_defaults)
1146 effective_nargs *
sizeof(
Oid));
1148 newResult->
oid = procform->oid;
1150 newResult->
nargs = effective_nargs;
1156 newResult->
args[
j] = proargtypes[argnumbers[
j]];
1167 for (
int j =
pronargs - 1;
j < effective_nargs;
j++)
1168 newResult->
args[
j] = va_elem_type;
1182 if (resultList != NULL &&
1198 if (catlist->
ordered && !any_special)
1201 if (effective_nargs == resultList->
nargs &&
1202 memcmp(newResult->
args,
1204 effective_nargs *
sizeof(
Oid)) == 0)
1205 prevResult = resultList;
1211 int cmp_nargs = newResult->
nargs - newResult->
ndargs;
1213 for (prevResult = resultList;
1215 prevResult = prevResult->
next)
1217 if (cmp_nargs == prevResult->
nargs - prevResult->
ndargs &&
1218 memcmp(newResult->
args,
1220 cmp_nargs *
sizeof(
Oid)) == 0)
1236 if (pathpos != prevResult->
pathpos)
1241 preference = pathpos - prevResult->
pathpos;
1243 else if (variadic && prevResult->
nvargs == 0)
1253 else if (!variadic && prevResult->
nvargs > 0)
1277 else if (preference < 0)
1280 if (prevResult == resultList)
1281 resultList = prevResult->
next;
1286 for (prevPrevResult = resultList;
1288 prevPrevResult = prevPrevResult->
next)
1290 if (prevResult == prevPrevResult->
next)
1292 prevPrevResult->
next = prevResult->
next;
1314 newResult->
next = resultList;
1315 resultList = newResult;
1346 bool include_out_arguments,
int pronargs,
1373 &p_argtypes, &p_argnames, &p_argmodes);
1374 Assert(p_argnames != NULL);
1380 memset(arggiven,
false,
pronargs *
sizeof(
bool));
1383 for (ap = 0; ap < numposargs; ap++)
1385 (*argnumbers)[ap] = ap;
1386 arggiven[ap] =
true;
1390 foreach(lc, argnames)
1392 char *argname = (
char *)
lfirst(lc);
1398 for (
i = 0;
i < pronallargs;
i++)
1401 if (!include_out_arguments &&
1407 if (p_argnames[
i] && strcmp(p_argnames[
i], argname) == 0)
1412 arggiven[pp] =
true;
1413 (*argnumbers)[ap] = pp;
1431 int first_arg_with_default =
pronargs - procform->pronargdefaults;
1433 for (pp = numposargs; pp <
pronargs; pp++)
1438 if (pp < first_arg_with_default)
1440 (*argnumbers)[ap++] = pp;
1465 elog(
ERROR,
"cache lookup failed for function %u", funcid);
1475 pronamespace = procform->pronamespace;
1476 if (pronamespace != PG_CATALOG_NAMESPACE &&
1488 int nargs = procform->pronargs;
1494 nargs,
NIL,
false,
false,
false,
false);
1496 for (; clist; clist = clist->
next)
1498 if (memcmp(clist->
args, procform->proargtypes.values,
1499 nargs *
sizeof(
Oid)) == 0)
1502 visible = (clist->
oid == funcid);
1554 Oid result = operclass->oid;
1597 if (operform->oprnamespace == namespaceId)
1599 Oid result = operform->oid;
1632 char *resultSpace = NULL;
1647 if (missing_schema_ok && !
OidIsValid(namespaceId))
1669 #define SPACE_PER_OP MAXALIGN(offsetof(struct _FuncCandidateList, args) + \
1683 if (oprkind && operform->oprkind != oprkind)
1689 if (operform->oprnamespace != namespaceId)
1703 if (operform->oprnamespace ==
lfirst_oid(nsp) &&
1728 if (operform->oprleft == resultList->
args[0] &&
1729 operform->oprright == resultList->
args[1])
1730 prevResult = resultList;
1736 for (prevResult = resultList;
1738 prevResult = prevResult->
next)
1740 if (operform->oprleft == prevResult->
args[0] &&
1741 operform->oprright == prevResult->
args[1])
1749 if (pathpos > prevResult->
pathpos)
1752 prevResult->
pathpos = pathpos;
1753 prevResult->
oid = operform->oid;
1766 newResult->
oid = operform->oid;
1768 newResult->
nargs = 2;
1772 newResult->
args[0] = operform->oprleft;
1773 newResult->
args[1] = operform->oprright;
1774 newResult->
next = resultList;
1775 resultList = newResult;
1809 oprnamespace = oprform->oprnamespace;
1810 if (oprnamespace != PG_CATALOG_NAMESPACE &&
1821 char *oprname =
NameStr(oprform->oprname);
1824 oprform->oprleft, oprform->oprright)
1885 elog(
ERROR,
"cache lookup failed for opclass %u", opcid);
1895 opcnamespace = opcform->opcnamespace;
1896 if (opcnamespace != PG_CATALOG_NAMESPACE &&
1907 char *opcname =
NameStr(opcform->opcname);
1968 elog(
ERROR,
"cache lookup failed for opfamily %u", opfid);
1978 opfnamespace = opfform->opfnamespace;
1979 if (opfnamespace != PG_CATALOG_NAMESPACE &&
1990 char *opfname =
NameStr(opfform->opfname);
2033 if (collform->collprovider == COLLPROVIDER_ICU)
2110 collnamespace = collform->collnamespace;
2111 if (collnamespace != PG_CATALOG_NAMESPACE &&
2123 char *collname =
NameStr(collform->collname);
2183 elog(
ERROR,
"cache lookup failed for conversion %u", conid);
2193 connamespace = conform->connamespace;
2194 if (connamespace != PG_CATALOG_NAMESPACE &&
2205 char *conname =
NameStr(conform->conname);
2264 (
errcode(ERRCODE_UNDEFINED_OBJECT),
2265 errmsg(
"statistics object \"%s\" does not exist",
2287 elog(
ERROR,
"cache lookup failed for statistics object %u", relid);
2297 stxnamespace = stxform->stxnamespace;
2298 if (stxnamespace != PG_CATALOG_NAMESPACE &&
2308 char *stxname =
NameStr(stxform->stxname);
2316 if (namespaceId == stxnamespace)
2387 (
errcode(ERRCODE_UNDEFINED_OBJECT),
2388 errmsg(
"text search parser \"%s\" does not exist",
2410 elog(
ERROR,
"cache lookup failed for text search parser %u", prsId);
2420 namespace = form->prsnamespace;
2421 if (
namespace != PG_CATALOG_NAMESPACE &&
2442 if (namespaceId ==
namespace)
2513 (
errcode(ERRCODE_UNDEFINED_OBJECT),
2514 errmsg(
"text search dictionary \"%s\" does not exist",
2536 elog(
ERROR,
"cache lookup failed for text search dictionary %u",
2547 namespace = form->dictnamespace;
2548 if (
namespace != PG_CATALOG_NAMESPACE &&
2569 if (namespaceId ==
namespace)
2599 char *template_name;
2640 (
errcode(ERRCODE_UNDEFINED_OBJECT),
2641 errmsg(
"text search template \"%s\" does not exist",
2663 elog(
ERROR,
"cache lookup failed for text search template %u", tmplId);
2673 namespace = form->tmplnamespace;
2674 if (
namespace != PG_CATALOG_NAMESPACE &&
2695 if (namespaceId ==
namespace)
2766 (
errcode(ERRCODE_UNDEFINED_OBJECT),
2767 errmsg(
"text search configuration \"%s\" does not exist",
2789 elog(
ERROR,
"cache lookup failed for text search configuration %u",
2800 namespace = form->cfgnamespace;
2801 if (
namespace != PG_CATALOG_NAMESPACE &&
2822 if (namespaceId ==
namespace)
2857 char *schemaname = NULL;
2858 char *objname = NULL;
2879 (
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
2880 errmsg(
"cross-database references are not implemented: %s",
2885 (
errcode(ERRCODE_SYNTAX_ERROR),
2886 errmsg(
"improper qualified name (too many dotted names): %s",
2891 *nspname_p = schemaname;
2892 *objname_p = objname;
2909 if (strcmp(nspname,
"pg_temp") == 0)
2942 if (strcmp(nspname,
"pg_temp") == 0)
2985 if (strcmp(nspname,
"pg_temp") == 0)
3015 (
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
3016 errmsg(
"cannot move objects into or out of temporary schemas")));
3019 if (nspOid == PG_TOAST_NAMESPACE || oldNspOid == PG_TOAST_NAMESPACE)
3021 (
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
3022 errmsg(
"cannot move objects into or out of TOAST schema")));
3049 if (strcmp(schemaname,
"pg_temp") == 0)
3072 (
errcode(ERRCODE_UNDEFINED_SCHEMA),
3073 errmsg(
"no schema has been selected to create in")));
3094 (
errcode(ERRCODE_UNDEFINED_SCHEMA),
3095 errmsg(
"schema \"%s\" does not exist", nspname)));
3125 (
errcode(ERRCODE_SYNTAX_ERROR),
3126 errmsg(
"improper relation name (too many dotted names): %s",
3164 elog(
ERROR,
"unexpected node type in name list: %d",
3247 result = (strncmp(nspname,
"pg_temp_", 8) == 0) ||
3248 (strncmp(nspname,
"pg_toast_temp_", 14) == 0);
3326 if (strncmp(nspname,
"pg_temp_", 8) == 0)
3327 result = atoi(nspname + 8);
3328 else if (strncmp(nspname,
"pg_toast_temp_", 14) == 0)
3329 result = atoi(nspname + 14);
3487 if (lc &&
lfirst_oid(lc) == PG_CATALOG_NAMESPACE)
3562 oidlist =
lcons_oid(PG_CATALOG_NAMESPACE, oidlist);
3606 elog(
ERROR,
"bogus PopOverrideSearchPath call");
3609 elog(
ERROR,
"bogus PopOverrideSearchPath call");
3647 char *collation_name;
3688 (
errcode(ERRCODE_UNDEFINED_OBJECT),
3689 errmsg(
"collation \"%s\" for encoding \"%s\" does not exist",
3701 char *conversion_name;
3743 (
errcode(ERRCODE_UNDEFINED_OBJECT),
3744 errmsg(
"conversion \"%s\" does not exist",
3819 temp_missing =
false;
3820 foreach(l, namelist)
3822 char *curname = (
char *)
lfirst(l);
3825 if (strcmp(curname,
"$user") == 0)
3846 else if (strcmp(curname,
"pg_temp") == 0)
3859 temp_missing =
true;
3891 oidlist =
lcons_oid(PG_CATALOG_NAMESPACE, oidlist);
3906 pathChanged =
false;
4007 (
errcode(ERRCODE_INSUFFICIENT_PRIVILEGE),
4008 errmsg(
"permission denied to create temporary tables in database \"%s\"",
4023 (
errcode(ERRCODE_READ_ONLY_SQL_TRANSACTION),
4024 errmsg(
"cannot create temporary tables during recovery")));
4029 (
errcode(ERRCODE_READ_ONLY_SQL_TRANSACTION),
4030 errmsg(
"cannot create temporary tables during a parallel operation")));
4064 snprintf(namespaceName,
sizeof(namespaceName),
"pg_toast_temp_%d",
4271 object.
classId = NamespaceRelationId;
4272 object.objectId = tempNamespaceId;
4273 object.objectSubId = 0;
4448 if (!includeImplicit)
4482 if (count < sarray_len)
4483 sarray[count] = namespaceId;
void aclcheck_error(AclResult aclerr, ObjectType objtype, const char *objectname)
AclResult object_aclcheck(Oid classid, Oid objectid, Oid roleid, AclMode mode)
bool object_ownercheck(Oid classid, Oid objectid, Oid roleid)
#define DatumGetArrayTypeP(X)
#define InvalidSubTransactionId
#define OidIsValid(objectId)
char * get_database_name(Oid dbid)
elog(ERROR, "%s: %s", p2, msg)
void performDeletion(const ObjectAddress *object, DropBehavior behavior, int flags)
#define PERFORM_DELETION_SKIP_EXTENSIONS
#define PERFORM_DELETION_QUIETLY
#define PERFORM_DELETION_SKIP_ORIGINAL
#define PERFORM_DELETION_INTERNAL
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
bool is_encoding_supported_by_icu(int encoding)
bool equal(const void *a, const void *b)
#define PG_RETURN_BOOL(x)
int get_func_arg_info(HeapTuple procTup, Oid **p_argtypes, char ***p_argnames, char **p_argmodes)
#define GUC_check_errdetail
#define HeapTupleIsValid(tuple)
#define IsParallelWorker()
void AcceptInvalidationMessages(void)
void CacheRegisterSyscacheCallback(int cacheid, SyscacheCallbackFunction func, Datum arg)
void before_shmem_exit(pg_on_exit_callback function, Datum arg)
Assert(fmt[strlen(fmt) - 1] !='\n')
List * lappend_oid(List *list, Oid datum)
List * list_copy(const List *oldlist)
List * list_delete_first(List *list)
void list_free(List *list)
bool list_member_oid(const List *list, Oid datum)
List * lcons(void *datum, List *list)
List * lcons_oid(Oid datum, List *list)
bool ConditionalLockRelationOid(Oid relid, LOCKMODE lockmode)
void UnlockRelationOid(Oid relid, LOCKMODE lockmode)
void LockDatabaseObject(Oid classid, Oid objid, uint16 objsubid, LOCKMODE lockmode)
void LockRelationOid(Oid relid, LOCKMODE lockmode)
void UnlockDatabaseObject(Oid classid, Oid objid, uint16 objsubid, LOCKMODE lockmode)
char * get_namespace_name(Oid nspid)
char get_rel_relkind(Oid relid)
Oid get_relname_relid(const char *relname, Oid relnamespace)
RangeVar * makeRangeVar(char *schemaname, char *relname, int location)
int GetDatabaseEncoding(void)
const char * GetDatabaseEncodingName(void)
char * pstrdup(const char *in)
void pfree(void *pointer)
MemoryContext TopMemoryContext
void * palloc0(Size size)
#define IsBootstrapProcessingMode()
Oid RangeVarGetAndCheckCreationNamespace(RangeVar *relation, LOCKMODE lockmode, Oid *existing_relation_id)
Oid OpclassnameGetOpcid(Oid amid, const char *opcname)
bool isTempOrTempToastNamespace(Oid namespaceId)
void ResetTempTableNamespace(void)
static bool baseTempCreationPending
Oid FindDefaultConversionProc(int32 for_encoding, int32 to_encoding)
Oid OpernameGetOprid(List *names, Oid oprleft, Oid oprright)
Oid LookupExplicitNamespace(const char *nspname, bool missing_ok)
Datum pg_is_other_temp_schema(PG_FUNCTION_ARGS)
bool TSTemplateIsVisible(Oid tmplId)
bool OpfamilyIsVisible(Oid opfid)
void DeconstructQualifiedName(List *names, char **nspname_p, char **objname_p)
bool CollationIsVisible(Oid collid)
static Oid baseCreationNamespace
bool TypeIsVisible(Oid typid)
bool isOtherTempNamespace(Oid namespaceId)
Oid QualifiedNameGetCreationNamespace(List *names, char **objname_p)
static Oid lookup_collation(const char *collname, Oid collnamespace, int32 encoding)
Oid CollationGetCollid(const char *collname)
void assign_search_path(const char *newval, void *extra)
RangeVar * makeRangeVarFromNameList(List *names)
static Oid activeCreationNamespace
void PushOverrideSearchPath(OverrideSearchPath *newpath)
bool isTempNamespace(Oid namespaceId)
bool isAnyTempNamespace(Oid namespaceId)
Datum pg_operator_is_visible(PG_FUNCTION_ARGS)
static List * activeSearchPath
bool ConversionIsVisible(Oid conid)
static bool baseSearchPathValid
static SubTransactionId myTempNamespaceSubID
void PopOverrideSearchPath(void)
Oid get_statistics_object_oid(List *names, bool missing_ok)
Oid LookupCreationNamespace(const char *nspname)
void RangeVarAdjustRelationPersistence(RangeVar *newRelation, Oid nspid)
static Oid myTempToastNamespace
Datum pg_collation_is_visible(PG_FUNCTION_ARGS)
List * fetch_search_path(bool includeImplicit)
Oid get_collation_oid(List *collname, bool missing_ok)
Datum pg_function_is_visible(PG_FUNCTION_ARGS)
static List * overrideStack
Datum pg_type_is_visible(PG_FUNCTION_ARGS)
char * NameListToQuotedString(List *names)
bool OverrideSearchPathMatchesCurrent(OverrideSearchPath *path)
FuncCandidateList FuncnameGetCandidates(List *names, int nargs, List *argnames, bool expand_variadic, bool expand_defaults, bool include_out_arguments, bool missing_ok)
Datum pg_opclass_is_visible(PG_FUNCTION_ARGS)
Oid get_namespace_oid(const char *nspname, bool missing_ok)
Oid TypenameGetTypidExtended(const char *typname, bool temp_ok)
Oid RangeVarGetCreationNamespace(const RangeVar *newRelation)
bool RelationIsVisible(Oid relid)
OverrideSearchPath * CopyOverrideSearchPath(OverrideSearchPath *path)
Datum pg_ts_config_is_visible(PG_FUNCTION_ARGS)
Datum pg_opfamily_is_visible(PG_FUNCTION_ARGS)
bool OpclassIsVisible(Oid opcid)
Oid ConversionGetConid(const char *conname)
void AtEOSubXact_Namespace(bool isCommit, SubTransactionId mySubid, SubTransactionId parentSubid)
TempNamespaceStatus checkTempNamespaceStatus(Oid namespaceId)
Datum pg_conversion_is_visible(PG_FUNCTION_ARGS)
void CheckSetNamespace(Oid oldNspOid, Oid nspOid)
void GetTempNamespaceState(Oid *tempNamespaceId, Oid *tempToastNamespaceId)
void InitializeSearchPath(void)
bool OperatorIsVisible(Oid oprid)
char * namespace_search_path
bool StatisticsObjIsVisible(Oid relid)
bool TSParserIsVisible(Oid prsId)
static void RemoveTempRelations(Oid tempNamespaceId)
static void recomputeNamespacePath(void)
static Oid myTempNamespace
OverrideSearchPath * GetOverrideSearchPath(MemoryContext context)
Datum pg_statistics_obj_is_visible(PG_FUNCTION_ARGS)
static bool MatchNamedCall(HeapTuple proctup, int nargs, List *argnames, bool include_out_arguments, int pronargs, int **argnumbers)
static bool activeTempCreationPending
Oid get_conversion_oid(List *conname, bool missing_ok)
static void InitTempTableNamespace(void)
bool FunctionIsVisible(Oid funcid)
Oid get_ts_dict_oid(List *names, bool missing_ok)
char * NameListToString(List *names)
Oid get_ts_parser_oid(List *names, bool missing_ok)
Datum pg_ts_template_is_visible(PG_FUNCTION_ARGS)
static void AccessTempTableNamespace(bool force)
void SetTempNamespaceState(Oid tempNamespaceId, Oid tempToastNamespaceId)
Oid GetTempToastNamespace(void)
Oid OpfamilynameGetOpfid(Oid amid, const char *opfname)
void AtEOXact_Namespace(bool isCommit, bool parallel)
Oid get_ts_config_oid(List *names, bool missing_ok)
FuncCandidateList OpernameGetCandidates(List *names, char oprkind, bool missing_schema_ok)
bool check_search_path(char **newval, void **extra, GucSource source)
Oid LookupNamespaceNoError(const char *nspname)
static void RemoveTempRelationsCallback(int code, Datum arg)
Oid TypenameGetTypid(const char *typname)
int fetch_search_path_array(Oid *sarray, int sarray_len)
Oid RangeVarGetRelidExtended(const RangeVar *relation, LOCKMODE lockmode, uint32 flags, RangeVarGetRelidCallback callback, void *callback_arg)
static uint64 activePathGeneration
bool TSConfigIsVisible(Oid cfgid)
Datum pg_ts_dict_is_visible(PG_FUNCTION_ARGS)
Oid RelnameGetRelid(const char *relname)
int GetTempNamespaceBackendId(Oid namespaceId)
static List * baseSearchPath
Datum pg_my_temp_schema(PG_FUNCTION_ARGS)
Datum pg_ts_parser_is_visible(PG_FUNCTION_ARGS)
bool TSDictionaryIsVisible(Oid dictId)
Datum pg_table_is_visible(PG_FUNCTION_ARGS)
bool isTempToastNamespace(Oid namespaceId)
Oid get_ts_template_oid(List *names, bool missing_ok)
static void NamespaceCallback(Datum arg, int cacheid, uint32 hashvalue)
void(* RangeVarGetRelidCallback)(const RangeVar *relation, Oid relId, Oid oldRelId, void *callback_arg)
@ TEMP_NAMESPACE_NOT_TEMP
struct _FuncCandidateList * FuncCandidateList
#define IsA(nodeptr, _type_)
#define InvokeNamespaceSearchHook(objectId, ereport_on_violation)
ObjectType get_relkind_objtype(char relkind)
static MemoryContext MemoryContextSwitchTo(MemoryContext context)
FormData_pg_authid * Form_pg_authid
FormData_pg_class * Form_pg_class
FormData_pg_collation * Form_pg_collation
Oid FindDefaultConversion(Oid name_space, int32 for_encoding, int32 to_encoding)
FormData_pg_conversion * Form_pg_conversion
static int list_length(const List *l)
#define list_make1_oid(x1)
static ListCell * list_head(const List *l)
static ListCell * lnext(const List *l, const ListCell *c)
Oid NamespaceCreate(const char *nspName, Oid ownerId, bool isTemp)
FormData_pg_opclass * Form_pg_opclass
FormData_pg_operator * Form_pg_operator
FormData_pg_opfamily * Form_pg_opfamily
FormData_pg_proc * Form_pg_proc
static rewind_source * source
FormData_pg_statistic_ext * Form_pg_statistic_ext
FormData_pg_ts_config * Form_pg_ts_config
FormData_pg_ts_dict * Form_pg_ts_dict
FormData_pg_ts_parser * Form_pg_ts_parser
FormData_pg_ts_template * Form_pg_ts_template
FormData_pg_type * Form_pg_type
#define ERRCODE_UNDEFINED_TABLE
static Datum PointerGetDatum(const void *X)
static Datum ObjectIdGetDatum(Oid X)
static Datum CStringGetDatum(const char *X)
static Datum Int32GetDatum(int32 X)
const char * quote_identifier(const char *ident)
uint64 SharedInvalidMessageCounter
PGPROC * BackendIdGetProc(int backendID)
Snapshot GetTransactionSnapshot(void)
void PushActiveSnapshot(Snapshot snapshot)
void PopActiveSnapshot(void)
void appendStringInfoString(StringInfo str, const char *s)
void appendStringInfoChar(StringInfo str, char ch)
void initStringInfo(StringInfo str)
struct _FuncCandidateList * next
Oid args[FLEXIBLE_ARRAY_MEMBER]
CatCTup * members[FLEXIBLE_ARRAY_MEMBER]
void ReleaseSysCache(HeapTuple tuple)
HeapTuple SearchSysCache1(int cacheId, Datum key1)
HeapTuple SearchSysCache3(int cacheId, Datum key1, Datum key2, Datum key3)
Datum SysCacheGetAttr(int cacheId, HeapTuple tup, AttrNumber attributeNumber, bool *isNull)
HeapTuple SearchSysCache4(int cacheId, Datum key1, Datum key2, Datum key3, Datum key4)
#define SearchSysCacheList3(cacheId, key1, key2, key3)
#define ReleaseSysCacheList(x)
#define SearchSysCacheExists2(cacheId, key1, key2)
#define SearchSysCacheList1(cacheId, key1)
#define SearchSysCacheExists1(cacheId, key1)
#define GetSysCacheOid3(cacheId, oidcol, key1, key2, key3)
#define GetSysCacheOid1(cacheId, oidcol, key1)
#define GetSysCacheOid2(cacheId, oidcol, key1, key2)
static void callback(struct sockaddr *addr, struct sockaddr *mask, void *unused)
String * makeString(char *str)
bool SplitIdentifierString(char *rawstring, char separator, List **namelist)
SubTransactionId GetCurrentSubTransactionId(void)
int GetCurrentTransactionNestLevel(void)
void CommandCounterIncrement(void)
void StartTransactionCommand(void)
void CommitTransactionCommand(void)
void AbortOutOfAnyTransaction(void)
#define XACT_FLAGS_ACCESSEDTEMPNAMESPACE
bool RecoveryInProgress(void)