client encoding name normalization in psycopg 2.4

From: Peter Eisentraut <peter_e(at)gmx(dot)net>
To: psycopg(at)postgresql(dot)org
Subject: client encoding name normalization in psycopg 2.4
Date: 2011-04-07 19:46:56
Message-ID: 1302205616.21369.10.camel@vanquo.pezone.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: psycopg

Psycopg 2.4 now tries to map the PostgreSQL client encoding to a Python
codec. But it fails to consider some variant spellings. For example, I
have

PGCLIENTENCODING=UTF-8

in my environment, which completely breaks the new psycopg version with

no Python codec for client encoding 'UTF-8'

(The underlying reason for this is that I use

export PGCLIENTENCODING=$(locale charmap)

which gives variant spelling of encoding names across operating
systems.)

The PostgreSQL backend normalizes an encoding name by removing all
non-alnum characters from it. I suggest psycopg do the same.

Attached is a patch that implements that. Note that the PostgreSQL
backend version of this actually lowercases the encoding names during
normalization. I have made this patch uppercase them to keep the patch
smaller, but you may want to consider doing the lowercasing, to keep
things consistent.

Attachment Content-Type Size
psycopg-clientencoding-fix.patch text/x-patch 3.9 KB

Responses

Browse psycopg by date

  From Date Subject
Next Message Mark Sienkiewicz 2011-04-07 20:40:29 portable DBAPI auto-increment
Previous Message Federico Di Gregorio 2011-04-05 09:59:25 Re: psycopg and the GPL