[DBD::Pg] Add some more type information, based on Postgres 9.6 source
[email protected] Tue, 28 Mar 2017 19:10:48 +0000
| Newsgroups | perl.dbd.pg.changes |
|---|---|
| Message-ID | <[email protected]> |
Committed by Greg Sabino Mullane <[email protected]> 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