Author: turnstep
Date: Tue Mar 27 11:31:24 2007
New Revision: 9352

Modified:
   DBD-Pg/trunk/types.c
   DBD-Pg/trunk/types.h

Log:
Add SQL_INTERVAL, SQL_TIMESTAMP, and others.
Change code to allow for multiple SQL types per pg type.


Modified: DBD-Pg/trunk/types.c
==============================================================================
--- DBD-Pg/trunk/types.c        (original)
+++ DBD-Pg/trunk/types.c        Tue Mar 27 11:31:24 2007
@@ -23,7 +23,7 @@
        {ANYARRAYOID, "anyarray", null_quote, null_dequote, {SQL_ARRAY}, 
DBDPG_TRUE},
        {ANYELEMENTOID, "anyelement", 0, 0, {0}, DBDPG_FALSE},
        {ANYOID, "any", null_quote, null_dequote, {0}, DBDPG_TRUE},
-       {BITOID, "bitstring", null_quote, null_dequote, {0}, DBDPG_TRUE},
+       {BITOID, "bitstring", null_quote, null_dequote, {SQL_BIT}, DBDPG_TRUE},
        {BOOLOID, "bool", quote_bool, dequote_bool, {SQL_BOOLEAN}, DBDPG_TRUE},
        {BOXOID, "box", quote_geom, dequote_string, {0}, DBDPG_TRUE},
        {BPCHAROID, "bpchar", quote_string, dequote_char, {SQL_CHAR}, 
DBDPG_TRUE},
@@ -35,14 +35,15 @@
        {CIRCLEOID, "circle", quote_circle, dequote_string, {0}, DBDPG_TRUE},
        {CSTRINGOID, "cstring", null_quote, null_dequote, {0}, DBDPG_TRUE},
        {DATEOID, "date", null_quote, null_dequote, {SQL_TYPE_DATE}, 
DBDPG_TRUE},
-       {FLOAT4OID, "float4", quote_string, dequote_char, {SQL_NUMERIC}, 
DBDPG_TRUE},
-       {FLOAT8OID, "float8", null_quote, null_dequote, {SQL_REAL}, DBDPG_TRUE},
+       {FLOAT4ARRAYOID, "float4array", 0, 0, {0}, DBDPG_FALSE},
+       {FLOAT4OID, "float4", quote_string, dequote_char, {SQL_REAL}, 
DBDPG_TRUE},
+       {FLOAT8OID, "float8", null_quote, null_dequote, {SQL_FLOAT}, 
DBDPG_TRUE},
        {INETOID, "IP address", null_quote, null_dequote, {0}, DBDPG_TRUE},
        {INT2OID, "int2", null_quote, null_dequote, {SQL_SMALLINT}, DBDPG_TRUE},
        {INT2VECTOROID, "int28", null_quote, null_dequote, {0}, DBDPG_TRUE},
        {INT4ARRAYOID, "int4array", quote_string, dequote_string, {0}, 
DBDPG_TRUE},
        {INT4OID, "int4", null_quote, null_dequote, {SQL_INTEGER}, DBDPG_TRUE},
-       {INT8OID, "int8", null_quote, null_dequote, {SQL_DOUBLE}, DBDPG_TRUE},
+       {INT8OID, "int8", null_quote, null_dequote, {SQL_BIGINT}, DBDPG_TRUE},
        {INTERNALOID, "internal", null_quote, null_dequote, {0}, DBDPG_TRUE},
        {INTERVALOID, "timespan", quote_string, dequote_string, {SQL_INTERVAL}, 
DBDPG_TRUE},
        {LANGUAGE_HANDLEROID, "languagehandle", null_quote, null_dequote, {0}, 
DBDPG_TRUE},
@@ -71,10 +72,10 @@
        {REGTYPEARRAYOID, "regtypearray", null_quote, null_dequote, {0}, 
DBDPG_TRUE},
        {REGTYPEOID, "regtype", null_quote, null_dequote, {0}, DBDPG_TRUE},
        {RELTIMEOID, "reltime", null_quote, null_dequote, {0}, DBDPG_TRUE},
