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
-
[DBD::Pg] Add some more type information, based on Postgres 9.6source
by dbdpg-commits