Committed by Greg Sabino Mullane <[email protected]>
Subject: [DBD::Pg 2/2] Update with latest type information from Postgres
---
Pg.pm | 92 +++++++++++++++++++++---------------------
Pg.xs | 1 +
t/99_pod.t | 1 +
types.c | 132 +++++++++++++++++++++++++++++++------------------------------
types.h | 1 +
5 files changed, 116 insertions(+), 111 deletions(-)
diff --git a/Pg.pm b/Pg.pm
index 69d91f7..c1c355f 100644
--- a/Pg.pm
+++ b/Pg.pm
@@ -35,31 +35,31 @@ use 5.008001;
PG_BOXARRAY PG_BPCHAR PG_BPCHARARRAY PG_BYTEA
PG_BYTEAARRAY
PG_CHAR PG_CHARARRAY PG_CID PG_CIDARRAY PG_CIDR
PG_CIDRARRAY PG_CIRCLE PG_CIRCLEARRAY PG_CSTRING
PG_CSTRINGARRAY
- PG_DATE PG_DATEARRAY PG_DATERANGE PG_DATERANGEARRAY
PG_FDW_HANDLER
- PG_FLOAT4 PG_FLOAT4ARRAY PG_FLOAT8 PG_FLOAT8ARRAY
PG_GTSVECTOR
- PG_GTSVECTORARRAY PG_INET PG_INETARRAY PG_INT2
PG_INT2ARRAY
- PG_INT2VECTOR PG_INT2VECTORARRAY PG_INT4 PG_INT4ARRAY
PG_INT4RANGE
- PG_INT4RANGEARRAY PG_INT8 PG_INT8ARRAY PG_INT8RANGE
PG_INT8RANGEARRAY
- PG_INTERNAL PG_INTERVAL PG_INTERVALARRAY PG_JSON
PG_JSONARRAY
- PG_LANGUAGE_HANDLER PG_LINE PG_LINEARRAY PG_LSEG
PG_LSEGARRAY
- PG_MACADDR PG_MACADDRARRAY PG_MONEY PG_MONEYARRAY
PG_NAME
- PG_NAMEARRAY PG_NUMERIC PG_NUMERICARRAY PG_NUMRANGE
PG_NUMRANGEARRAY
- PG_OID PG_OIDARRAY PG_OIDVECTOR PG_OIDVECTORARRAY
PG_OPAQUE
- PG_PATH PG_PATHARRAY PG_PG_ATTRIBUTE PG_PG_CLASS
PG_PG_NODE_TREE
- PG_PG_PROC PG_PG_TYPE PG_POINT PG_POINTARRAY PG_POLYGON
- PG_POLYGONARRAY PG_RECORD PG_RECORDARRAY PG_REFCURSOR
PG_REFCURSORARRAY
- PG_REGCLASS PG_REGCLASSARRAY PG_REGCONFIG
PG_REGCONFIGARRAY PG_REGDICTIONARY
- PG_REGDICTIONARYARRAY PG_REGOPER PG_REGOPERARRAY
PG_REGOPERATOR PG_REGOPERATORARRAY
- PG_REGPROC PG_REGPROCARRAY PG_REGPROCEDURE
PG_REGPROCEDUREARRAY PG_REGTYPE
- PG_REGTYPEARRAY PG_RELTIME PG_RELTIMEARRAY PG_SMGR
PG_TEXT
- PG_TEXTARRAY PG_TID PG_TIDARRAY PG_TIME PG_TIMEARRAY
- PG_TIMESTAMP PG_TIMESTAMPARRAY PG_TIMESTAMPTZ
PG_TIMESTAMPTZARRAY PG_TIMETZ
- PG_TIMETZARRAY PG_TINTERVAL PG_TINTERVALARRAY
PG_TRIGGER PG_TSQUERY
- PG_TSQUERYARRAY PG_TSRANGE PG_TSRANGEARRAY PG_TSTZRANGE
PG_TSTZRANGEARRAY
- PG_TSVECTOR PG_TSVECTORARRAY PG_TXID_SNAPSHOT
PG_TXID_SNAPSHOTARRAY PG_UNKNOWN
- PG_UUID PG_UUIDARRAY PG_VARBIT PG_VARBITARRAY PG_VARCHAR
- PG_VARCHARARRAY PG_VOID PG_XID PG_XIDARRAY PG_XML
- PG_XMLARRAY
+ PG_DATE PG_DATEARRAY PG_DATERANGE PG_DATERANGEARRAY
PG_EVENT_TRIGGER
+ PG_FDW_HANDLER PG_FLOAT4 PG_FLOAT4ARRAY PG_FLOAT8
PG_FLOAT8ARRAY
+ PG_GTSVECTOR PG_GTSVECTORARRAY PG_INET PG_INETARRAY
PG_INT2
+ PG_INT2ARRAY PG_INT2VECTOR PG_INT2VECTORARRAY PG_INT4
PG_INT4ARRAY
+ PG_INT4RANGE PG_INT4RANGEARRAY PG_INT8 PG_INT8ARRAY
PG_INT8RANGE
+ PG_INT8RANGEARRAY PG_INTERNAL PG_INTERVAL
PG_INTERVALARRAY PG_JSON
+ PG_JSONARRAY PG_LANGUAGE_HANDLER PG_LINE PG_LINEARRAY
PG_LSEG
+ PG_LSEGARRAY PG_MACADDR PG_MACADDRARRAY PG_MONEY
PG_MONEYARRAY
+ PG_NAME PG_NAMEARRAY PG_NUMERIC PG_NUMERICARRAY
PG_NUMRANGE
+ PG_NUMRANGEARRAY PG_OID PG_OIDARRAY PG_OIDVECTOR
PG_OIDVECTORARRAY
+ PG_OPAQUE PG_PATH PG_PATHARRAY PG_PG_ATTRIBUTE
PG_PG_CLASS
+ PG_PG_NODE_TREE PG_PG_PROC PG_PG_TYPE PG_POINT
PG_POINTARRAY
+ PG_POLYGON PG_POLYGONARRAY PG_RECORD PG_RECORDARRAY
PG_REFCURSOR
+ PG_REFCURSORARRAY PG_REGCLASS PG_REGCLASSARRAY
PG_REGCONFIG PG_REGCONFIGARRAY
+ PG_REGDICTIONARY PG_REGDICTIONARYARRAY PG_REGOPER
PG_REGOPERARRAY PG_REGOPERATOR
+ PG_REGOPERATORARRAY PG_REGPROC PG_REGPROCARRAY
PG_REGPROCEDURE PG_REGPROCEDUREARRAY
+ PG_REGTYPE PG_REGTYPEARRAY PG_RELTIME PG_RELTIMEARRAY
PG_SMGR
+ PG_TEXT PG_TEXTARRAY PG_TID PG_TIDARRAY PG_TIME
+ PG_TIMEARRAY PG_TIMESTAMP PG_TIMESTAMPARRAY
PG_TIMESTAMPTZ PG_TIMESTAMPTZARRAY
+ PG_TIMETZ PG_TIMETZARRAY PG_TINTERVAL PG_TINTERVALARRAY
PG_TRIGGER
+ PG_TSQUERY PG_TSQUERYARRAY PG_TSRANGE PG_TSRANGEARRAY
PG_TSTZRANGE
+ PG_TSTZRANGEARRAY PG_TSVECTOR PG_TSVECTORARRAY
PG_TXID_SNAPSHOT PG_TXID_SNAPSHOTARRAY
+ PG_UNKNOWN PG_UUID PG_UUIDARRAY PG_VARBIT PG_VARBITARRAY
+ PG_VARCHAR PG_VARCHARARRAY PG_VOID PG_XID PG_XIDARRAY
+ PG_XML PG_XMLARRAY
)]
);
@@ -3382,27 +3382,27 @@ The current list of Postgres data types exported is:
PG_BOOL PG_BOOLARRAY PG_BOX PG_BOXARRAY PG_BPCHAR PG_BPCHARARRAY
PG_BYTEA PG_BYTEAARRAY PG_CHAR PG_CHARARRAY PG_CID PG_CIDARRAY
PG_CIDR PG_CIDRARRAY PG_CIRCLE PG_CIRCLEARRAY PG_CSTRING PG_CSTRINGARRAY
- PG_DATE PG_DATEARRAY PG_DATERANGE PG_DATERANGEARRAY PG_FDW_HANDLER PG_FLOAT4
- PG_FLOAT4ARRAY PG_FLOAT8 PG_FLOAT8ARRAY PG_GTSVECTOR PG_GTSVECTORARRAY PG_INET
- PG_INETARRAY PG_INT2 PG_INT2ARRAY PG_INT2VECTOR PG_INT2VECTORARRAY PG_INT4
- PG_INT4ARRAY PG_INT4RANGE PG_INT4RANGEARRAY PG_INT8 PG_INT8ARRAY PG_INT8RANGE
- PG_INT8RANGEARRAY PG_INTERNAL PG_INTERVAL PG_INTERVALARRAY PG_JSON
PG_JSONARRAY
- PG_LANGUAGE_HANDLER PG_LINE PG_LINEARRAY PG_LSEG PG_LSEGARRAY PG_MACADDR
- PG_MACADDRARRAY PG_MONEY PG_MONEYARRAY PG_NAME PG_NAMEARRAY PG_NUMERIC
- PG_NUMERICARRAY PG_NUMRANGE PG_NUMRANGEARRAY PG_OID PG_OIDARRAY PG_OIDVECTOR
- PG_OIDVECTORARRAY PG_OPAQUE PG_PATH PG_PATHARRAY PG_PG_ATTRIBUTE PG_PG_CLASS
- PG_PG_NODE_TREE PG_PG_PROC PG_PG_TYPE PG_POINT PG_POINTARRAY PG_POLYGON
- PG_POLYGONARRAY PG_RECORD PG_RECORDARRAY PG_REFCURSOR PG_REFCURSORARRAY
PG_REGCLASS
- PG_REGCLASSARRAY PG_REGCONFIG PG_REGCONFIGARRAY PG_REGDICTIONARY
PG_REGDICTIONARYARRAY PG_REGOPER
- PG_REGOPERARRAY PG_REGOPERATOR PG_REGOPERATORARRAY PG_REGPROC PG_REGPROCARRAY
PG_REGPROCEDURE
- PG_REGPROCEDUREARRAY PG_REGTYPE PG_REGTYPEARRAY PG_RELTIME PG_RELTIMEARRAY
PG_SMGR
- PG_TEXT PG_TEXTARRAY PG_TID PG_TIDARRAY PG_TIME PG_TIMEARRAY
- PG_TIMESTAMP PG_TIMESTAMPARRAY PG_TIMESTAMPTZ PG_TIMESTAMPTZARRAY PG_TIMETZ
PG_TIMETZARRAY
- PG_TINTERVAL PG_TINTERVALARRAY PG_TRIGGER PG_TSQUERY PG_TSQUERYARRAY
PG_TSRANGE
- PG_TSRANGEARRAY PG_TSTZRANGE PG_TSTZRANGEARRAY PG_TSVECTOR PG_TSVECTORARRAY
PG_TXID_SNAPSHOT
- PG_TXID_SNAPSHOTARRAY PG_UNKNOWN PG_UUID PG_UUIDARRAY PG_VARBIT PG_VARBITARRAY
- PG_VARCHAR PG_VARCHARARRAY PG_VOID PG_XID PG_XIDARRAY PG_XML
- PG_XMLARRAY
+ PG_DATE PG_DATEARRAY PG_DATERANGE PG_DATERANGEARRAY PG_EVENT_TRIGGER
PG_FDW_HANDLER
+ PG_FLOAT4 PG_FLOAT4ARRAY PG_FLOAT8 PG_FLOAT8ARRAY PG_GTSVECTOR
PG_GTSVECTORARRAY
+ PG_INET PG_INETARRAY PG_INT2 PG_INT2ARRAY PG_INT2VECTOR PG_INT2VECTORARRAY
+ PG_INT4 PG_INT4ARRAY PG_INT4RANGE PG_INT4RANGEARRAY PG_INT8 PG_INT8ARRAY
+ PG_INT8RANGE PG_INT8RANGEARRAY PG_INTERNAL PG_INTERVAL PG_INTERVALARRAY
PG_JSON
+ PG_JSONARRAY PG_LANGUAGE_HANDLER PG_LINE PG_LINEARRAY PG_LSEG PG_LSEGARRAY
+ PG_MACADDR PG_MACADDRARRAY PG_MONEY PG_MONEYARRAY PG_NAME PG_NAMEARRAY
+ PG_NUMERIC PG_NUMERICARRAY PG_NUMRANGE PG_NUMRANGEARRAY PG_OID PG_OIDARRAY
+ PG_OIDVECTOR PG_OIDVECTORARRAY PG_OPAQUE PG_PATH PG_PATHARRAY PG_PG_ATTRIBUTE
+ PG_PG_CLASS PG_PG_NODE_TREE PG_PG_PROC PG_PG_TYPE PG_POINT PG_POINTARRAY
+ PG_POLYGON PG_POLYGONARRAY PG_RECORD PG_RECORDARRAY PG_REFCURSOR
PG_REFCURSORARRAY
+ PG_REGCLASS PG_REGCLASSARRAY PG_REGCONFIG PG_REGCONFIGARRAY PG_REGDICTIONARY
PG_REGDICTIONARYARRAY
+ PG_REGOPER PG_REGOPERARRAY PG_REGOPERATOR PG_REGOPERATORARRAY PG_REGPROC
PG_REGPROCARRAY
+ PG_REGPROCEDURE PG_REGPROCEDUREARRAY PG_REGTYPE PG_REGTYPEARRAY PG_RELTIME
PG_RELTIMEARRAY
+ PG_SMGR PG_TEXT PG_TEXTARRAY PG_TID PG_TIDARRAY PG_TIME
+ PG_TIMEARRAY PG_TIMESTAMP PG_TIMESTAMPARRAY PG_TIMESTAMPTZ
PG_TIMESTAMPTZARRAY PG_TIMETZ
+ PG_TIMETZARRAY PG_TINTERVAL PG_TINTERVALARRAY PG_TRIGGER PG_TSQUERY
PG_TSQUERYARRAY
+ PG_TSRANGE PG_TSRANGEARRAY PG_TSTZRANGE PG_TSTZRANGEARRAY PG_TSVECTOR
PG_TSVECTORARRAY
+ PG_TXID_SNAPSHOT PG_TXID_SNAPSHOTARRAY PG_UNKNOWN PG_UUID PG_UUIDARRAY
PG_VARBIT
+ PG_VARBITARRAY PG_VARCHAR PG_VARCHARARRAY PG_VOID PG_XID PG_XIDARRAY
+ PG_XML PG_XMLARRAY
Data types are "sticky," in that once a data type is set to a certain
placeholder,
it will remain for that placeholder, unless it is explicitly set to something
diff --git a/Pg.xs b/Pg.xs
index 13d7779..071648d 100644
--- a/Pg.xs
+++ b/Pg.xs
@@ -58,6 +58,7 @@ constant(name=Nullch)
PG_DATEARRAY = 1182
PG_DATERANGE = 3912
PG_DATERANGEARRAY = 3913
+ PG_EVENT_TRIGGER = 3838
PG_FDW_HANDLER = 3115
PG_FLOAT4 = 700
PG_FLOAT4ARRAY = 1021
diff --git a/t/99_pod.t b/t/99_pod.t
index f2317f6..65ae15b 100644
--- a/t/99_pod.t
+++ b/t/99_pod.t
@@ -94,6 +94,7 @@ SKIP: {
qr{PG_DATEARRAY},
qr{PG_DATERANGE},
qr{PG_DATERANGEARRAY},
+ qr{PG_EVENT_TRIGGER},
qr{PG_FDW_HANDLER},
qr{PG_FLOAT4},
qr{PG_FLOAT4ARRAY},
diff --git a/types.c b/types.c
index 9171e12..3c717b2 100644
--- a/types.c
+++ b/types.c
@@ -101,6 +101,7 @@ static sql_type_info_t pg_types[] = {
{PG_CSTRING ,"cstring" ,1,',',"cstring_out"
,quote_string,dequote_string,{0},0},
{PG_DATE ,"date" ,1,',',"date_out"
,quote_string,dequote_string,{SQL_TYPE_DATE},0},
{PG_DATERANGE ,"daterange" ,1,',',"range_out"
,quote_string,dequote_string,{0},0},
+ {PG_EVENT_TRIGGER ,"event_trigger"
,1,',',"event_trigger_out",quote_string,dequote_string,{0},0},
{PG_FDW_HANDLER ,"fdw_handler" ,1,',',"fdw_handler_out"
,quote_string,dequote_string,{0},0},
{PG_FLOAT4 ,"float4" ,1,',',"float4out"
,quote_float ,null_dequote ,{0},2},
{PG_FLOAT8 ,"float8" ,1,',',"float8out"
,quote_float ,null_dequote ,{SQL_FLOAT},2},
@@ -260,71 +261,72 @@ sql_type_info_t* pg_type_data(int sql_type)
case PG_CSTRING: return &pg_types[83];
case PG_DATE: return &pg_types[84];
case PG_DATERANGE: return &pg_types[85];
- case PG_FDW_HANDLER: return &pg_types[86];
- case PG_FLOAT4: return &pg_types[87];
- case PG_FLOAT8: return &pg_types[88];
- case PG_GTSVECTOR: return &pg_types[89];
- case PG_INET: return &pg_types[90];
- case PG_INT2: return &pg_types[91];
- case PG_INT2VECTOR: return &pg_types[92];
- case PG_INT4: return &pg_types[93];
- case PG_INT4RANGE: return &pg_types[94];
- case PG_INT8: return &pg_types[95];
- case PG_INT8RANGE: return &pg_types[96];
- case PG_INTERNAL: return &pg_types[97];
- case PG_INTERVAL: return &pg_types[98];
- case PG_JSON: return &pg_types[99];
- case PG_LANGUAGE_HANDLER: return &pg_types[100];
- case PG_LINE: return &pg_types[101];
- case PG_LSEG: return &pg_types[102];
- case PG_MACADDR: return &pg_types[103];
- case PG_MONEY: return &pg_types[104];
- case PG_NAME: return &pg_types[105];
- case PG_NUMERIC: return &pg_types[106];
- case PG_NUMRANGE: return &pg_types[107];
- case PG_OID: return &pg_types[108];
- case PG_OIDVECTOR: return &pg_types[109];
- case PG_OPAQUE: return &pg_types[110];
- case PG_PATH: return &pg_types[111];
- case PG_PG_ATTRIBUTE: return &pg_types[112];
- case PG_PG_CLASS: return &pg_types[113];
- case PG_PG_NODE_TREE: return &pg_types[114];
- case PG_PG_PROC: return &pg_types[115];
- case PG_PG_TYPE: return &pg_types[116];
- case PG_POINT: return &pg_types[117];
- case PG_POLYGON: return &pg_types[118];
- case PG_RECORD: return &pg_types[119];
- case PG_REFCURSOR: return &pg_types[120];
- case PG_REGCLASS: return &pg_types[121];
- case PG_REGCONFIG: return &pg_types[122];
- case PG_REGDICTIONARY: return &pg_types[123];
- case PG_REGOPER: return &pg_types[124];
- case PG_REGOPERATOR: return &pg_types[125];
- case PG_REGPROC: return &pg_types[126];
- case PG_REGPROCEDURE: return &pg_types[127];
- case PG_REGTYPE: return &pg_types[128];
- case PG_RELTIME: return &pg_types[129];
- case PG_SMGR: return &pg_types[130];
- case PG_TEXT: return &pg_types[131];
- case PG_TID: return &pg_types[132];
- case PG_TIME: return &pg_types[133];
- case PG_TIMESTAMP: return &pg_types[134];
- case PG_TIMESTAMPTZ: return &pg_types[135];
- case PG_TIMETZ: return &pg_types[136];
- case PG_TINTERVAL: return &pg_types[137];
- case PG_TRIGGER: return &pg_types[138];
- case PG_TSQUERY: return &pg_types[139];
- case PG_TSRANGE: return &pg_types[140];
- case PG_TSTZRANGE: return &pg_types[141];
- case PG_TSVECTOR: return &pg_types[142];
- case PG_TXID_SNAPSHOT: return &pg_types[143];
- case PG_UNKNOWN: return &pg_types[144];
- case PG_UUID: return &pg_types[145];
- case PG_VARBIT: return &pg_types[146];
- case PG_VARCHAR: return &pg_types[147];
- case PG_VOID: return &pg_types[148];
- case PG_XID: return &pg_types[149];
- case PG_XML: return &pg_types[150];
+ case PG_EVENT_TRIGGER: return &pg_types[86];
+ case PG_FDW_HANDLER: return &pg_types[87];
+ case PG_FLOAT4: return &pg_types[88];
+ case PG_FLOAT8: return &pg_types[89];
+ case PG_GTSVECTOR: return &pg_types[90];
+ case PG_INET: return &pg_types[91];
+ case PG_INT2: return &pg_types[92];
+ case PG_INT2VECTOR: return &pg_types[93];
+ case PG_INT4: return &pg_types[94];
+ case PG_INT4RANGE: return &pg_types[95];
+ case PG_INT8: return &pg_types[96];
+ case PG_INT8RANGE: return &pg_types[97];
+ case PG_INTERNAL: return &pg_types[98];
+ case PG_INTERVAL: return &pg_types[99];
+ case PG_JSON: return &pg_types[100];
+ case PG_LANGUAGE_HANDLER: return &pg_types[101];
+ case PG_LINE: return &pg_types[102];
+ case PG_LSEG: return &pg_types[103];
+ case PG_MACADDR: return &pg_types[104];
+ case PG_MONEY: return &pg_types[105];
+ case PG_NAME: return &pg_types[106];
+ case PG_NUMERIC: return &pg_types[107];
+ case PG_NUMRANGE: return &pg_types[108];
+ case PG_OID: return &pg_types[109];
+ case PG_OIDVECTOR: return &pg_types[110];
+ case PG_OPAQUE: return &pg_types[111];
+ case PG_PATH: return &pg_types[112];
+ case PG_PG_ATTRIBUTE: return &pg_types[113];
+ case PG_PG_CLASS: return &pg_types[114];
+ case PG_PG_NODE_TREE: return &pg_types[115];
+ case PG_PG_PROC: return &pg_types[116];
+ case PG_PG_TYPE: return &pg_types[117];
+ case PG_POINT: return &pg_types[118];
+ case PG_POLYGON: return &pg_types[119];
+ case PG_RECORD: return &pg_types[120];
+ case PG_REFCURSOR: return &pg_types[121];
+ case PG_REGCLASS: return &pg_types[122];
+ case PG_REGCONFIG: return &pg_types[123];
+ case PG_REGDICTIONARY: return &pg_types[124];
+ case PG_REGOPER: return &pg_types[125];
+ case PG_REGOPERATOR: return &pg_types[126];
+ case PG_REGPROC: return &pg_types[127];
+ case PG_REGPROCEDURE: return &pg_types[128];
+ case PG_REGTYPE: return &pg_types[129];
+ case PG_RELTIME: return &pg_types[130];
+ case PG_SMGR: return &pg_types[131];
+ case PG_TEXT: return &pg_types[132];
+ case PG_TID: return &pg_types[133];
+ case PG_TIME: return &pg_types[134];
+ case PG_TIMESTAMP: return &pg_types[135];
+ case PG_TIMESTAMPTZ: return &pg_types[136];
+ case PG_TIMETZ: return &pg_types[137];
+ case PG_TINTERVAL: return &pg_types[138];
+ case PG_TRIGGER: return &pg_types[139];
+ case PG_TSQUERY: return &pg_types[140];
+ case PG_TSRANGE: return &pg_types[141];
+ case PG_TSTZRANGE: return &pg_types[142];
+ case PG_TSVECTOR: return &pg_types[143];
+ case PG_TXID_SNAPSHOT: return &pg_types[144];
+ case PG_UNKNOWN: return &pg_types[145];
+ case PG_UUID: return &pg_types[146];
+ case PG_VARBIT: return &pg_types[147];
+ case PG_VARCHAR: return &pg_types[148];
+ case PG_VOID: return &pg_types[149];
+ case PG_XID: return &pg_types[150];
+ case PG_XML: return &pg_types[151];
default: return NULL;
}
}
diff --git a/types.h b/types.h
index ded4c07..dd60f90 100644
--- a/types.h
+++ b/types.h
@@ -38,6 +38,7 @@ sql_type_info_t* sql_type_data(int);
#define PG_CSTRING 2275
#define PG_DATE 1082
#define PG_DATERANGE 3912
+#define PG_EVENT_TRIGGER 3838
#define PG_FDW_HANDLER 3115
#define PG_FLOAT4 700
#define PG_FLOAT8 701
--
1.8.4