-       {TEXTOID, "text", quote_string, dequote_string, {SQL_VARCHAR}, 
DBDPG_TRUE},
+       {TEXTOID, "text", quote_string, dequote_string, {SQL_LONGVARCHAR}, 
DBDPG_TRUE},
        {TIDOID, "tid", quote_geom, dequote_string, {0}, DBDPG_TRUE},
        {TIMEOID, "time", null_quote, null_dequote, {SQL_TYPE_TIME}, 
DBDPG_TRUE},
-       {TIMESTAMPOID, "timestamp", quote_string, dequote_string, 
{SQL_TYPE_TIMESTAMP}, DBDPG_TRUE},
+       {TIMESTAMPOID, "timestamp", quote_string, dequote_string, 
{SQL_TIMESTAMP}, DBDPG_TRUE},
        {TIMESTAMPTZOID, "datetime", quote_string, dequote_string, 
{SQL_TYPE_TIMESTAMP_WITH_TIMEZONE}, DBDPG_TRUE},
        {TIMETZOID, "timestamptz", null_quote, null_dequote, 
{SQL_TYPE_TIME_WITH_TIMEZONE}, DBDPG_TRUE},
        {TINTERVALOID, "tinterval", null_quote, null_dequote, {0}, DBDPG_TRUE},
@@ -84,6 +85,7 @@
        {VARCHAROID, "varchar", quote_string, dequote_string, {SQL_VARCHAR}, 
DBDPG_TRUE},
        {VOIDOID, "void", null_quote, null_dequote, {0}, DBDPG_TRUE},
        {XIDOID, "xid", null_quote, null_dequote, {0}, DBDPG_TRUE},
+       {XMLOID, "xml", null_quote, null_dequote, {0}, DBDPG_TRUE},
 };
 
 sql_type_info_t* pg_type_data(sql_type)
@@ -108,93 +110,109 @@
                case CIRCLEOID:                return &pg_types[14];
                case CSTRINGOID:               return &pg_types[15];
                case DATEOID:                  return &pg_types[16];
