23 #include "catalog/pg_type_d.h"
230 #ifdef CATALOG_VARLEN
268 #ifdef EXPOSE_TO_CLIENT_CODE
273 #define TYPTYPE_BASE 'b'
274 #define TYPTYPE_COMPOSITE 'c'
275 #define TYPTYPE_DOMAIN 'd'
276 #define TYPTYPE_ENUM 'e'
277 #define TYPTYPE_MULTIRANGE 'm'
278 #define TYPTYPE_PSEUDO 'p'
279 #define TYPTYPE_RANGE 'r'
281 #define TYPCATEGORY_INVALID '\0'
282 #define TYPCATEGORY_ARRAY 'A'
283 #define TYPCATEGORY_BOOLEAN 'B'
284 #define TYPCATEGORY_COMPOSITE 'C'
285 #define TYPCATEGORY_DATETIME 'D'
286 #define TYPCATEGORY_ENUM 'E'
287 #define TYPCATEGORY_GEOMETRIC 'G'
288 #define TYPCATEGORY_NETWORK 'I'
289 #define TYPCATEGORY_NUMERIC 'N'
290 #define TYPCATEGORY_PSEUDOTYPE 'P'
291 #define TYPCATEGORY_RANGE 'R'
292 #define TYPCATEGORY_STRING 'S'
293 #define TYPCATEGORY_TIMESPAN 'T'
294 #define TYPCATEGORY_USER 'U'
295 #define TYPCATEGORY_BITSTRING 'V'
296 #define TYPCATEGORY_UNKNOWN 'X'
297 #define TYPCATEGORY_INTERNAL 'Z'
299 #define TYPALIGN_CHAR 'c'
300 #define TYPALIGN_SHORT 's'
301 #define TYPALIGN_INT 'i'
302 #define TYPALIGN_DOUBLE 'd'
304 #define TYPSTORAGE_PLAIN 'p'
305 #define TYPSTORAGE_EXTERNAL 'e'
306 #define TYPSTORAGE_EXTENDED 'x'
307 #define TYPSTORAGE_MAIN 'm'
310 #define IsPolymorphicType(typid) \
311 (IsPolymorphicTypeFamily1(typid) || \
312 IsPolymorphicTypeFamily2(typid))
315 #define IsPolymorphicTypeFamily1(typid) \
316 ((typid) == ANYELEMENTOID || \
317 (typid) == ANYARRAYOID || \
318 (typid) == ANYNONARRAYOID || \
319 (typid) == ANYENUMOID || \
320 (typid) == ANYRANGEOID || \
321 (typid) == ANYMULTIRANGEOID)
323 #define IsPolymorphicTypeFamily2(typid) \
324 ((typid) == ANYCOMPATIBLEOID || \
325 (typid) == ANYCOMPATIBLEARRAYOID || \
326 (typid) == ANYCOMPATIBLENONARRAYOID || \
327 (typid) == ANYCOMPATIBLERANGEOID || \
328 (typid) == ANYCOMPATIBLEMULTIRANGEOID)
331 #define IsTrueArrayType(typeForm) \
332 (OidIsValid((typeForm)->typelem) && \
333 (typeForm)->typsubscript == F_ARRAY_SUBSCRIPT_HANDLER)
339 #define CASHOID MONEYOID
340 #define LSNOID PG_LSNOID
350 const char *typeName,
362 Oid receiveProcedure,
364 Oid typmodinProcedure,
365 Oid typmodoutProcedure,
366 Oid analyzeProcedure,
367 Oid subscriptProcedure,
369 bool isImplicitArray,
372 const char *defaultTypeValue,
373 char *defaultTypeBin,
388 bool isImplicitArray,
389 bool isDependentType,
390 bool makeExtensionDep,
Datum array_typanalyze(PG_FUNCTION_ARGS)
Datum array_recv(PG_FUNCTION_ARGS)
Datum array_send(PG_FUNCTION_ARGS)
Datum array_in(PG_FUNCTION_ARGS)
Datum array_out(PG_FUNCTION_ARGS)
Datum array_subscript_handler(PG_FUNCTION_ARGS)
#define BKI_LOOKUP(catalog)
#define BKI_LOOKUP_OPT(catalog)
#define BKI_ROWTYPE_OID(oid, oidmacro)
char * makeMultirangeTypeName(const char *rangeTypeName, Oid typeNamespace)
DECLARE_UNIQUE_INDEX_PKEY(pg_type_oid_index, 2703, TypeOidIndexId, pg_type, btree(oid oid_ops))
TypeRelation_Rowtype_Id BKI_SCHEMA_MACRO
void GenerateTypeDependencies(HeapTuple typeTuple, Relation typeCatalog, Node *defaultExpr, void *typacl, char relationKind, bool isImplicitArray, bool isDependentType, bool makeExtensionDep, bool rebuild)
void RenameTypeInternal(Oid typeOid, const char *newTypeName, Oid typeNamespace)
ObjectAddress TypeCreate(Oid newTypeOid, const char *typeName, Oid typeNamespace, Oid relationOid, char relationKind, Oid ownerId, int16 internalSize, char typeType, char typeCategory, bool typePreferred, char typDelim, Oid inputProcedure, Oid outputProcedure, Oid receiveProcedure, Oid sendProcedure, Oid typmodinProcedure, Oid typmodoutProcedure, Oid analyzeProcedure, Oid subscriptProcedure, Oid elementType, bool isImplicitArray, Oid arrayType, Oid baseType, const char *defaultTypeValue, char *defaultTypeBin, bool passedByValue, char alignment, char storage, int32 typeMod, int32 typNDims, bool typeNotNull, Oid typeCollation)
char * makeArrayTypeName(const char *typeName, Oid typeNamespace)
int16 typlen BKI_ARRAY_DEFAULT(-1)
bool moveArrayTypeName(Oid typeOid, const char *typeName, Oid typeNamespace)
CATALOG(pg_type, 1247, TypeRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71
FormData_pg_type * Form_pg_type
ObjectAddress TypeShellMake(const char *typeName, Oid typeNamespace, Oid ownerId)
DECLARE_UNIQUE_INDEX(pg_type_typname_nsp_index, 2704, TypeNameNspIndexId, pg_type, btree(typname name_ops, typnamespace oid_ops))
Oid typnamespace BKI_DEFAULT(pg_catalog) BKI_LOOKUP(pg_namespace)
DECLARE_TOAST(pg_type, 4171, 4172)