in src/datatype.c [46:77]
static Oid create_c_func_internal(Oid namespaceId, Oid funcid,
oidvector *parameterTypes, Oid prorettype, char *prosrc,
char *probin);
static Oid find_user_defined_func(List *procname, bool typeInput);
static void check_user_defined_func(Oid funcid, Oid typeOid, Oid expectedNamespace, bool typeInput);
static char *get_probin(Oid fn_oid);
static List *get_qualified_funcname(Oid fn_oid);
static void check_user_operator_func(Oid funcid, Oid typeOid, Oid expectedNamespace);
static void check_pgtle_base_type(Oid typeOid);
static bool is_pgtle_io_func(Oid funcid, bool typeInput);
static Oid get_type_func_argtype(bool typeInput);
static Oid get_type_func_rettype(bool typeInput);
static char get_type_alignment(char *alignmentStr);
static char get_type_storage(char *storageStr);
static Datum
pg_tle_create_base_type_internal(Oid typeNamespace,
char *typeName,
Oid inputFuncId,
Oid outputFuncId,
int16 internalLength,
char *alignmentStr,
char *storageStr,
char *funcProbin);
static void
check_is_pgtle_admin(void)
{
Oid tleadminoid;
tleadminoid = get_role_oid(PG_TLE_ADMIN, false);
CHECK_CAN_SET_ROLE(GetUserId(), tleadminoid);
}