Skip site navigation (1) Skip section navigation (2)

[Fwd: [PHP-CVS] cvs: php-src(PHP_5_1) /ext/pdo_pgsql package.xml pgsql_driver.c pgsql_statement.c php_pdo_pgsql_int.h]

From: Christopher Kings-Lynne <chriskl(at)familyhealth(dot)com(dot)au>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: [Fwd: [PHP-CVS] cvs: php-src(PHP_5_1) /ext/pdo_pgsql package.xml pgsql_driver.c pgsql_statement.c php_pdo_pgsql_int.h]
Date: 2005-11-27 14:44:56
Message-ID: 4389C668.3010801@familyhealth.com.au (view raw or flat)
Thread:
Lists: pgsql-hackers
Is Wez of the PHP project correct here in that you can't find parameter 
types of statements via libpq?

Chris

-------- Original Message --------
Subject: [PHP-CVS] cvs: php-src(PHP_5_1) /ext/pdo_pgsql package.xml 
pgsql_driver.c pgsql_statement.c php_pdo_pgsql_int.h
Date: Fri, 25 Nov 2005 03:35:06 -0000
From: Wez Furlong <wez(at)php(dot)net>
To: php-cvs(at)lists(dot)php(dot)net

wez		Thu Nov 24 22:35:06 2005 EDT

   Modified files:              (Branch: PHP_5_1)
     /php-src/ext/pdo_pgsql	package.xml pgsql_driver.c pgsql_statement.c
                           	php_pdo_pgsql_int.h
   Log:
   Addresses #35338.

   Postgres client API is pretty poor, so we have zero idea about the actual
   parameter types in a statement.

   We now defer the preparation of a statement until the first call to 
execute is
   made.  At that point, we have the parameters defined by the calling 
script, so
   we can use the typing specified there when we perform the prepare.

   For PDO_PARAM_LOB parameters, we set the binary formatting flag.

   We can't just set this flag for all parameters, because its meaning 
is not
   "string data, counted length" but "data is in native format".  If 
this flag is
   set for a numeric column and we send the number 1 formatted as a 
string, then
   we will get an "insufficient data left in message" error message, 
because the
   library was expecting sizeof(int4) bytes but only saw 1 byte for "1".

   This is infuriating because we have no way to determine the datatypes for
   parameters, and the type we explicitly set has to match the type in the
   database.  The only choice we're left with is telling postgres to 
deduce the
   type; we still have no idea what type was deduced.

<cvs diffs omitted>

Responses

pgsql-hackers by date

Next:From: Christopher Kings-LynneDate: 2005-11-27 15:15:04
Subject: Strange interval arithmetic
Previous:From: Christopher Kings-LynneDate: 2005-11-27 14:39:47
Subject: Re: Windows installation notes

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group