1
/*-------------------------------------------------------------------------
4
* handle type operations for parser
6
* Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group
7
* Portions Copyright (c) 1994, Regents of the University of California
9
* src/include/parser/parse_type.h
11
*-------------------------------------------------------------------------
16
#include "access/htup.h"
17
#include "parser/parse_node.h"
20
typedef HeapTuple Type;
22
extern Type LookupTypeName(ParseState *pstate, const TypeName *typeName,
24
extern Type typenameType(ParseState *pstate, const TypeName *typeName,
26
extern Oid typenameTypeId(ParseState *pstate, const TypeName *typeName);
27
extern void typenameTypeIdAndMod(ParseState *pstate, const TypeName *typeName,
28
Oid *typeid_p, int32 *typmod_p);
30
extern char *TypeNameToString(const TypeName *typeName);
31
extern char *TypeNameListToString(List *typenames);
33
extern Oid LookupCollation(ParseState *pstate, List *collnames, int location);
34
extern Oid GetColumnDefCollation(ParseState *pstate, ColumnDef *coldef, Oid typeOid);
36
extern Type typeidType(Oid id);
38
extern Oid typeTypeId(Type tp);
39
extern int16 typeLen(Type t);
40
extern bool typeByVal(Type t);
41
extern char *typeTypeName(Type t);
42
extern Oid typeTypeRelid(Type typ);
43
extern Oid typeTypeCollation(Type typ);
44
extern Datum stringTypeDatum(Type tp, char *string, int32 atttypmod);
46
extern Oid typeidTypeRelid(Oid type_id);
48
extern void parseTypeString(const char *str, Oid *typeid_p, int32 *typmod_p);
50
#define ISCOMPLEX(typeid) (typeidTypeRelid(typeid) != InvalidOid)
52
#endif /* PARSE_TYPE_H */