-               case FLOAT4OID:                return &pg_types[17];
-               case FLOAT8OID:                return &pg_types[18];
-               case INETOID:                  return &pg_types[19];
-               case INT2OID:                  return &pg_types[20];
-               case INT2VECTOROID:            return &pg_types[21];
-               case INT4ARRAYOID:             return &pg_types[22];
-               case INT4OID:                  return &pg_types[23];
-               case INT8OID:                  return &pg_types[24];
-               case INTERNALOID:              return &pg_types[25];
-               case INTERVALOID:              return &pg_types[26];
-               case LANGUAGE_HANDLEROID:      return &pg_types[27];
-               case LINEOID:                  return &pg_types[28];
-               case LSEGOID:                  return &pg_types[29];
-               case MACADDROID:               return &pg_types[30];
-               case NAMEOID:                  return &pg_types[31];
-               case NUMERICOID:               return &pg_types[32];
-               case OIDOID:                   return &pg_types[33];
-               case OIDVECTOROID:             return &pg_types[34];
-               case OPAQUEOID:                return &pg_types[35];
-               case PATHOID:                  return &pg_types[36];
-               case PG_ATTRIBUTE_RELTYPE_OID: return &pg_types[37];
-               case PG_CLASS_RELTYPE_OID:     return &pg_types[38];
-               case PG_PROC_RELTYPE_OID:      return &pg_types[39];
-               case PG_TYPE_RELTYPE_OID:      return &pg_types[40];
-               case POINTOID:                 return &pg_types[41];
-               case POLYGONOID:               return &pg_types[42];
-               case RECORDOID:                return &pg_types[43];
-               case REFCURSOROID:             return &pg_types[44];
-               case REGCLASSOID:              return &pg_types[45];
-               case REGOPERATOROID:           return &pg_types[46];
-               case REGOPEROID:               return &pg_types[47];
-               case REGPROCEDUREOID:          return &pg_types[48];
-               case REGPROCOID:               return &pg_types[49];
-               case REGTYPEARRAYOID:          return &pg_types[50];
-               case REGTYPEOID:               return &pg_types[51];
-               case RELTIMEOID:               return &pg_types[52];
-               case TEXTOID:                  return &pg_types[53];
-               case TIDOID:                   return &pg_types[54];
-               case TIMEOID:                  return &pg_types[55];
-               case TIMESTAMPOID:             return &pg_types[56];
-               case TIMESTAMPTZOID:           return &pg_types[57];
-               case TIMETZOID:                return &pg_types[58];
-               case TINTERVALOID:             return &pg_types[59];
-               case TRIGGEROID:               return &pg_types[60];
-               case UNKNOWNOID:               return &pg_types[61];
-               case VARBITOID:                return &pg_types[62];
-               case VARCHAROID:               return &pg_types[63];
-               case VOIDOID:                  return &pg_types[64];
-               case XIDOID:                   return &pg_types[65];
+               case FLOAT4ARRAYOID:           return &pg_types[17];
+               case FLOAT4OID:                return &pg_types[18];
+               case FLOAT8OID:                return &pg_types[19];
+               case INETOID:                  return &pg_types[20];
+               case INT2OID:                  return &pg_types[21];
+               case INT2VECTOROID:            return &pg_types[22];
+               case INT4ARRAYOID:             return &pg_types[23];
+               case INT4OID:                  return &pg_types[24];
+               case INT8OID:                  return &pg_types[25];
+               case INTERNALOID:              return &pg_types[26];
+               case INTERVALOID:              return &pg_types[27];
+               case LANGUAGE_HANDLEROID:      return &pg_types[28];
+               case LINEOID:                  return &pg_types[29];
+               case LSEGOID:                  return &pg_types[30];
+               case MACADDROID:               return &pg_types[31];
+               case NAMEOID:                  return &pg_types[32];
+               case NUMERICOID:               return &pg_types[33];
+               case OIDOID:                   return &pg_types[34];
+               case OIDVECTOROID:             return &pg_types[35];
+               case OPAQUEOID:                return &pg_types[36];
+               case PATHOID:                  return &pg_types[37];
+               case PG_ATTRIBUTE_RELTYPE_OID: return &pg_types[38];
+               case PG_CLASS_RELTYPE_OID:     return &pg_types[39];
+               case PG_PROC_RELTYPE_OID:      return &pg_types[40];
+               case PG_TYPE_RELTYPE_OID:      return &pg_types[41];
+               case POINTOID:                 return &pg_types[42];
+               case POLYGONOID:               return &pg_types[43];
+               case RECORDOID:                return &pg_types[44];
+               case REFCURSOROID:             return &pg_types[45];
+               case REGCLASSOID:              return &pg_types[46];
+               case REGOPERATOROID:           return &pg_types[47];
+               case REGOPEROID:               return &pg_types[48];
+               case REGPROCEDUREOID:          return &pg_types[49];
+               case REGPROCOID:               return &pg_types[50];
+               case REGTYPEARRAYOID:          return &pg_types[51];
+               case REGTYPEOID:               return &pg_types[52];
+               case RELTIMEOID:               return &pg_types[53];
+               case TEXTOID:                  return &pg_types[54];
+               case TIDOID:                   return &pg_types[55];
+               case TIMEOID:                  return &pg_types[56];
+               case TIMESTAMPOID:             return &pg_types[57];
+               case TIMESTAMPTZOID:           return &pg_types[58];
+               case TIMETZOID:                return &pg_types[59];
+               case TINTERVALOID:             return &pg_types[60];
+               case TRIGGEROID:               return &pg_types[61];
+               case UNKNOWNOID:               return &pg_types[62];
+               case VARBITOID:                return &pg_types[63];
+               case VARCHAROID:               return &pg_types[64];
+               case VOIDOID:                  return &pg_types[65];
+               case XIDOID:                   return &pg_types[66];
+               case XMLOID:                   return &pg_types[67];
                default:return NULL;
        }
 }
 
 static sql_type_info_t sql_types[] = {
+       {SQL_BIT, "SQL_BIT", null_quote, null_dequote, {BITOID}, DBDPG_TRUE},
        {SQL_BOOLEAN, "SQL_BOOLEAN", quote_bool, dequote_bool, {BOOLOID}, 
DBDPG_TRUE},
        {SQL_CHAR, "SQL_CHAR", quote_string, dequote_char, {BPCHAROID}, 
DBDPG_TRUE},
        {SQL_VARBINARY, "SQL_VARBINARY", quote_bytea, dequote_bytea, 
{BYTEAOID}, DBDPG_TRUE},
        {SQL_TYPE_DATE, "SQL_TYPE_DATE", null_quote, null_dequote, {DATEOID}, 
DBDPG_TRUE},
+       {SQL_REAL, "SQL_REAL", quote_string, dequote_char, {FLOAT4OID}, 
DBDPG_TRUE},
        {SQL_NUMERIC, "SQL_NUMERIC", quote_string, dequote_char, {FLOAT4OID}, 
DBDPG_TRUE},
-       {SQL_REAL, "SQL_REAL", null_quote, null_dequote, {FLOAT8OID}, 
DBDPG_TRUE},
+       {SQL_FLOAT, "SQL_FLOAT", null_quote, null_dequote, {FLOAT8OID}, 
DBDPG_TRUE},
+       {SQL_DOUBLE, "SQL_DOUBLE", null_quote, null_dequote, {FLOAT8OID}, 
DBDPG_TRUE},
        {SQL_SMALLINT, "SQL_SMALLINT", null_quote, null_dequote, {INT2OID}, 
DBDPG_TRUE},
+       {SQL_TINYINT, "SQL_TINYINT", null_quote, null_dequote, {INT2OID}, 
DBDPG_TRUE},
        {SQL_INTEGER, "SQL_INTEGER", null_quote, null_dequote, {INT4OID}, 
DBDPG_TRUE},
-       {SQL_DOUBLE, "SQL_DOUBLE", null_quote, null_dequote, {INT8OID}, 
DBDPG_TRUE},
+       {SQL_BIGINT, "SQL_BIGINT", null_quote, null_dequote, {INT8OID}, 
DBDPG_TRUE},
+       {SQL_INTERVAL, "SQL_INTERVAL", quote_string, dequote_string, 
{INTERVALOID}, DBDPG_TRUE},
        {SQL_DECIMAL, "SQL_DECIMAL", null_quote, null_dequote, {NUMERICOID}, 
DBDPG_TRUE},
        {SQL_TYPE_TIME, "SQL_TYPE_TIME", null_quote, null_dequote, {TIMEOID}, 
DBDPG_TRUE},
+       {SQL_TIMESTAMP, "SQL_TIMESTAMP", quote_string, dequote_string, 
{TIMESTAMPOID}, DBDPG_TRUE},
        {SQL_TYPE_TIMESTAMP, "SQL_TYPE_TIMESTAMP", quote_string, 
dequote_string, {TIMESTAMPOID}, DBDPG_TRUE},
        {SQL_TYPE_TIMESTAMP_WITH_TIMEZONE, "SQL_TYPE_TIMESTAMP_WITH_TIMEZONE", 
quote_string, dequote_string, {TIMESTAMPTZOID}, DBDPG_TRUE},
+       {SQL_UNKNOWN_TYPE, "SQL_UNKNOWN_TYPE", quote_string, dequote_string, 
{UNKNOWNOID}, DBDPG_TRUE},
        {SQL_VARCHAR, "SQL_VARCHAR", quote_string, dequote_string, 
{VARCHAROID}, DBDPG_TRUE},
 };
 
 sql_type_info_t* sql_type_data(sql_type)
        int sql_type;
 {      switch(sql_type) {
-               case SQL_BOOLEAN:                      return &sql_types[0];
-               case SQL_CHAR:                         return &sql_types[1];
-               case SQL_VARBINARY:                    return &sql_types[2];
-               case SQL_TYPE_DATE:                    return &sql_types[3];
-               case SQL_NUMERIC:                      return &sql_types[4];
+               case SQL_BIT:                          return &sql_types[0];
+               case SQL_BOOLEAN:                      return &sql_types[1];
+               case SQL_CHAR:                         return &sql_types[2];
+               case SQL_VARBINARY:                    return &sql_types[3];
+               case SQL_TYPE_DATE:                    return &sql_types[4];
                case SQL_REAL:                         return &sql_types[5];
-               case SQL_SMALLINT:                     return &sql_types[6];
-               case SQL_INTEGER:                      return &sql_types[7];
+               case SQL_NUMERIC:                      return &sql_types[6];
+               case SQL_FLOAT:                        return &sql_types[7];
                case SQL_DOUBLE:                       return &sql_types[8];
-               case SQL_DECIMAL:                      return &sql_types[9];
-               case SQL_TYPE_TIME:                    return &sql_types[10];
-               case SQL_TYPE_TIMESTAMP:               return &sql_types[11];
-               case SQL_TYPE_TIMESTAMP_WITH_TIMEZONE: return &sql_types[12];
-               case SQL_VARCHAR:                      return &sql_types[13];
+               case SQL_SMALLINT:                     return &sql_types[9];
+               case SQL_TINYINT:                      return &sql_types[10];
+               case SQL_INTEGER:                      return &sql_types[11];
+               case SQL_BIGINT:                       return &sql_types[12];
+               case SQL_INTERVAL:                     return &sql_types[13];
+               case SQL_DECIMAL:                      return &sql_types[14];
+               case SQL_TYPE_TIME:                    return &sql_types[15];
+               case SQL_TIMESTAMP:                    return &sql_types[16];
+               case SQL_TYPE_TIMESTAMP:               return &sql_types[17];
+               case SQL_TYPE_TIMESTAMP_WITH_TIMEZONE: return &sql_types[18];
+               case SQL_UNKNOWN_TYPE:                 return &sql_types[19];
+               case SQL_VARCHAR:                      return &sql_types[20];
                default: return NULL;
        }
 }
