Am 23.11.2015 um 04:54 schrieb D'Arcy J.M. Cain:
Enjoy the beer.  You deserve it after all that work.  Unfortunately I
am still getting errors.  On a NetBSD current system I get the attached
errors.  On a Linus box (Xubuntu) I get a seg fault.  I guess it has
something to do with my locale but I thought that you set all that.

Yes, the test fixtures set the client_encoding and locale. However, the tests don't change the encoding and locale of the test database.

So I think this has something to do with the encoding and locale with which the test database has been set up. You can see it with "psql -l". I have set up my databases with UTF8, which was the default on my systems. Now I remember you said you were using ascii databases.

So I tried with a database using sql_ascii as encoding and C locale and could reproduce errors of the kind you're seeing:

createdb unittest -T template0 -E sql_ascii -l C -e sql_ascii

Note that sql_ascii is a special since it means "no encoding" for non-ascii chars, i.e. you can see raw data that the client cannot handle. That's why you normally should not use it and utf8 is the default. Also note that the "Euro" sign used when outputting money values with German local in one of the tests *is* non-ascii, and there are also other tests with non-ascii characters.

Another place where this can cause problems is when using the COPY command to shuffle data between stdin, stdout and the database. In this case you can see inserttable and getline/putline tests failing or segfault because of incompatible encodings.

I'll definitely look into this when I have more time again.

-- Christoph
_______________________________________________
PyGreSQL mailing list
[email protected]
https://mail.vex.net/mailman/listinfo.cgi/pygresql

Reply via email to