Author: turnstep
Date: Tue May 20 14:52:34 2008
New Revision: 11297
Modified:
DBD-Pg/trunk/Changes
DBD-Pg/trunk/dbdimp.c
DBD-Pg/trunk/types.c
Log:
Quick test of types.c fix for pg_type bind_param casting.
Modified: DBD-Pg/trunk/Changes
==============================================================================
--- DBD-Pg/trunk/Changes (original)
+++ DBD-Pg/trunk/Changes Tue May 20 14:52:34 2008
@@ -1,5 +1,10 @@
('GSM' is Greg Sabino Mullane, [EMAIL PROTECTED])
+2.7.3
+
+ - Fixed problem preventing some pg_type bind_arrays
+ from working [GSM]
+
2.7.2 Released May 14, 2008 (subversion r11269)
- Handle embedded commas in quotes properly when destringifying
Modified: DBD-Pg/trunk/dbdimp.c
==============================================================================
--- DBD-Pg/trunk/dbdimp.c (original)
+++ DBD-Pg/trunk/dbdimp.c Tue May 20 14:52:34 2008
@@ -2212,7 +2212,7 @@
if (pg_type) {
if ((currph->bind_type = pg_type_data(pg_type))) {
if (!currph->bind_type->bind_ok) { /* Re-evaluate with
new prepare */
- croak("Cannot bind %s, sql_type %s not
supported by DBD::Pg",
+ croak("Cannot bind %s, pg_type %s not supported
by DBD::Pg",
name, currph->bind_type->type_name);
}
}
Modified: DBD-Pg/trunk/types.c
==============================================================================
--- DBD-Pg/trunk/types.c (original)
+++ DBD-Pg/trunk/types.c Tue May 20 14:52:34 2008
@@ -18,139 +18,139 @@
#include "Pg.h"
static sql_type_info_t pg_types[] = {
- {PG_ABSTIMEARRAY ,"_abstime" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_ACLITEMARRAY ,"_aclitem" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_BITARRAY ,"_bit" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_BOOLARRAY ,"_bool" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_BOXARRAY ,"_box" ,';',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_BPCHARARRAY ,"_bpchar" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_BYTEAARRAY ,"_bytea" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_CHARARRAY ,"_char" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_CIDARRAY ,"_cid" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_CIDRARRAY ,"_cidr" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_CIRCLEARRAY ,"_circle" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_CSTRINGARRAY ,"_cstring" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_DATEARRAY ,"_date" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_FLOAT4ARRAY ,"_float4" ,',',"array_out"
,quote_string,dequote_string,{0},0,2},
- {PG_FLOAT8ARRAY ,"_float8" ,',',"array_out"
,quote_string,dequote_string,{0},0,2},
- {PG_GTSVECTORARRAY ,"_gtsvector" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_INETARRAY ,"_inet" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_INT2ARRAY ,"_int2" ,',',"array_out"
,quote_string,dequote_string,{0},0,1},
- {PG_INT2VECTORARRAY ,"_int2vector" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_INT4ARRAY ,"_int4" ,',',"array_out"
,quote_string,dequote_string,{0},0,1},
- {PG_INT8ARRAY ,"_int8" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_INTERVALARRAY ,"_interval" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_LINEARRAY ,"_line" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_LSEGARRAY ,"_lseg" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_MACADDRARRAY ,"_macaddr" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_MONEYARRAY ,"_money" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_NAMEARRAY ,"_name" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_NUMERICARRAY ,"_numeric" ,',',"array_out"
,quote_string,dequote_string,{0},0,2},
- {PG_OIDARRAY ,"_oid" ,',',"array_out"
,quote_string,dequote_string,{0},0,1},
- {PG_OIDVECTORARRAY ,"_oidvector" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_PATHARRAY ,"_path" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_POINTARRAY ,"_point" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_POLYGONARRAY ,"_polygon" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_REFCURSORARRAY ,"_refcursor" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_REGCLASSARRAY ,"_regclass" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_REGCONFIGARRAY ,"_regconfig" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_REGDICTIONARYARRAY,"_regdictionary" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_REGOPERARRAY ,"_regoper" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_REGOPERATORARRAY ,"_regoperator" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_REGPROCARRAY ,"_regproc" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_REGPROCEDUREARRAY ,"_regprocedure" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_REGTYPEARRAY ,"_regtype" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_RELTIMEARRAY ,"_reltime" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_TEXTARRAY ,"_text" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_TIDARRAY ,"_tid" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_TIMEARRAY ,"_time" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_TIMESTAMPARRAY ,"_timestamp" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_TIMESTAMPTZARRAY ,"_timestamptz" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_TIMETZARRAY ,"_timetz" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_TINTERVALARRAY ,"_tinterval" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_TSQUERYARRAY ,"_tsquery" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_TSVECTORARRAY ,"_tsvector" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_TXID_SNAPSHOTARRAY,"_txid_snapshot" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_UUIDARRAY ,"_uuid" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_VARBITARRAY ,"_varbit" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_VARCHARARRAY ,"_varchar" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_XIDARRAY ,"_xid" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_XMLARRAY ,"_xml" ,',',"array_out"
,quote_string,dequote_string,{0},0,0},
- {PG_ABSTIME ,"abstime" ,',',"abstimeout"
,quote_string,dequote_string,{0},0,0},
- {PG_ACLITEM ,"aclitem" ,',',"aclitemout"
,quote_string,dequote_string,{0},0,0},
- {PG_ANY ,"any" ,',',"any_out"
,quote_string,dequote_string,{0},0,0},
- {PG_ANYARRAY ,"anyarray" ,',',"anyarray_out"
,quote_string,dequote_string,{0},0,0},
- {PG_ANYELEMENT ,"anyelement" ,',',"anyelement_out"
,quote_string,dequote_string,{0},0,0},
- {PG_ANYENUM ,"anyenum" ,',',"anyenum_out"
,quote_string,dequote_string,{0},0,0},
- {PG_ANYNONARRAY ,"anynonarray" ,',',"anynonarray_out"
,quote_string,dequote_string,{0},0,0},
- {PG_BIT ,"bit" ,',',"bit_out"
,quote_string,dequote_string,{0},0,0},
+ {PG_ABSTIMEARRAY ,"_abstime" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_ACLITEMARRAY ,"_aclitem" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_BITARRAY ,"_bit" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_BOOLARRAY ,"_bool" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_BOXARRAY ,"_box" ,';',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_BPCHARARRAY ,"_bpchar" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_BYTEAARRAY ,"_bytea" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_CHARARRAY ,"_char" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_CIDARRAY ,"_cid" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_CIDRARRAY ,"_cidr" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_CIRCLEARRAY ,"_circle" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_CSTRINGARRAY ,"_cstring" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_DATEARRAY ,"_date" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_FLOAT4ARRAY ,"_float4" ,',',"array_out"
,quote_string,dequote_string,{0},1,2},
+ {PG_FLOAT8ARRAY ,"_float8" ,',',"array_out"
,quote_string,dequote_string,{0},1,2},
+ {PG_GTSVECTORARRAY ,"_gtsvector" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_INETARRAY ,"_inet" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_INT2ARRAY ,"_int2" ,',',"array_out"
,quote_string,dequote_string,{0},1,1},
+ {PG_INT2VECTORARRAY ,"_int2vector" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_INT4ARRAY ,"_int4" ,',',"array_out"
,quote_string,dequote_string,{0},1,1},
+ {PG_INT8ARRAY ,"_int8" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_INTERVALARRAY ,"_interval" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_LINEARRAY ,"_line" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_LSEGARRAY ,"_lseg" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_MACADDRARRAY ,"_macaddr" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_MONEYARRAY ,"_money" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_NAMEARRAY ,"_name" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_NUMERICARRAY ,"_numeric" ,',',"array_out"
,quote_string,dequote_string,{0},1,2},
+ {PG_OIDARRAY ,"_oid" ,',',"array_out"
,quote_string,dequote_string,{0},1,1},
+ {PG_OIDVECTORARRAY ,"_oidvector" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_PATHARRAY ,"_path" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_POINTARRAY ,"_point" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_POLYGONARRAY ,"_polygon" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_REFCURSORARRAY ,"_refcursor" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_REGCLASSARRAY ,"_regclass" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_REGCONFIGARRAY ,"_regconfig" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_REGDICTIONARYARRAY,"_regdictionary" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_REGOPERARRAY ,"_regoper" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_REGOPERATORARRAY ,"_regoperator" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_REGPROCARRAY ,"_regproc" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_REGPROCEDUREARRAY ,"_regprocedure" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_REGTYPEARRAY ,"_regtype" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_RELTIMEARRAY ,"_reltime" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_TEXTARRAY ,"_text" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_TIDARRAY ,"_tid" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_TIMEARRAY ,"_time" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_TIMESTAMPARRAY ,"_timestamp" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_TIMESTAMPTZARRAY ,"_timestamptz" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_TIMETZARRAY ,"_timetz" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_TINTERVALARRAY ,"_tinterval" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_TSQUERYARRAY ,"_tsquery" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_TSVECTORARRAY ,"_tsvector" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_TXID_SNAPSHOTARRAY,"_txid_snapshot" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_UUIDARRAY ,"_uuid" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_VARBITARRAY ,"_varbit" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_VARCHARARRAY ,"_varchar" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_XIDARRAY ,"_xid" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_XMLARRAY ,"_xml" ,',',"array_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_ABSTIME ,"abstime" ,',',"abstimeout"
,quote_string,dequote_string,{0},1,0},
+ {PG_ACLITEM ,"aclitem" ,',',"aclitemout"
,quote_string,dequote_string,{0},1,0},
+ {PG_ANY ,"any" ,',',"any_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_ANYARRAY ,"anyarray" ,',',"anyarray_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_ANYELEMENT ,"anyelement" ,',',"anyelement_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_ANYENUM ,"anyenum" ,',',"anyenum_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_ANYNONARRAY ,"anynonarray" ,',',"anynonarray_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_BIT ,"bit" ,',',"bit_out"
,quote_string,dequote_string,{0},1,0},
{PG_BOOL ,"bool" ,',',"boolout" ,quote_bool
,dequote_bool ,{SQL_BOOLEAN},1,0},
- {PG_BOX ,"box" ,';',"box_out" ,quote_geom
,dequote_string,{0},0,0},
+ {PG_BOX ,"box" ,';',"box_out" ,quote_geom
,dequote_string,{0},1,0},
{PG_BPCHAR ,"bpchar" ,',',"bpcharout"
,quote_string,dequote_char ,{SQL_CHAR},1,0},
{PG_BYTEA ,"bytea" ,',',"byteaout" ,quote_bytea
,dequote_bytea ,{SQL_VARBINARY},1,0},
- {PG_CHAR ,"char" ,',',"charout"
,quote_string,dequote_char ,{SQL_CHAR},0,0},
- {PG_CID ,"cid" ,',',"cidout"
,quote_string,dequote_string,{0},0,0},
- {PG_CIDR ,"cidr" ,',',"cidr_out"
,quote_string,dequote_string,{0},0,0},
- {PG_CIRCLE ,"circle" ,',',"circle_out"
,quote_circle,dequote_string,{0},0,0},
- {PG_CSTRING ,"cstring" ,',',"cstring_out"
,quote_string,dequote_string,{0},0,0},
+ {PG_CHAR ,"char" ,',',"charout"
,quote_string,dequote_char ,{SQL_CHAR},1,0},
+ {PG_CID ,"cid" ,',',"cidout"
,quote_string,dequote_string,{0},1,0},
+ {PG_CIDR ,"cidr" ,',',"cidr_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_CIRCLE ,"circle" ,',',"circle_out"
,quote_circle,dequote_string,{0},1,0},
+ {PG_CSTRING ,"cstring" ,',',"cstring_out"
,quote_string,dequote_string,{0},1,0},
{PG_DATE ,"date" ,',',"date_out"
,quote_string,dequote_string,{SQL_TYPE_DATE},1,0},
{PG_FLOAT4 ,"float4" ,',',"float4out" ,null_quote
,null_dequote ,{0},1,2},
{PG_FLOAT8 ,"float8" ,',',"float8out" ,null_quote
,null_dequote ,{SQL_FLOAT},1,2},
- {PG_GTSVECTOR ,"gtsvector" ,',',"gtsvectorout"
,quote_string,dequote_string,{0},0,0},
- {PG_INET ,"inet" ,',',"inet_out"
,quote_string,dequote_string,{0},0,0},
+ {PG_GTSVECTOR ,"gtsvector" ,',',"gtsvectorout"
,quote_string,dequote_string,{0},1,0},
+ {PG_INET ,"inet" ,',',"inet_out"
,quote_string,dequote_string,{0},1,0},
{PG_INT2 ,"int2" ,',',"int2out" ,null_quote
,null_dequote ,{SQL_SMALLINT},1,1},
- {PG_INT2VECTOR ,"int2vector" ,',',"int2vectorout"
,quote_string,dequote_string,{0},0,0},
+ {PG_INT2VECTOR ,"int2vector" ,',',"int2vectorout"
,quote_string,dequote_string,{0},1,0},
{PG_INT4 ,"int4" ,',',"int4out" ,null_quote
,null_dequote ,{SQL_INTEGER},1,1},
{PG_INT8 ,"int8" ,',',"int8out" ,null_quote
,null_dequote ,{SQL_BIGINT},1,0},
- {PG_INTERNAL ,"internal" ,',',"internal_out"
,quote_string,dequote_string,{0},0,0},
- {PG_INTERVAL ,"interval" ,',',"interval_out"
,quote_string,dequote_string,{0},0,0},
- {PG_LANGUAGE_HANDLER ,"language_handler"
,',',"language_handler_out",quote_string,dequote_string,{0},0,0},
- {PG_LINE ,"line" ,',',"line_out" ,quote_geom
,dequote_string,{0},0,0},
- {PG_LSEG ,"lseg" ,',',"lseg_out" ,quote_geom
,dequote_string,{0},0,0},
- {PG_MACADDR ,"macaddr" ,',',"macaddr_out"
,quote_string,dequote_string,{0},0,0},
- {PG_MONEY ,"money" ,',',"cash_out"
,quote_string,dequote_string,{0},0,0},
- {PG_NAME ,"name" ,',',"nameout" ,null_quote
,null_dequote ,{SQL_VARCHAR},0,0},
+ {PG_INTERNAL ,"internal" ,',',"internal_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_INTERVAL ,"interval" ,',',"interval_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_LANGUAGE_HANDLER ,"language_handler"
,',',"language_handler_out",quote_string,dequote_string,{0},1,0},
+ {PG_LINE ,"line" ,',',"line_out" ,quote_geom
,dequote_string,{0},1,0},
+ {PG_LSEG ,"lseg" ,',',"lseg_out" ,quote_geom
,dequote_string,{0},1,0},
+ {PG_MACADDR ,"macaddr" ,',',"macaddr_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_MONEY ,"money" ,',',"cash_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_NAME ,"name" ,',',"nameout" ,null_quote
,null_dequote ,{SQL_VARCHAR},1,0},
{PG_NUMERIC ,"numeric" ,',',"numeric_out" ,null_quote
,null_dequote ,{SQL_DECIMAL},1,2},
- {PG_OID ,"oid" ,',',"oidout" ,null_quote
,null_dequote ,{0},0,1},
- {PG_OIDVECTOR ,"oidvector" ,',',"oidvectorout"
,quote_string,dequote_string,{0},0,0},
- {PG_OPAQUE ,"opaque" ,',',"opaque_out"
,quote_string,dequote_string,{0},0,0},
- {PG_PATH ,"path" ,',',"path_out" ,quote_path
,dequote_string,{0},0,0},
- {PG_PG_ATTRIBUTE ,"pg_attribute" ,',',"record_out"
,quote_string,dequote_string,{0},0,0},
- {PG_PG_CLASS ,"pg_class" ,',',"record_out"
,quote_string,dequote_string,{0},0,0},
- {PG_PG_PROC ,"pg_proc" ,',',"record_out"
,quote_string,dequote_string,{0},0,0},
- {PG_PG_TYPE ,"pg_type" ,',',"record_out"
,quote_string,dequote_string,{0},0,0},
- {PG_POINT ,"point" ,',',"point_out" ,quote_geom
,dequote_string,{0},0,0},
- {PG_POLYGON ,"polygon" ,',',"poly_out" ,quote_geom
,dequote_string,{0},0,0},
- {PG_RECORD ,"record" ,',',"record_out"
,quote_string,dequote_string,{0},0,0},
- {PG_REFCURSOR ,"refcursor" ,',',"textout"
,quote_string,dequote_string,{0},0,0},
- {PG_REGCLASS ,"regclass" ,',',"regclassout"
,quote_string,dequote_string,{0},0,0},
- {PG_REGCONFIG ,"regconfig" ,',',"regconfigout"
,quote_string,dequote_string,{0},0,0},
- {PG_REGDICTIONARY ,"regdictionary"
,',',"regdictionaryout",quote_string,dequote_string,{0},0,0},
- {PG_REGOPER ,"regoper" ,',',"regoperout"
,quote_string,dequote_string,{0},0,0},
- {PG_REGOPERATOR ,"regoperator" ,',',"regoperatorout"
,quote_string,dequote_string,{0},0,0},
- {PG_REGPROC ,"regproc" ,',',"regprocout"
,quote_string,dequote_string,{0},0,0},
- {PG_REGPROCEDURE ,"regprocedure" ,',',"regprocedureout"
,quote_string,dequote_string,{0},0,0},
- {PG_REGTYPE ,"regtype" ,',',"regtypeout"
,quote_string,dequote_string,{0},0,0},
- {PG_RELTIME ,"reltime" ,',',"reltimeout"
,quote_string,dequote_string,{0},0,0},
- {PG_SMGR ,"smgr" ,',',"smgrout"
,quote_string,dequote_string,{0},0,0},
+ {PG_OID ,"oid" ,',',"oidout" ,null_quote
,null_dequote ,{0},1,1},
+ {PG_OIDVECTOR ,"oidvector" ,',',"oidvectorout"
,quote_string,dequote_string,{0},1,0},
+ {PG_OPAQUE ,"opaque" ,',',"opaque_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_PATH ,"path" ,',',"path_out" ,quote_path
,dequote_string,{0},1,0},
+ {PG_PG_ATTRIBUTE ,"pg_attribute" ,',',"record_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_PG_CLASS ,"pg_class" ,',',"record_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_PG_PROC ,"pg_proc" ,',',"record_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_PG_TYPE ,"pg_type" ,',',"record_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_POINT ,"point" ,',',"point_out" ,quote_geom
,dequote_string,{0},1,0},
+ {PG_POLYGON ,"polygon" ,',',"poly_out" ,quote_geom
,dequote_string,{0},1,0},
+ {PG_RECORD ,"record" ,',',"record_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_REFCURSOR ,"refcursor" ,',',"textout"
,quote_string,dequote_string,{0},1,0},
+ {PG_REGCLASS ,"regclass" ,',',"regclassout"
,quote_string,dequote_string,{0},1,0},
+ {PG_REGCONFIG ,"regconfig" ,',',"regconfigout"
,quote_string,dequote_string,{0},1,0},
+ {PG_REGDICTIONARY ,"regdictionary"
,',',"regdictionaryout",quote_string,dequote_string,{0},1,0},
+ {PG_REGOPER ,"regoper" ,',',"regoperout"
,quote_string,dequote_string,{0},1,0},
+ {PG_REGOPERATOR ,"regoperator" ,',',"regoperatorout"
,quote_string,dequote_string,{0},1,0},
+ {PG_REGPROC ,"regproc" ,',',"regprocout"
,quote_string,dequote_string,{0},1,0},
+ {PG_REGPROCEDURE ,"regprocedure" ,',',"regprocedureout"
,quote_string,dequote_string,{0},1,0},
+ {PG_REGTYPE ,"regtype" ,',',"regtypeout"
,quote_string,dequote_string,{0},1,0},
+ {PG_RELTIME ,"reltime" ,',',"reltimeout"
,quote_string,dequote_string,{0},1,0},
+ {PG_SMGR ,"smgr" ,',',"smgrout"
,quote_string,dequote_string,{0},1,0},
{PG_TEXT ,"text" ,',',"textout"
,quote_string,dequote_string,{SQL_LONGVARCHAR},1,0},
- {PG_TID ,"tid" ,',',"tidout" ,quote_geom
,dequote_string,{0},0,0},
+ {PG_TID ,"tid" ,',',"tidout" ,quote_geom
,dequote_string,{0},1,0},
{PG_TIME ,"time" ,',',"time_out"
,quote_string,dequote_string,{SQL_TYPE_TIME},1,0},
{PG_TIMESTAMP ,"timestamp" ,',',"timestamp_out"
,quote_string,dequote_string,{SQL_TIMESTAMP},1,0},
{PG_TIMESTAMPTZ ,"timestamptz" ,',',"timestamptz_out"
,quote_string,dequote_string,{SQL_TYPE_TIMESTAMP_WITH_TIMEZONE},1,0},
- {PG_TIMETZ ,"timetz" ,',',"timetz_out"
,quote_string,dequote_string,{0},0,0},
- {PG_TINTERVAL ,"tinterval" ,',',"tintervalout"
,quote_string,dequote_string,{0},0,0},
- {PG_TRIGGER ,"trigger" ,',',"trigger_out"
,quote_string,dequote_string,{0},0,0},
- {PG_TSQUERY ,"tsquery" ,',',"tsqueryout"
,quote_string,dequote_string,{0},0,0},
- {PG_TSVECTOR ,"tsvector" ,',',"tsvectorout"
,quote_string,dequote_string,{0},0,0},
- {PG_TXID_SNAPSHOT ,"txid_snapshot"
,',',"txid_snapshot_out",quote_string,dequote_string,{0},0,0},
- {PG_UNKNOWN ,"unknown" ,',',"unknownout"
,quote_string,dequote_string,{0},0,0},
- {PG_UUID ,"uuid" ,',',"uuid_out"
,quote_string,dequote_string,{0},0,0},
- {PG_VARBIT ,"varbit" ,',',"varbit_out"
,quote_string,dequote_string,{0},0,0},
+ {PG_TIMETZ ,"timetz" ,',',"timetz_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_TINTERVAL ,"tinterval" ,',',"tintervalout"
,quote_string,dequote_string,{0},1,0},
+ {PG_TRIGGER ,"trigger" ,',',"trigger_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_TSQUERY ,"tsquery" ,',',"tsqueryout"
,quote_string,dequote_string,{0},1,0},
+ {PG_TSVECTOR ,"tsvector" ,',',"tsvectorout"
,quote_string,dequote_string,{0},1,0},
+ {PG_TXID_SNAPSHOT ,"txid_snapshot"
,',',"txid_snapshot_out",quote_string,dequote_string,{0},1,0},
+ {PG_UNKNOWN ,"unknown" ,',',"unknownout"
,quote_string,dequote_string,{0},1,0},
+ {PG_UUID ,"uuid" ,',',"uuid_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_VARBIT ,"varbit" ,',',"varbit_out"
,quote_string,dequote_string,{0},1,0},
{PG_VARCHAR ,"varchar" ,',',"varcharout"
,quote_string,dequote_string,{SQL_VARCHAR},1,0},
- {PG_VOID ,"void" ,',',"void_out"
,quote_string,dequote_string,{0},0,0},
- {PG_XID ,"xid" ,',',"xidout"
,quote_string,dequote_string,{0},0,0},
- {PG_XML ,"xml" ,',',"xml_out"
,quote_string,dequote_string,{0},0,0},
+ {PG_VOID ,"void" ,',',"void_out"
,quote_string,dequote_string,{0},1,0},
+ {PG_XID ,"xid" ,',',"xidout"
,quote_string,dequote_string,{0},1,0},
+ {PG_XML ,"xml" ,',',"xml_out"
,quote_string,dequote_string,{0},1,0},
};
sql_type_info_t* pg_type_data(int sql_type)
@@ -622,7 +622,7 @@
$pgtype{$name}{svtype} = $svtype;
## For arrays, we want to echo the base svtype
if ($svtype and exists $pgtype{"_$name"} and $pgtype{"_$name"}{textin}
=~ /array/) {
- $pgtype{"_$name"}{svtype} = $svtype;
+ $pgtype{"_$name"}{svtype} = $svtype;
}
}
@@ -634,14 +634,12 @@
my %pos;
my $item = 0;
for my $name (sort {$a cmp $b } keys %pgtype) {
- ## {BOOLOID, "bool", ",", "boolout", quote_bool, dequote_bool,
{SQL_BOOLEAN}, DBDPG_TRUE},
my $t = $pgtype{$name};
my ($sqltype,$quote,$dequote) = (0,0,0);
- ## INT2OID, int2, null_quote, null_dequote, SQL_SMALLINT|SQL_TINYINT, 1
(my $sql = $t->{sql}) =~ s#^(\w+).*#$1#;
printf $newfh qq! {%-*s,%-*s,'%s',%-18s,%-12s,%-14s,\{%s\},%d,%d\},\n!,
- $maxlen, $t->{define}, $maxlen-2, "\"$name\"", $t->{delim},
"\"$t->{textout}\"", $t->{quote}, $t->{dequote}, $sql, $t->{sqlc}, $t->{svtype};
+ $maxlen, $t->{define}, $maxlen-2, "\"$name\"", $t->{delim},
"\"$t->{textout}\"", $t->{quote}, $t->{dequote}, $sql, 1, $t->{svtype};
$pos{$name} = $item++;
}
@@ -695,7 +693,7 @@
exit;
__DATA__
-## Format: for each type, there are 5 items, space separated:
+## Format: for each type, there are 6 items, space separated:
## 1. The given name, from the Postgres source code (pg_type.h)
## 2. The function name we use to do the quoting, or 0 if we do not bind it
## 3. The function name we use for DE-quoting
@@ -749,4 +747,3 @@
*/
-