@@ -288,19 +306,8 @@
 
 ## Map all types into a sql_type_info structure
 
-#Each must have a "name" e.g. declared as column type name
-#whether we quote it or not (DBDPG_TRUE)
-#the quoting function to use
-#the dequoting function to use
-#the closest SQL_ match
-#whether this is the "master" for sql matches
-
-# Group by quoting function, then name
-# Start with bool
-
 print OUT "static sql_type_info_t pg_types[] = {\n";
 
-
 my %type;
 while (<DATA>) {
        last if /^__END__/;
@@ -319,8 +326,9 @@
                next;
        }
        ## {BOOLOID, "bool", quote_bool, dequote_bool, {SQL_BOOLEAN}, 
DBDPG_TRUE},
+       (my $sqltype = $type{$_}[3]) =~ s#^(\w+).*#$1#;
        printf OUT qq!\t{$_, "%s", %s, %s, \{%s\}, %s\},\n!,
-               $type{$_}[0], $type{$_}[1], $type{$_}[2], $type{$_}[3], 
($type{$_}[1] ? "DBDPG_TRUE" : "DBDPG_FALSE");
+               $type{$_}[0], $type{$_}[1], $type{$_}[2], $sqltype, 
($type{$_}[1] ? "DBDPG_TRUE" : "DBDPG_FALSE");
        $pos{$_} = $item++;
 }
 
