OSDN Git Service

rebuid:
[eos/hostdependX86MAC64.git] / util / X86MAC64 / include / postgresql / server / parser / parse_type.h
1 /*-------------------------------------------------------------------------
2  *
3  * parse_type.h
4  *              handle type operations for parser
5  *
6  * Portions Copyright (c) 1996-2014, PostgreSQL Global Development Group
7  * Portions Copyright (c) 1994, Regents of the University of California
8  *
9  * src/include/parser/parse_type.h
10  *
11  *-------------------------------------------------------------------------
12  */
13 #ifndef PARSE_TYPE_H
14 #define PARSE_TYPE_H
15
16 #include "access/htup.h"
17 #include "parser/parse_node.h"
18
19
20 typedef HeapTuple Type;
21
22 extern Type LookupTypeName(ParseState *pstate, const TypeName *typeName,
23                            int32 *typmod_p, bool missing_ok);
24 extern Oid LookupTypeNameOid(ParseState *pstate, const TypeName *typeName,
25                                   bool missing_ok);
26 extern Type typenameType(ParseState *pstate, const TypeName *typeName,
27                          int32 *typmod_p);
28 extern Oid      typenameTypeId(ParseState *pstate, const TypeName *typeName);
29 extern void typenameTypeIdAndMod(ParseState *pstate, const TypeName *typeName,
30                                          Oid *typeid_p, int32 *typmod_p);
31
32 extern char *TypeNameToString(const TypeName *typeName);
33 extern char *TypeNameListToString(List *typenames);
34
35 extern Oid      LookupCollation(ParseState *pstate, List *collnames, int location);
36 extern Oid      GetColumnDefCollation(ParseState *pstate, ColumnDef *coldef, Oid typeOid);
37
38 extern Type typeidType(Oid id);
39
40 extern Oid      typeTypeId(Type tp);
41 extern int16 typeLen(Type t);
42 extern bool typeByVal(Type t);
43 extern char *typeTypeName(Type t);
44 extern Oid      typeTypeRelid(Type typ);
45 extern Oid      typeTypeCollation(Type typ);
46 extern Datum stringTypeDatum(Type tp, char *string, int32 atttypmod);
47
48 extern Oid      typeidTypeRelid(Oid type_id);
49
50 extern void parseTypeString(const char *str, Oid *typeid_p, int32 *typmod_p, bool missing_ok);
51
52 #define ISCOMPLEX(typeid) (typeidTypeRelid(typeid) != InvalidOid)
53
54 #endif   /* PARSE_TYPE_H */