pgsql: Add Unicode support in PL/Python PL/Python now accepts Unicode

Started by Nonameover 16 years ago6 messages
#1Noname
petere@postgresql.org

Log Message:
-----------
Add Unicode support in PL/Python

PL/Python now accepts Unicode objects where it previously only accepted string
objects (for example, as return value). Unicode objects are converted to the
PostgreSQL server encoding as necessary.

This change is also necessary for future Python 3 support, which treats all
strings as Unicode objects.

Since this removes the error conditions that the plpython_unicode test file
tested for, the alternative result files are no longer necessary.

Modified Files:
--------------
pgsql/src/pl/plpython:
plpython.c (r1.128 -> r1.129)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpython/plpython.c?r1=1.128&r2=1.129)
pgsql/src/pl/plpython/expected:
README (r1.1 -> r1.2)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpython/expected/README?r1=1.1&r2=1.2)
plpython_trigger.out (r1.4 -> r1.5)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpython/expected/plpython_trigger.out?r1=1.4&r2=1.5)
plpython_unicode.out (r1.2 -> r1.3)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpython/expected/plpython_unicode.out?r1=1.2&r2=1.3)
pgsql/src/pl/plpython/sql:
plpython_trigger.sql (r1.3 -> r1.4)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpython/sql/plpython_trigger.sql?r1=1.3&r2=1.4)
plpython_unicode.sql (r1.1 -> r1.2)
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpython/sql/plpython_unicode.sql?r1=1.1&r2=1.2)

Removed Files:
-------------
pgsql/src/pl/plpython/expected:
plpython_unicode_2.out
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpython/expected/plpython_unicode_2.out)
plpython_unicode_3.out
(http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpython/expected/plpython_unicode_3.out)

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Noname (#1)
Re: pgsql: Add Unicode support in PL/Python PL/Python now accepts Unicode

petere@postgresql.org (Peter Eisentraut) writes:

Log Message:
-----------
Add Unicode support in PL/Python

The buildfarm seems quite unhappy with this patch.

regards, tom lane

#3Peter Eisentraut
peter_e@gmx.net
In reply to: Tom Lane (#2)
Re: [COMMITTERS] pgsql: Add Unicode support in PL/Python

On lör, 2009-09-12 at 21:34 -0400, Tom Lane wrote:

petere@postgresql.org (Peter Eisentraut) writes:

Log Message:
-----------
Add Unicode support in PL/Python

The buildfarm seems quite unhappy with this patch.

I am completely unable to reproduce the buildfarm failures, even with
different Python versions and the exact configure options that the
buildfarm instances use. Does anyone have an affected build and wants
to work through this with me?

#4Andrew Dunstan
andrew@dunslane.net
In reply to: Peter Eisentraut (#3)
Re: [COMMITTERS] pgsql: Add Unicode support in PL/Python

Peter Eisentraut wrote:

On lör, 2009-09-12 at 21:34 -0400, Tom Lane wrote:

petere@postgresql.org (Peter Eisentraut) writes:

Log Message:
-----------
Add Unicode support in PL/Python

The buildfarm seems quite unhappy with this patch.

I am completely unable to reproduce the buildfarm failures, even with
different Python versions and the exact configure options that the
buildfarm instances use. Does anyone have an affected build and wants
to work through this with me?

I am going out shortly, but if you send me your ssh PK before I go I
will set you an account up on dungbeetle which is failing and you can
play there.

cheers

andrew

#5Peter Eisentraut
peter_e@gmx.net
In reply to: Andrew Dunstan (#4)
Re: [COMMITTERS] pgsql: Add Unicode support in PL/Python

On sön, 2009-09-13 at 10:07 -0400, Andrew Dunstan wrote:

Add Unicode support in PL/Python

The buildfarm seems quite unhappy with this patch.

I am completely unable to reproduce the buildfarm failures, even with
different Python versions and the exact configure options that the
buildfarm instances use. Does anyone have an affected build and wants
to work through this with me?

I am going out shortly, but if you send me your ssh PK before I go I
will set you an account up on dungbeetle which is failing and you can
play there.

This is fixed now.

The reason this was not reproducible manually but showed up so
dramatically in the build farm is that almost all buildfarm machines use
SQL_ASCII as server encoding. While it's evidently good that we have
some machines testing that, we should probably also have more machines
testing the UTF8 and other code paths. Also, perhaps I'm missing
something, but it could have helped if the buildfarm logs showed the
locale and/or encoding somewhere.

#6Andrew Dunstan
andrew@dunslane.net
In reply to: Peter Eisentraut (#5)
Re: [COMMITTERS] pgsql: Add Unicode support in PL/Python

Peter Eisentraut wrote:

On sön, 2009-09-13 at 10:07 -0400, Andrew Dunstan wrote:

Add Unicode support in PL/Python

The buildfarm seems quite unhappy with this patch.

I am completely unable to reproduce the buildfarm failures, even with
different Python versions and the exact configure options that the
buildfarm instances use. Does anyone have an affected build and wants
to work through this with me?

I am going out shortly, but if you send me your ssh PK before I go I
will set you an account up on dungbeetle which is failing and you can
play there.

This is fixed now.

The reason this was not reproducible manually but showed up so
dramatically in the build farm is that almost all buildfarm machines use
SQL_ASCII as server encoding. While it's evidently good that we have
some machines testing that, we should probably also have more machines
testing the UTF8 and other code paths. Also, perhaps I'm missing
something, but it could have helped if the buildfarm logs showed the
locale and/or encoding somewhere.

Support for various locales and encodings is a relatively recent
addition to the buildfarm, and many members have not yet updated. But
dungbeetle has, for example. And you can see tests there run both in
C/SQL_ASCII and en_US.utf8. See
<http://www.pgbuildfarm.org/cgi-bin/show_log.pl?nm=dungbeetle&amp;dt=2009-09-12%2016:44:02&gt;
I know some of the boxes run at Sun (e.g. gothic_moth) also do checks in
several locale/encoding combinations.

cheers

andrew