develooper Front page | perl.dbd.pg.changes | Postings from March 2017

[DBD::Pg] Add some more type information, based on Postgres 9.6source

From:
dbdpg-commits
Date:
March 28, 2017 19:10
Subject:
[DBD::Pg] Add some more type information, based on Postgres 9.6source
Message ID:
1490728248-11092-1-git-send-email-dbdpg-commits@bucardo.org
Committed by Greg Sabino Mullane <greg@endpoint.com>

Add some more type information, based on Postgres 9.6
source

---
 Pg.pm           |  83 ++++++++++----------
 Pg.xs           |   7 ++
 t/01constants.t |   7 ++
 t/99_pod.t      |   7 ++
 types.c         | 236 ++++++++++++++++++++++++++++++--------------------------
 types.h         |   7 ++
 6 files changed, 196 insertions(+), 151 deletions(-)

diff --git a/Pg.pm b/Pg.pm
index e594985..7431bcc 100644
--- a/Pg.pm
+++ b/Pg.pm
@@ -37,30 +37,31 @@ use 5.008001;
 			PG_CIDRARRAY PG_CIRCLE PG_CIRCLEARRAY PG_CSTRING PG_CSTRINGARRAY
 			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_JSONB PG_JSONBARRAY 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_LSN PG_PG_LSNARRAY 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_GTSVECTOR PG_GTSVECTORARRAY PG_INDEX_AM_HANDLER 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_JSONB PG_JSONBARRAY 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_DDL_COMMAND PG_PG_LSN
+			PG_PG_LSNARRAY 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_REGNAMESPACE PG_REGNAMESPACEARRAY
+			PG_REGOPER PG_REGOPERARRAY PG_REGOPERATOR PG_REGOPERATORARRAY PG_REGPROC
+			PG_REGPROCARRAY PG_REGPROCEDURE PG_REGPROCEDUREARRAY PG_REGROLE PG_REGROLEARRAY
+			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_TSM_HANDLER 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
 		)]
 	);
 
@@ -3339,25 +3340,27 @@ The current list of Postgres data types exported is:
  PG_CIDR PG_CIDRARRAY PG_CIRCLE PG_CIRCLEARRAY PG_CSTRING PG_CSTRINGARRAY
  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_JSONB PG_JSONBARRAY 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_LSN PG_PG_LSNARRAY 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_INDEX_AM_HANDLER 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_JSONB PG_JSONBARRAY 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_DDL_COMMAND PG_PG_LSN
+ PG_PG_LSNARRAY 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_REGNAMESPACE PG_REGNAMESPACEARRAY PG_REGOPER PG_REGOPERARRAY PG_REGOPERATOR PG_REGOPERATORARRAY
+ PG_REGPROC PG_REGPROCARRAY PG_REGPROCEDURE PG_REGPROCEDUREARRAY PG_REGROLE PG_REGROLEARRAY
  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_TINTERVALARRAY PG_TRIGGER PG_TSM_HANDLER 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 fa8c667..28da001 100644
--- a/Pg.xs
+++ b/Pg.xs
@@ -67,6 +67,7 @@ constant(name=Nullch)
 	PG_FLOAT8ARRAY        = 1022
 	PG_GTSVECTOR          = 3642
 	PG_GTSVECTORARRAY     = 3644
+	PG_INDEX_AM_HANDLER   = 325
 	PG_INET               = 869
 	PG_INETARRAY          = 1041
 	PG_INT2               = 21
@@ -112,6 +113,7 @@ constant(name=Nullch)
 	PG_PATHARRAY          = 1019
 	PG_PG_ATTRIBUTE       = 75
 	PG_PG_CLASS           = 83
+	PG_PG_DDL_COMMAND     = 32
 	PG_PG_LSN             = 3220
 	PG_PG_LSNARRAY        = 3221
 	PG_PG_NODE_TREE       = 194
@@ -131,6 +133,8 @@ constant(name=Nullch)
 	PG_REGCONFIGARRAY     = 3735
 	PG_REGDICTIONARY      = 3769
 	PG_REGDICTIONARYARRAY = 3770
+	PG_REGNAMESPACE       = 4089
+	PG_REGNAMESPACEARRAY  = 4090
 	PG_REGOPER            = 2203
 	PG_REGOPERARRAY       = 2208
 	PG_REGOPERATOR        = 2204
@@ -139,6 +143,8 @@ constant(name=Nullch)
 	PG_REGPROCARRAY       = 1008
 	PG_REGPROCEDURE       = 2202
 	PG_REGPROCEDUREARRAY  = 2207
