Thread: Possible bug in conversion_create.sql

Possible bug in conversion_create.sql

From
""
Date:
Hello,

 I had a problem with PostgreSQL 7.3.4, the pg_conversion table was empty after
initdb, so, no conversion could be made. I did exactly this:
 # tar xvzf postgres-7.3.4.tar.gz
 # cd postgres-7.3.4
 # ./configure --prefix=/var/lib/pgsql --with-java --with-openssl
--without-readline
 # make
 # make install
 Created the postgres user and group and did chown postgres:postgres
/var/lib/pgsql -R
 # su - postgres
 postgres$ initdb --pgdata /var/lib/pgsql/data
 postgres$ exit
 Runned /etc/init.d/postgres start, that have the following command:
 # su - $PG_USER -c "$PG_BASE/bin/pg_ctl start -D '$PG_DATA' -s -l '$PG_LOGFILE'
-o '-N 1024 -B 2048 -i'"
 Where: PG_USER=postgres, PG_BASE=/var/lib/pgsql, PG_DATA=/var/lib/pgsql/data
and PG_LOGFILE=/var/lib/pgsql/data/postgres.log

 Until here everything looked fine, but then JDBC tried on a database created
with LATIN1 encoding:
 set client_encoding='UNICODE';
 And got back: Conversion between LATIN1 and UNICODE is not supported

 With the help of two people from #postgresql at irc.freenode.org, I did a
initdb -d --pgdata data 2>debug.log and founded out that the problem was that
conversion_create.sql wasn't changing $libdir to the actual name
(/var/lib/pgsql/lib in my case). I did a sed on it and runned initdb, this time
everything runned fine.

 I hope this help this great database,

 Thanks,

 Silvio Fonseca
 Linux Consultant

Re: Possible bug in conversion_create.sql

From
Tom Lane
Date:
"" <silvio@relato.com.br> writes:
>  With the help of two people from #postgresql at irc.freenode.org, I did a
> initdb -d --pgdata data 2>debug.log and founded out that the problem was that
> conversion_create.sql wasn't changing $libdir to the actual name

It's not supposed to.  I don't know what problem you had, but this is
the wrong fix.

            regards, tom lane

Re: Possible bug in conversion_create.sql

From
Tom Lane
Date:
"" <silvio@relato.com.br> writes:
>> It's not supposed to.  I don't know what problem you had, but this is
>> the wrong fix.

>  But the problem was solved with the change. I'm not a postgres master
> at all, so, how postgres knows what to use on the libdir variable?
> Where the variable is defined? How I know if this is set?

$libdir is expanded on-the-fly when the dynamic function loader needs to
find the file.  The value that is used for it can be found from
    pg_config --pkglibdir

            regards, tom lane

Re: Possible bug in conversion_create.sql

From
""
Date:
>>  With the help of two people from #postgresql at irc.freenode.org, I did a
>> initdb -d --pgdata data 2>debug.log and founded out that the problem was
>> that conversion_create.sql wasn't changing $libdir to the actual name

> It's not supposed to.  I don't know what problem you had, but this is
> the wrong fix.

 I'm sure that sed isn't the correct procedure :-) Somewhere in the way (in the
instalation or in runtime), postgres should change libdir to the actual dir
name, since the error was "no such file or directory"...

 But the problem was solved with the change. I'm not a postgres master at all,
so, how postgres knows what to use on the libdir variable? Where the variable
is defined? How I know if this is set?

 Thanks for any anwer :-)

 Silvio Fonseca
 Linux Consultant