@@ -333,7 +341,6 @@
 \tswitch(sql_type) {
 \n";
 
-
 for (sort keys %type) {
        if (!exists $oid{$_}) {
                warn "Unreferenced type: $_\n";
@@ -354,11 +361,12 @@
                warn "Unreferenced type: $_\n";
        }
        next unless $type{$_}[4];
-       my $sql = $type{$_}[3];
-       ## {SQL_VARCHAR, "SQL_VARCHAR", quote_string, dequote_string, 
{VARCHAROID}, DBDPG_TRUE },
-       printf OUT qq{\t\{$sql, "$sql", $type{$_}[1], $type{$_}[2], \{$_\}, 
DBDPG_TRUE\},\n};
-       $pos{$sql} = $item++;
-       $maxlen = length $sql if length $sql > $maxlen;
+       for my $sql (split m#\s*\|\s*# => $type{$_}[3]) {
+               ## {SQL_VARCHAR, "SQL_VARCHAR", quote_string, dequote_string, 
{VARCHAROID}, DBDPG_TRUE },
+               printf OUT qq{\t\{$sql, "$sql", $type{$_}[1], $type{$_}[2], 
\{$_\}, DBDPG_TRUE\},\n};
+               $maxlen = length $sql if length $sql > $maxlen;
+               $pos{$sql} = $item++;
+       }
 }
 print OUT "\};\n\n";
 
@@ -388,11 +396,11 @@
 ## Try to keep them grouped by the quoting function, SQL_ mapper, then the 
internal name
 
 ## Numbers - no quoting needed
-INT2OID, int2, null_quote, null_dequote, SQL_SMALLINT, 1
+INT2OID, int2, null_quote, null_dequote, SQL_SMALLINT|SQL_TINYINT, 1
 INT4OID, int4, null_quote, null_dequote, SQL_INTEGER, 1
-INT8OID, int8, null_quote, null_dequote, SQL_DOUBLE, 1
-FLOAT4OID, float4, quote_string, dequote_char, SQL_NUMERIC, 1
-FLOAT8OID, float8, null_quote,null_dequote, SQL_REAL, 1
+INT8OID, int8, null_quote, null_dequote, SQL_BIGINT, 1
+FLOAT4OID, float4, quote_string, dequote_char, SQL_REAL|SQL_NUMERIC, 1
+FLOAT8OID, float8, null_quote,null_dequote, SQL_FLOAT|SQL_DOUBLE, 1
 NUMERICOID, numeric, null_quote, null_dequote, SQL_DECIMAL, 1
 CIDOID, cid, null_quote, null_dequote, SQL_INTEGER, 0
 OIDOID, oid, null_quote, null_dequote, SQL_INTEGER, 0