+	PG_REGROLE            = 4096
+	PG_REGROLEARRAY       = 4097
 	PG_REGTYPE            = 2206
 	PG_REGTYPEARRAY       = 2211
 	PG_RELTIME            = 703
@@ -159,6 +165,7 @@ constant(name=Nullch)
 	PG_TINTERVAL          = 704
 	PG_TINTERVALARRAY     = 1025
 	PG_TRIGGER            = 2279
+	PG_TSM_HANDLER        = 3310
 	PG_TSQUERY            = 3615
 	PG_TSQUERYARRAY       = 3645
 	PG_TSRANGE            = 3908
diff --git a/t/01constants.t b/t/01constants.t
index 47191b4..2244619 100644
--- a/t/01constants.t
+++ b/t/01constants.t
@@ -54,6 +54,7 @@ is (PG_FLOAT8               ,   701, 'PG_FLOAT8 returns correct value');
 is (PG_FLOAT8ARRAY          ,  1022, 'PG_FLOAT8ARRAY returns correct value');
 is (PG_GTSVECTOR            ,  3642, 'PG_GTSVECTOR returns correct value');
 is (PG_GTSVECTORARRAY       ,  3644, 'PG_GTSVECTORARRAY returns correct value');
+is (PG_INDEX_AM_HANDLER     ,   325, 'PG_INDEX_AM_HANDLER returns correct value');
 is (PG_INET                 ,   869, 'PG_INET returns correct value');
 is (PG_INETARRAY            ,  1041, 'PG_INETARRAY returns correct value');
 is (PG_INT2                 ,    21, 'PG_INT2 returns correct value');
@@ -99,6 +100,7 @@ is (PG_PATH                 ,   602, 'PG_PATH returns correct value');
 is (PG_PATHARRAY            ,  1019, 'PG_PATHARRAY returns correct value');
 is (PG_PG_ATTRIBUTE         ,    75, 'PG_PG_ATTRIBUTE returns correct value');
 is (PG_PG_CLASS             ,    83, 'PG_PG_CLASS returns correct value');
+is (PG_PG_DDL_COMMAND       ,    32, 'PG_PG_DDL_COMMAND returns correct value');
 is (PG_PG_LSN               ,  3220, 'PG_PG_LSN returns correct value');
 is (PG_PG_LSNARRAY          ,  3221, 'PG_PG_LSNARRAY returns correct value');
 is (PG_PG_NODE_TREE         ,   194, 'PG_PG_NODE_TREE returns correct value');
@@ -118,6 +120,8 @@ is (PG_REGCONFIG            ,  3734, 'PG_REGCONFIG returns correct value');
 is (PG_REGCONFIGARRAY       ,  3735, 'PG_REGCONFIGARRAY returns correct value');
 is (PG_REGDICTIONARY        ,  3769, 'PG_REGDICTIONARY returns correct value');
 is (PG_REGDICTIONARYARRAY   ,  3770, 'PG_REGDICTIONARYARRAY returns correct value');
+is (PG_REGNAMESPACE         ,  4089, 'PG_REGNAMESPACE returns correct value');
+is (PG_REGNAMESPACEARRAY    ,  4090, 'PG_REGNAMESPACEARRAY returns correct value');
 is (PG_REGOPER              ,  2203, 'PG_REGOPER returns correct value');
 is (PG_REGOPERARRAY         ,  2208, 'PG_REGOPERARRAY returns correct value');
 is (PG_REGOPERATOR          ,  2204, 'PG_REGOPERATOR returns correct value');
@@ -126,6 +130,8 @@ is (PG_REGPROC              ,    24, 'PG_REGPROC returns correct value');
 is (PG_REGPROCARRAY         ,  1008, 'PG_REGPROCARRAY returns correct value');
 is (PG_REGPROCEDURE         ,  2202, 'PG_REGPROCEDURE returns correct value');
 is (PG_REGPROCEDUREARRAY    ,  2207, 'PG_REGPROCEDUREARRAY returns correct value');
+is (PG_REGROLE              ,  4096, 'PG_REGROLE returns correct value');
+is (PG_REGROLEARRAY         ,  4097, 'PG_REGROLEARRAY returns correct value');
 is (PG_REGTYPE              ,  2206, 'PG_REGTYPE returns correct value');
 is (PG_REGTYPEARRAY         ,  2211, 'PG_REGTYPEARRAY returns correct value');
 is (PG_RELTIME              ,   703, 'PG_RELTIME returns correct value');
