[DBD::Pg 2/2] Update with latest type information from Postgres

dbdpg-commits-gENoVmVU/[email protected] Thu, 14 Nov 2013 00:01:58 -0500
Newsgroups gmane.comp.db.postgresql.dbdpg.cvs
Message-ID <[email protected]>
Committed by Greg Sabino Mullane <greg-O9fzpki4YnJWk0Htik3J/[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