@@ -401,7 +409,7 @@
 VARCHAROID, varchar, quote_string, dequote_string, SQL_VARCHAR, 1
 BPCHAROID, bpchar, quote_string, dequote_char, SQL_CHAR, 1
 NAMEOID, name, null_quote, null_dequote, SQL_VARCHAR, 0
-TEXTOID, text, quote_string, dequote_string, SQL_VARCHAR, 0
+TEXTOID, text, quote_string, dequote_string, SQL_LONGVARCHAR, 0
 
 ## Geometric types
 POINTOID, point, quote_geom, dequote_string, 0, 0
@@ -425,7 +433,7 @@
 ## Time and date
 DATEOID, date, null_quote, null_dequote, SQL_TYPE_DATE, 1
 TIMEOID, time, null_quote, null_dequote, SQL_TYPE_TIME, 1
-TIMESTAMPOID, timestamp, quote_string, dequote_string, SQL_TYPE_TIMESTAMP, 1
+TIMESTAMPOID, timestamp, quote_string, dequote_string, 
SQL_TIMESTAMP|SQL_TYPE_TIMESTAMP, 1
 TIMESTAMPTZOID, datetime, quote_string, dequote_string, 
SQL_TYPE_TIMESTAMP_WITH_TIMEZONE, 1
 TIMETZOID, timestamptz, null_quote, null_dequote, SQL_TYPE_TIME_WITH_TIMEZONE, 0
 
@@ -436,15 +444,16 @@
 ACLITEMOID, aclitem, null_quote, null_dequote, 0, 0
 ANYARRAYOID, anyarray, null_quote, null_dequote, SQL_ARRAY, 0
 ANYOID, any, null_quote, null_dequote, 0, 0
-BITOID, bitstring, null_quote, null_dequote, 0, 0
+BITOID, bitstring, null_quote, null_dequote, SQL_BIT, 1
 CASHOID, money, null_quote, null_dequote, 0, 0
 CIDROID, IP - cidr, null_quote, null_dequote, 0, 0
 CSTRINGOID, cstring, null_quote, null_dequote, 0, 0
+FLOAT4ARRAYOID, float4array, 0, 0, 0, 0
 INETOID, IP address, null_quote, null_dequote, 0, 0
 INT2VECTOROID, int28, null_quote, null_dequote, 0, 0
 INT4ARRAYOID, int4array, quote_string, dequote_string, 0, 0
 INTERNALOID, internal, null_quote, null_dequote, 0, 0
-INTERVALOID, timespan, quote_string, dequote_string, SQL_INTERVAL, 0
+INTERVALOID, timespan, quote_string, dequote_string, SQL_INTERVAL, 1
 LANGUAGE_HANDLEROID, languagehandle, null_quote, null_dequote, 0, 0
 MACADDROID, MAC address, quote_string,dequote_string, 0, 0
 OIDVECTOROID, oid8, null_quote, null_dequote, 0, 0
@@ -465,10 +474,11 @@
 RELTIMEOID, reltime, null_quote, null_dequote, 0, 0
 TINTERVALOID, tinterval, null_quote, null_dequote, 0, 0
 TRIGGEROID, trigger, null_quote, null_dequote, 0, 0
-UNKNOWNOID, unknown, quote_string, dequote_string, SQL_UNKNOWN_TYPE, 0
+UNKNOWNOID, unknown, quote_string, dequote_string, SQL_UNKNOWN_TYPE, 1
 VARBITOID, vbitstring, null_quote, null_dequote, 0, 0
 VOIDOID, void, null_quote, null_dequote, 0, 0
 XIDOID, xid, null_quote, null_dequote, 0, 0
+XMLOID, xml, null_quote, null_dequote, 0, 0
 
 
 __END__

Modified: DBD-Pg/trunk/types.h
==============================================================================
--- DBD-Pg/trunk/types.h        (original)
+++ DBD-Pg/trunk/types.h        Tue Mar 27 11:31:24 2007
@@ -33,6 +33,7 @@
 #define                CIRCLEOID  718
 #define               CSTRINGOID  2275
 #define                  DATEOID  1082
+#define           FLOAT4ARRAYOID  1021
 #define                FLOAT4OID  700
 #define                FLOAT8OID  701
 #define                  INETOID  869
@@ -82,5 +83,6 @@
 #define               VARCHAROID  1043
 #define                  VOIDOID  2278
 #define                   XIDOID  28
+#define                   XMLOID  142
 
 #endif

Reply via email to