[ANN] pyPgSQL 2.1 released

paul at boddie.net paul at boddie.net
Wed Jun 5 13:08:47 EDT 2002


On Wed, 5 Jun 2002 18:40:11 +0200 Gerhard Häring <gerhard.haering at gmx.de> wrote:
>CC-ing to pypgsql-users list, maybe other users have comments on this issue,
>too.

[Arrays vs. 'IN']

>QUERY: DECLARE PgSQL_08120A6C CURSOR FOR select * from cages where name
>       in '{"mammals","apes"}'
>
>... which obviously cannot work. The reason is that if pyPgSQL encounters a
>tuple or a list in the statement parameters, it will quote them suitable for
>use as an ARRAY. Unfortunately, the ARRAY syntax is different from what you
>would need for the IN operator in SQL.

Right, and there's no way of knowing what the database engine expects for that 
parameter until it has parsed the statement. I suppose there isn't a way of 
getting type information from PostgreSQL about parameters - indeed, does 
PostgreSQL actually support parameters in the way that other database systems 
do? I got the impression that PostgreSQL database modules have to bundle the 
parameter values into the query as shown above, rather than passing those 
values separately.

>I'm not sure if something can be done about this problem. It seems to me that
>it's an either/or with ARRAY vs. your desired conversion for the IN operator.

That's an unfortunate limitation, but thankfully I didn't need to use 'IN' 
after all. :-)

>I've fiddled with adding Unicode support for some time now, but I didn't get
>enough testers yet to make me comfortable enough with it for adding it to a
>pyPgSQL release. On the Sourceforge patches section, I've uploaded a patch for
>full Unicode support, including getting Unicode results back from the database,
>insert Unicode strings, and automatic encoding conversions. I'll try to update
>this patch today to work with the latest pyPgSQL 2.1 release and drop you a
>note when it's ready.

That would be great. Where XML data and PostgreSQL come together, it quickly 
becomes a requirement to handle the data gracefully or transparently, although 
I suspect that many database systems still struggle with Unicode.

Thanks for the explanation and the great work!

Paul





More information about the Python-list mailing list