-----BEGIN PGP SIGNED MESSAGE-----
Hash: RIPEMD160

> So { '1' => 'integer' } sure looks like a bug.

>> However, bind_param currently saves the value to an internal form, without
>> saving how it got there, which makes the key of that inner hash ('pg_type')
>> difficult to show. Because the value, SQL_INTEGER, is really a constant, it's
>> equally difficult to know to output 'SQL_INTEGER' - we'd really have to 
>> output
>> the number it maps to.

> Yes. Outputting the _string_ "SQL_INTEGER" would be wrong as it wouldn't
> work for the code above.

Thanks for the clarification Tim, that all makes sense. I've changed DBD::Pg to
do the right thing for ParamTypes. Specifically, it outputs a hash with 
placeholder
numbers or names as keys, as before, and with a hashref for the values that
contains a single key (always "pg_type") and the internal type number as the 
value.

{ 1 => { pg_type => 23 }, 2 => { pg_type => 1024 } }

and

{ ':foo' => { pg_type => 23 }, ':foo2' => { pg_type => 1024 } }

The just-released 2.11.0 version of DBD::Pg has this behavior.

- --
Greg Sabino Mullane [EMAIL PROTECTED]
PGP Key: 0x14964AC8 200810130752
http://biglumber.com/x/web?pk=2529DF6AB8F79407E94445B4BC9B906714964AC8


-----BEGIN PGP SIGNATURE-----

iEYEAREDAAYFAkjzNqMACgkQvJuQZxSWSsgs7QCgoxIdn7KDhRUGc63QkDlqgtxI
5L8AnjjpaxLeA5ZPK8/2+sB2/3XAuAzN
=UIqO
-----END PGP SIGNATURE-----


Reply via email to