@@ -146,6 +152,7 @@ is (PG_TIMETZARRAY          ,  1270, 'PG_TIMETZARRAY returns correct value');
 is (PG_TINTERVAL            ,   704, 'PG_TINTERVAL returns correct value');
 is (PG_TINTERVALARRAY       ,  1025, 'PG_TINTERVALARRAY returns correct value');
 is (PG_TRIGGER              ,  2279, 'PG_TRIGGER returns correct value');
+is (PG_TSM_HANDLER          ,  3310, 'PG_TSM_HANDLER returns correct value');
 is (PG_TSQUERY              ,  3615, 'PG_TSQUERY returns correct value');
 is (PG_TSQUERYARRAY         ,  3645, 'PG_TSQUERYARRAY returns correct value');
 is (PG_TSRANGE              ,  3908, 'PG_TSRANGE returns correct value');
diff --git a/t/99_pod.t b/t/99_pod.t
index 1d5feae..0f94c5c 100644
--- a/t/99_pod.t
+++ b/t/99_pod.t
@@ -102,6 +102,7 @@ SKIP: {
 		 qr{PG_FLOAT8ARRAY},
 		 qr{PG_GTSVECTOR},
 		 qr{PG_GTSVECTORARRAY},
+		 qr{PG_INDEX_AM_HANDLER},
 		 qr{PG_INET},
 		 qr{PG_INETARRAY},
 		 qr{PG_INT2},
@@ -147,6 +148,7 @@ SKIP: {
 		 qr{PG_PATHARRAY},
 		 qr{PG_PG_ATTRIBUTE},
 		 qr{PG_PG_CLASS},
+		 qr{PG_PG_DDL_COMMAND},
 		 qr{PG_PG_LSN},
 		 qr{PG_PG_LSNARRAY},
 		 qr{PG_PG_NODE_TREE},
@@ -166,6 +168,8 @@ SKIP: {
 		 qr{PG_REGCONFIGARRAY},
 		 qr{PG_REGDICTIONARY},
 		 qr{PG_REGDICTIONARYARRAY},
+		 qr{PG_REGNAMESPACE},
+		 qr{PG_REGNAMESPACEARRAY},
 		 qr{PG_REGOPER},
 		 qr{PG_REGOPERARRAY},
 		 qr{PG_REGOPERATOR},
@@ -174,6 +178,8 @@ SKIP: {
 		 qr{PG_REGPROCARRAY},
 		 qr{PG_REGPROCEDURE},
 		 qr{PG_REGPROCEDUREARRAY},
+		 qr{PG_REGROLE},
+		 qr{PG_REGROLEARRAY},
 		 qr{PG_REGTYPE},
 		 qr{PG_REGTYPEARRAY},
 		 qr{PG_RELTIME},
@@ -194,6 +200,7 @@ SKIP: {
 		 qr{PG_TINTERVAL},
 		 qr{PG_TINTERVALARRAY},
 		 qr{PG_TRIGGER},
+		 qr{PG_TSM_HANDLER},
 		 qr{PG_TSQUERY},
 		 qr{PG_TSQUERYARRAY},
 		 qr{PG_TSRANGE},
diff --git a/types.c b/types.c
index 7620cd5..8392341 100644
--- a/types.c
+++ b/types.c
@@ -60,10 +60,12 @@ static sql_type_info_t pg_types[] = {
  {PG_REGCLASSARRAY     ,"_regclass"        ,1,',',"array_out"           ,quote_string,dequote_string,{0},0},
  {PG_REGCONFIGARRAY    ,"_regconfig"       ,1,',',"array_out"           ,quote_string,dequote_string,{0},0},
  {PG_REGDICTIONARYARRAY,"_regdictionary"   ,1,',',"array_out"           ,quote_string,dequote_string,{0},0},
+ {PG_REGNAMESPACEARRAY ,"_regnamespace"    ,1,',',"array_out"           ,quote_string,dequote_string,{0},0},
  {PG_REGOPERARRAY      ,"_regoper"         ,1,',',"array_out"           ,quote_string,dequote_string,{0},0},
  {PG_REGOPERATORARRAY  ,"_regoperator"     ,1,',',"array_out"           ,quote_string,dequote_string,{0},0},
  {PG_REGPROCARRAY      ,"_regproc"         ,1,',',"array_out"           ,quote_string,dequote_string,{0},0},
  {PG_REGPROCEDUREARRAY ,"_regprocedure"    ,1,',',"array_out"           ,quote_string,dequote_string,{0},0},
+ {PG_REGROLEARRAY      ,"_regrole"         ,1,',',"array_out"           ,quote_string,dequote_string,{0},0},
  {PG_REGTYPEARRAY      ,"_regtype"         ,1,',',"array_out"           ,quote_string,dequote_string,{0},0},
  {PG_RELTIMEARRAY      ,"_reltime"         ,1,',',"array_out"           ,quote_string,dequote_string,{0},0},
  {PG_TEXTARRAY         ,"_text"            ,1,',',"array_out"           ,quote_string,dequote_string,{0},0},
@@ -108,6 +110,7 @@ static sql_type_info_t pg_types[] = {
  {PG_FLOAT4            ,"float4"           ,1,',',"float4out"           ,quote_float ,null_dequote  ,{0},2},
  {PG_FLOAT8            ,"float8"           ,1,',',"float8out"           ,quote_float ,null_dequote  ,{SQL_FLOAT},2},
  {PG_GTSVECTOR         ,"gtsvector"        ,1,',',"gtsvectorout"        ,quote_string,dequote_string,{0},0},
+ {PG_INDEX_AM_HANDLER  ,"index_am_handler" ,1,',',"index_am_handler_out",quote_string,dequote_string,{0},0},
  {PG_INET              ,"inet"             ,1,',',"inet_out"            ,quote_string,dequote_string,{0},0},
  {PG_INT2              ,"int2"             ,1,',',"int2out"             ,quote_int   ,null_dequote  ,{SQL_SMALLINT},1},
  {PG_INT2VECTOR        ,"int2vector"       ,1,',',"int2vectorout"       ,quote_string,dequote_string,{0},0},
@@ -133,6 +136,7 @@ static sql_type_info_t pg_types[] = {
  {PG_PATH              ,"path"             ,1,',',"path_out"            ,quote_path  ,dequote_string,{0},0},
  {PG_PG_ATTRIBUTE      ,"pg_attribute"     ,1,',',"record_out"          ,quote_string,dequote_string,{0},0},
  {PG_PG_CLASS          ,"pg_class"         ,1,',',"record_out"          ,quote_string,dequote_string,{0},0},
+ {PG_PG_DDL_COMMAND    ,"pg_ddl_command"   ,1,',',"pg_ddl_command_out"  ,quote_string,dequote_string,{0},0},
  {PG_PG_LSN            ,"pg_lsn"           ,1,',',"pg_lsn_out"          ,quote_string,dequote_string,{0},0},
  {PG_PG_NODE_TREE      ,"pg_node_tree"     ,1,',',"pg_node_tree_out"    ,quote_string,dequote_string,{0},0},
  {PG_PG_PROC           ,"pg_proc"          ,1,',',"record_out"          ,quote_string,dequote_string,{0},0},
@@ -144,10 +148,12 @@ static sql_type_info_t pg_types[] = {
  {PG_REGCLASS          ,"regclass"         ,1,',',"regclassout"         ,quote_string,dequote_string,{0},0},
  {PG_REGCONFIG         ,"regconfig"        ,1,',',"regconfigout"        ,quote_string,dequote_string,{0},0},
  {PG_REGDICTIONARY     ,"regdictionary"    ,1,',',"regdictionaryout"    ,quote_string,dequote_string,{0},0},
+ {PG_REGNAMESPACE      ,"regnamespace"     ,1,',',"regnamespaceout"     ,quote_string,dequote_string,{0},0},
  {PG_REGOPER           ,"regoper"          ,1,',',"regoperout"          ,quote_string,dequote_string,{0},0},
  {PG_REGOPERATOR       ,"regoperator"      ,1,',',"regoperatorout"      ,quote_string,dequote_string,{0},0},
  {PG_REGPROC           ,"regproc"          ,1,',',"regprocout"          ,quote_string,dequote_string,{0},0},
  {PG_REGPROCEDURE      ,"regprocedure"     ,1,',',"regprocedureout"     ,quote_string,dequote_string,{0},0},
+ {PG_REGROLE           ,"regrole"          ,1,',',"regroleout"          ,quote_string,dequote_string,{0},0},
  {PG_REGTYPE           ,"regtype"          ,1,',',"regtypeout"          ,quote_string,dequote_string,{0},0},
  {PG_RELTIME           ,"reltime"          ,1,',',"reltimeout"          ,quote_string,dequote_string,{0},0},
  {PG_SMGR              ,"smgr"             ,1,',',"smgrout"             ,quote_string,dequote_string,{0},0},
@@ -159,6 +165,7 @@ static sql_type_info_t pg_types[] = {
  {PG_TIMETZ            ,"timetz"           ,1,',',"timetz_out"          ,quote_string,dequote_string,{0},0},
  {PG_TINTERVAL         ,"tinterval"        ,1,',',"tintervalout"        ,quote_string,dequote_string,{0},0},
  {PG_TRIGGER           ,"trigger"          ,1,',',"trigger_out"         ,quote_string,dequote_string,{0},0},
+ {PG_TSM_HANDLER       ,"tsm_handler"      ,1,',',"tsm_handler_out"     ,quote_string,dequote_string,{0},0},
  {PG_TSQUERY           ,"tsquery"          ,1,',',"tsqueryout"          ,quote_string,dequote_string,{0},0},
  {PG_TSRANGE           ,"tsrange"          ,1,',',"range_out"           ,quote_string,dequote_string,{0},0},
  {PG_TSTZRANGE         ,"tstzrange"        ,1,',',"range_out"           ,quote_string,dequote_string,{0},0},
@@ -222,117 +229,124 @@ sql_type_info_t* pg_type_data(int sql_type)
 		case PG_REGCLASSARRAY:      return &pg_types[42];
 		case PG_REGCONFIGARRAY:     return &pg_types[43];
 		case PG_REGDICTIONARYARRAY: return &pg_types[44];
-		case PG_REGOPERARRAY:       return &pg_types[45];
-		case PG_REGOPERATORARRAY:   return &pg_types[46];
-		case PG_REGPROCARRAY:       return &pg_types[47];
-		case PG_REGPROCEDUREARRAY:  return &pg_types[48];
-		case PG_REGTYPEARRAY:       return &pg_types[49];
-		case PG_RELTIMEARRAY:       return &pg_types[50];
-		case PG_TEXTARRAY:          return &pg_types[51];
-		case PG_TIDARRAY:           return &pg_types[52];
-		case PG_TIMEARRAY:          return &pg_types[53];
-		case PG_TIMESTAMPARRAY:     return &pg_types[54];
-		case PG_TIMESTAMPTZARRAY:   return &pg_types[55];
-		case PG_TIMETZARRAY:        return &pg_types[56];
-		case PG_TINTERVALARRAY:     return &pg_types[57];
-		case PG_TSQUERYARRAY:       return &pg_types[58];
-		case PG_TSRANGEARRAY:       return &pg_types[59];
-		case PG_TSTZRANGEARRAY:     return &pg_types[60];
-		case PG_TSVECTORARRAY:      return &pg_types[61];
-		case PG_TXID_SNAPSHOTARRAY: return &pg_types[62];
-		case PG_UUIDARRAY:          return &pg_types[63];
-		case PG_VARBITARRAY:        return &pg_types[64];
-		case PG_VARCHARARRAY:       return &pg_types[65];
-		case PG_XIDARRAY:           return &pg_types[66];
-		case PG_XMLARRAY:           return &pg_types[67];
-		case PG_ABSTIME:            return &pg_types[68];
-		case PG_ACLITEM:            return &pg_types[69];
-		case PG_ANY:                return &pg_types[70];
-		case PG_ANYARRAY:           return &pg_types[71];
-		case PG_ANYELEMENT:         return &pg_types[72];
-		case PG_ANYENUM:            return &pg_types[73];
-		case PG_ANYNONARRAY:        return &pg_types[74];
-		case PG_ANYRANGE:           return &pg_types[75];
-		case PG_BIT:                return &pg_types[76];
-		case PG_BOOL:               return &pg_types[77];
-		case PG_BOX:                return &pg_types[78];
-		case PG_BPCHAR:             return &pg_types[79];
-		case PG_BYTEA:              return &pg_types[80];
-		case PG_CHAR:               return &pg_types[81];
-		case PG_CID:                return &pg_types[82];
-		case PG_CIDR:               return &pg_types[83];
-		case PG_CIRCLE:             return &pg_types[84];
-		case PG_CSTRING:            return &pg_types[85];
-		case PG_DATE:               return &pg_types[86];
-		case PG_DATERANGE:          return &pg_types[87];
-		case PG_EVENT_TRIGGER:      return &pg_types[88];
-		case PG_FDW_HANDLER:        return &pg_types[89];
-		case PG_FLOAT4:             return &pg_types[90];
-		case PG_FLOAT8:             return &pg_types[91];
-		case PG_GTSVECTOR:          return &pg_types[92];
-		case PG_INET:               return &pg_types[93];
-		case PG_INT2:               return &pg_types[94];
-		case PG_INT2VECTOR:         return &pg_types[95];
-		case PG_INT4:               return &pg_types[96];
-		case PG_INT4RANGE:          return &pg_types[97];
-		case PG_INT8:               return &pg_types[98];
-		case PG_INT8RANGE:          return &pg_types[99];
-		case PG_INTERNAL:           return &pg_types[100];
-		case PG_INTERVAL:           return &pg_types[101];
-		case PG_JSON:               return &pg_types[102];
-		case PG_JSONB:              return &pg_types[103];
-		case PG_LANGUAGE_HANDLER:   return &pg_types[104];
-		case PG_LINE:               return &pg_types[105];
-		case PG_LSEG:               return &pg_types[106];
-		case PG_MACADDR:            return &pg_types[107];
-		case PG_MONEY:              return &pg_types[108];
-		case PG_NAME:               return &pg_types[109];
-		case PG_NUMERIC:            return &pg_types[110];
-		case PG_NUMRANGE:           return &pg_types[111];
-		case PG_OID:                return &pg_types[112];
-		case PG_OIDVECTOR:          return &pg_types[113];
-		case PG_OPAQUE:             return &pg_types[114];
-		case PG_PATH:               return &pg_types[115];
-		case PG_PG_ATTRIBUTE:       return &pg_types[116];
-		case PG_PG_CLASS:           return &pg_types[117];
-		case PG_PG_LSN:             return &pg_types[118];
-		case PG_PG_NODE_TREE:       return &pg_types[119];
-		case PG_PG_PROC:            return &pg_types[120];
-		case PG_PG_TYPE:            return &pg_types[121];
-		case PG_POINT:              return &pg_types[122];
-		case PG_POLYGON:            return &pg_types[123];
-		case PG_RECORD:             return &pg_types[124];
-		case PG_REFCURSOR:          return &pg_types[125];
-		case PG_REGCLASS:           return &pg_types[126];
-		case PG_REGCONFIG:          return &pg_types[127];
-		case PG_REGDICTIONARY:      return &pg_types[128];
-		case PG_REGOPER:            return &pg_types[129];
-		case PG_REGOPERATOR:        return &pg_types[130];
-		case PG_REGPROC:            return &pg_types[131];
-		case PG_REGPROCEDURE:       return &pg_types[132];
-		case PG_REGTYPE:            return &pg_types[133];
-		case PG_RELTIME:            return &pg_types[134];
-		case PG_SMGR:               return &pg_types[135];
-		case PG_TEXT:               return &pg_types[136];
-		case PG_TID:                return &pg_types[137];
-		case PG_TIME:               return &pg_types[138];
-		case PG_TIMESTAMP:          return &pg_types[139];
-		case PG_TIMESTAMPTZ:        return &pg_types[140];
-		case PG_TIMETZ:             return &pg_types[141];
-		case PG_TINTERVAL:          return &pg_types[142];
-		case PG_TRIGGER:            return &pg_types[143];
-		case PG_TSQUERY:            return &pg_types[144];
-		case PG_TSRANGE:            return &pg_types[145];
-		case PG_TSTZRANGE:          return &pg_types[146];
-		case PG_TSVECTOR:           return &pg_types[147];
-		case PG_TXID_SNAPSHOT:      return &pg_types[148];
-		case PG_UNKNOWN:            return &pg_types[149];
-		case PG_UUID:               return &pg_types[150];
-		case PG_VARBIT:             return &pg_types[151];
-		case PG_VARCHAR:            return &pg_types[152];
-		case PG_VOID:               return &pg_types[153];
-		case PG_XID:                return &pg_types[154];
-		case PG_XML:                return &pg_types[155];
+		case PG_REGNAMESPACEARRAY:  return &pg_types[45];
+		case PG_REGOPERARRAY:       return &pg_types[46];
+		case PG_REGOPERATORARRAY:   return &pg_types[47];
+		case PG_REGPROCARRAY:       return &pg_types[48];
+		case PG_REGPROCEDUREARRAY:  return &pg_types[49];
+		case PG_REGROLEARRAY:       return &pg_types[50];
+		case PG_REGTYPEARRAY:       return &pg_types[51];
+		case PG_RELTIMEARRAY:       return &pg_types[52];
+		case PG_TEXTARRAY:          return &pg_types[53];
+		case PG_TIDARRAY:           return &pg_types[54];
+		case PG_TIMEARRAY:          return &pg_types[55];
+		case PG_TIMESTAMPARRAY:     return &pg_types[56];
+		case PG_TIMESTAMPTZARRAY:   return &pg_types[57];
+		case PG_TIMETZARRAY:        return &pg_types[58];
+		case PG_TINTERVALARRAY:     return &pg_types[59];
+		case PG_TSQUERYARRAY:       return &pg_types[60];
+		case PG_TSRANGEARRAY:       return &pg_types[61];
+		case PG_TSTZRANGEARRAY:     return &pg_types[62];
+		case PG_TSVECTORARRAY:      return &pg_types[63];
+		case PG_TXID_SNAPSHOTARRAY: return &pg_types[64];
+		case PG_UUIDARRAY:          return &pg_types[65];
+		case PG_VARBITARRAY:        return &pg_types[66];
+		case PG_VARCHARARRAY:       return &pg_types[67];
+		case PG_XIDARRAY:           return &pg_types[68];
+		case PG_XMLARRAY:           return &pg_types[69];
+		case PG_ABSTIME:            return &pg_types[70];
+		case PG_ACLITEM:            return &pg_types[71];
+		case PG_ANY:                return &pg_types[72];
+		case PG_ANYARRAY:           return &pg_types[73];
+		case PG_ANYELEMENT:         return &pg_types[74];
+		case PG_ANYENUM:            return &pg_types[75];
+		case PG_ANYNONARRAY:        return &pg_types[76];
+		case PG_ANYRANGE:           return &pg_types[77];
+		case PG_BIT:                return &pg_types[78];
+		case PG_BOOL:               return &pg_types[79];
+		case PG_BOX:                return &pg_types[80];
+		case PG_BPCHAR:             return &pg_types[81];
+		case PG_BYTEA:              return &pg_types[82];
+		case PG_CHAR:               return &pg_types[83];
+		case PG_CID:                return &pg_types[84];
+		case PG_CIDR:               return &pg_types[85];
+		case PG_CIRCLE:             return &pg_types[86];
+		case PG_CSTRING:            return &pg_types[87];
+		case PG_DATE:               return &pg_types[88];
+		case PG_DATERANGE:          return &pg_types[89];
+		case PG_EVENT_TRIGGER:      return &pg_types[90];
+		case PG_FDW_HANDLER:        return &pg_types[91];
+		case PG_FLOAT4:             return &pg_types[92];
+		case PG_FLOAT8:             return &pg_types[93];
+		case PG_GTSVECTOR:          return &pg_types[94];
+		case PG_INDEX_AM_HANDLER:   return &pg_types[95];
+		case PG_INET:               return &pg_types[96];
+		case PG_INT2:               return &pg_types[97];
+		case PG_INT2VECTOR:         return &pg_types[98];
+		case PG_INT4:               return &pg_types[99];
+		case PG_INT4RANGE:          return &pg_types[100];
+		case PG_INT8:               return &pg_types[101];
+		case PG_INT8RANGE:          return &pg_types[102];
+		case PG_INTERNAL:           return &pg_types[103];
+		case PG_INTERVAL:           return &pg_types[104];
+		case PG_JSON:               return &pg_types[105];
+		case PG_JSONB:              return &pg_types[106];
+		case PG_LANGUAGE_HANDLER:   return &pg_types[107];
+		case PG_LINE:               return &pg_types[108];
+		case PG_LSEG:               return &pg_types[109];
+		case PG_MACADDR:            return &pg_types[110];
+		case PG_MONEY:              return &pg_types[111];
+		case PG_NAME:               return &pg_types[112];
+		case PG_NUMERIC:            return &pg_types[113];
+		case PG_NUMRANGE:           return &pg_types[114];
+		case PG_OID:                return &pg_types[115];
+		case PG_OIDVECTOR:          return &pg_types[116];
+		case PG_OPAQUE:             return &pg_types[117];
+		case PG_PATH:               return &pg_types[118];
+		case PG_PG_ATTRIBUTE:       return &pg_types[119];
+		case PG_PG_CLASS:           return &pg_types[120];
+		case PG_PG_DDL_COMMAND:     return &pg_types[121];
+		case PG_PG_LSN:             return &pg_types[122];
+		case PG_PG_NODE_TREE:       return &pg_types[123];
+		case PG_PG_PROC:            return &pg_types[124];
+		case PG_PG_TYPE:            return &pg_types[125];
+		case PG_POINT:              return &pg_types[126];
+		case PG_POLYGON:            return &pg_types[127];
+		case PG_RECORD:             return &pg_types[128];
+		case PG_REFCURSOR:          return &pg_types[129];
+		case PG_REGCLASS:           return &pg_types[130];
+		case PG_REGCONFIG:          return &pg_types[131];
+		case PG_REGDICTIONARY:      return &pg_types[132];
+		case PG_REGNAMESPACE:       return &pg_types[133];
+		case PG_REGOPER:            return &pg_types[134];
+		case PG_REGOPERATOR:        return &pg_types[135];
+		case PG_REGPROC:            return &pg_types[136];
+		case PG_REGPROCEDURE:       return &pg_types[137];
+		case PG_REGROLE:            return &pg_types[138];
+		case PG_REGTYPE:            return &pg_types[139];
+		case PG_RELTIME:            return &pg_types[140];
+		case PG_SMGR:               return &pg_types[141];
+		case PG_TEXT:               return &pg_types[142];
+		case PG_TID:                return &pg_types[143];
+		case PG_TIME:               return &pg_types[144];
+		case PG_TIMESTAMP:          return &pg_types[145];
+		case PG_TIMESTAMPTZ:        return &pg_types[146];
+		case PG_TIMETZ:             return &pg_types[147];
+		case PG_TINTERVAL:          return &pg_types[148];
+		case PG_TRIGGER:            return &pg_types[149];
+		case PG_TSM_HANDLER:        return &pg_types[150];
+		case PG_TSQUERY:            return &pg_types[151];
+		case PG_TSRANGE:            return &pg_types[152];
+		case PG_TSTZRANGE:          return &pg_types[153];
+		case PG_TSVECTOR:           return &pg_types[154];
+		case PG_TXID_SNAPSHOT:      return &pg_types[155];
+		case PG_UNKNOWN:            return &pg_types[156];
+		case PG_UUID:               return &pg_types[157];
+		case PG_VARBIT:             return &pg_types[158];
+		case PG_VARCHAR:            return &pg_types[159];
+		case PG_VOID:               return &pg_types[160];
+		case PG_XID:                return &pg_types[161];
+		case PG_XML:                return &pg_types[162];
 		default: return NULL;
 	}
 }
diff --git a/types.h b/types.h
index cc25b70..21df3fa 100644
--- a/types.h
+++ b/types.h
@@ -43,6 +43,7 @@ sql_type_info_t* sql_type_data(int);
 #define             PG_FLOAT4  700
 #define             PG_FLOAT8  701
 #define          PG_GTSVECTOR  3642
+#define   PG_INDEX_AM_HANDLER  325
 #define               PG_INET  869
 #define               PG_INT2  21
 #define         PG_INT2VECTOR  22
@@ -68,6 +69,7 @@ sql_type_info_t* sql_type_data(int);
 #define               PG_PATH  602
 #define       PG_PG_ATTRIBUTE  75
 #define           PG_PG_CLASS  83
+#define     PG_PG_DDL_COMMAND  32
 #define             PG_PG_LSN  3220
 #define       PG_PG_NODE_TREE  194
 #define            PG_PG_PROC  81
@@ -79,10 +81,12 @@ sql_type_info_t* sql_type_data(int);
 #define           PG_REGCLASS  2205
 #define          PG_REGCONFIG  3734
 #define      PG_REGDICTIONARY  3769
+#define       PG_REGNAMESPACE  4089
 #define            PG_REGOPER  2203
 #define        PG_REGOPERATOR  2204
 #define            PG_REGPROC  24
 #define       PG_REGPROCEDURE  2202
+#define            PG_REGROLE  4096
 #define            PG_REGTYPE  2206
 #define            PG_RELTIME  703
 #define               PG_SMGR  210
@@ -94,6 +98,7 @@ sql_type_info_t* sql_type_data(int);
 #define             PG_TIMETZ  1266
 #define          PG_TINTERVAL  704
 #define            PG_TRIGGER  2279
+#define        PG_TSM_HANDLER  3310
 #define            PG_TSQUERY  3615
 #define            PG_TSRANGE  3908
 #define          PG_TSTZRANGE  3910
@@ -153,10 +158,12 @@ sql_type_info_t* sql_type_data(int);
 #define      PG_REGCLASSARRAY  2210
 #define     PG_REGCONFIGARRAY  3735
 #define PG_REGDICTIONARYARRAY  3770
+#define  PG_REGNAMESPACEARRAY  4090
 #define       PG_REGOPERARRAY  2208
 #define   PG_REGOPERATORARRAY  2209
 #define       PG_REGPROCARRAY  1008
 #define  PG_REGPROCEDUREARRAY  2207
+#define       PG_REGROLEARRAY  4097
 #define       PG_REGTYPEARRAY  2211
 #define       PG_RELTIMEARRAY  1024
 #define          PG_TEXTARRAY  1009
-- 
1.8.4



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About