Header And Logo

PostgreSQL
| The world's most advanced open source database.

pg_type_fn.h

Go to the documentation of this file.
00001 /*-------------------------------------------------------------------------
00002  *
00003  * pg_type_fn.h
00004  *   prototypes for functions in catalog/pg_type.c
00005  *
00006  *
00007  * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group
00008  * Portions Copyright (c) 1994, Regents of the University of California
00009  *
00010  * src/include/catalog/pg_type_fn.h
00011  *
00012  *-------------------------------------------------------------------------
00013  */
00014 #ifndef PG_TYPE_FN_H
00015 #define PG_TYPE_FN_H
00016 
00017 #include "nodes/nodes.h"
00018 
00019 
00020 extern Oid TypeShellMake(const char *typeName,
00021               Oid typeNamespace,
00022               Oid ownerId);
00023 
00024 extern Oid TypeCreate(Oid newTypeOid,
00025            const char *typeName,
00026            Oid typeNamespace,
00027            Oid relationOid,
00028            char relationKind,
00029            Oid ownerId,
00030            int16 internalSize,
00031            char typeType,
00032            char typeCategory,
00033            bool typePreferred,
00034            char typDelim,
00035            Oid inputProcedure,
00036            Oid outputProcedure,
00037            Oid receiveProcedure,
00038            Oid sendProcedure,
00039            Oid typmodinProcedure,
00040            Oid typmodoutProcedure,
00041            Oid analyzeProcedure,
00042            Oid elementType,
00043            bool isImplicitArray,
00044            Oid arrayType,
00045            Oid baseType,
00046            const char *defaultTypeValue,
00047            char *defaultTypeBin,
00048            bool passedByValue,
00049            char alignment,
00050            char storage,
00051            int32 typeMod,
00052            int32 typNDims,
00053            bool typeNotNull,
00054            Oid typeCollation);
00055 
00056 extern void GenerateTypeDependencies(Oid typeNamespace,
00057                          Oid typeObjectId,
00058                          Oid relationOid,
00059                          char relationKind,
00060                          Oid owner,
00061                          Oid inputProcedure,
00062                          Oid outputProcedure,
00063                          Oid receiveProcedure,
00064                          Oid sendProcedure,
00065                          Oid typmodinProcedure,
00066                          Oid typmodoutProcedure,
00067                          Oid analyzeProcedure,
00068                          Oid elementType,
00069                          bool isImplicitArray,
00070                          Oid baseType,
00071                          Oid typeCollation,
00072                          Node *defaultExpr,
00073                          bool rebuild);
00074 
00075 extern void RenameTypeInternal(Oid typeOid, const char *newTypeName,
00076                    Oid typeNamespace);
00077 
00078 extern char *makeArrayTypeName(const char *typeName, Oid typeNamespace);
00079 
00080 extern bool moveArrayTypeName(Oid typeOid, const char *typeName,
00081                   Oid typeNamespace);
00082 
00083 #endif   /* PG_TYPE_FN_H */