Thread: BUG #4672: undefined symbol: check_encoding_conversion_args

BUG #4672: undefined symbol: check_encoding_conversion_args

From
"Boris"
Date:
The following bug has been logged online:

Bug reference:      4672
Logged by:          Boris
Email address:      pioline@lpthe.jussieu.fr
PostgreSQL version: 8.3.6
Operating system:   Linux
Description:        undefined symbol: check_encoding_conversion_args
Details:

I recently upgraded to 8.3.6, as a result of which encoding conversion does
not seem to work anymore:

$ export PGCLIENTENCODING=ISO-8859-1
$ psql
psql: FATAL:  could not load library "/usr/lib/pgsql/utf8_and_iso8859_1.so":
/usr/lib/pgsql/utf8_and_iso8859_1.so: undefined symbol:
check_encoding_conversion_args

My database is in UTF8, if I run the same with
export PGCLIENTENCODING=UTF8
everything works fine.

The same problem occurs in psql if I use

\encoding ISO-8859-1
ISO-8859-1: invalid encoding name or conversion procedure not found

Thank you for your help
BP

Re: BUG #4672: undefined symbol: check_encoding_conversion_args

From
Heikki Linnakangas
Date:
Boris wrote:
> The following bug has been logged online:
>
> Bug reference:      4672
> Logged by:          Boris
> Email address:      pioline@lpthe.jussieu.fr
> PostgreSQL version: 8.3.6
> Operating system:   Linux
> Description:        undefined symbol: check_encoding_conversion_args
> Details:
>
> I recently upgraded to 8.3.6, as a result of which encoding conversion does
> not seem to work anymore:
>
> $ export PGCLIENTENCODING=ISO-8859-1
> $ psql
> psql: FATAL:  could not load library "/usr/lib/pgsql/utf8_and_iso8859_1.so":
> /usr/lib/pgsql/utf8_and_iso8859_1.so: undefined symbol:
> check_encoding_conversion_args
>
> My database is in UTF8, if I run the same with
> export PGCLIENTENCODING=UTF8
> everything works fine.

check_encoding_conversion_args is a new internal function in 8.3.6. I
suspect that there's a mismatch in the version of PostgreSQL and the
associated encoding conversion libraries. Since you upgraded to 8.3.6,
have you restarted PostgreSQL? What does "SELECT version()" say?

--
   Heikki Linnakangas
   EnterpriseDB   http://www.enterprisedb.com

Re: BUG #4672: undefined symbol: check_encoding_conversion_args

From
Boris PIOLINE
Date:
Thanks a lot for the quick reply:

> Boris wrote:
>> The following bug has been logged online:
>>
>> Bug reference:      4672
>> Logged by:          Boris
>> Email address:      pioline@lpthe.jussieu.fr
>> PostgreSQL version: 8.3.6
>> Operating system:   Linux
>> Description:        undefined symbol: check_encoding_conversion_args
>> Details:
>> I recently upgraded to 8.3.6, as a result of which encoding conversion does
>> not seem to work anymore:
>>
>> $ export PGCLIENTENCODING=ISO-8859-1
>> $ psql
>> psql: FATAL:  could not load library
>> "/usr/lib/pgsql/utf8_and_iso8859_1.so":
>> /usr/lib/pgsql/utf8_and_iso8859_1.so: undefined symbol:
>> check_encoding_conversion_args
>>
>> My database is in UTF8, if I run the same with export PGCLIENTENCODING=UTF8
>> everything works fine.
>
> check_encoding_conversion_args is a new internal function in 8.3.6. I suspect
> that there's a mismatch in the version of PostgreSQL and the associated
> encoding conversion libraries. Since you upgraded to 8.3.6, have you
> restarted PostgreSQL? What does "SELECT version()" say?

You're right, that fixed the pb. However I still get a conversion error
from UTF8 into ISO-8859-1::

"Couldn't execute statement: ERROR: character 0xe28099 of encoding "UTF8"
has no equivalent in "LATIN1"

SELECT version returns

PostgreSQL 8.3.6 on i386-redhat-linux-gnu, compiled by GCC gcc (GCC) 4.3.0
20080428 (Red Hat 4.3.0-8)

Thanks for any help.

Regards,
Boris