From: | Adrian Klaver <adrian(dot)klaver(at)gmail(dot)com> |
---|---|
To: | Bruce Momjian <bruce(at)momjian(dot)us> |
Cc: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: BUG #6666: pg_upgrade 9.2beta1 plpython/plpython2 |
Date: | 2012-05-27 18:49:31 |
Message-ID: | 4FC2773B.6050206@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
On 05/26/2012 07:24 PM, Bruce Momjian wrote:
> On Sat, May 26, 2012 at 11:42:09PM +0000, adrian(dot)klaver(at)gmail(dot)com wrote:
>> The following bug has been logged on the website:
>>
>> Bug reference: 6666
>> Logged by: Adrian Klaver
>> Email address: adrian(dot)klaver(at)gmail(dot)com
>> PostgreSQL version: 9.0.7
>> Operating system: Linux/OpenSuse 12.1
>> Description:
>>
>>
>> I just tried an upgrade from 9.0.7 to 9.2beta1 using pg_upgrade. I ran it
>> first with -c and everything passed. When I did a live upgrade it failed
>> with this message in pg_upgrade_restore.log:
>>
>> CREATE FUNCTION plpython_call_handler() RETURNS language_handler
>> LANGUAGE c
>> AS '$libdir/plpython', 'plpython_call_handler';
>> psql:pg_upgrade_dump_db.sql:13541: ERROR: could not access file
>> "$libdir/plpython": No such file or directory
>>
>> That is indeed true, there is no plpython, there is plpython2 instead. I
>> created a symlink plpython --> plpython2 and the upgraded succeeded after a
>> re-initdb of the new cluster.
>
> It took me a little while to remember the cause of this problem, but I
> found it!
>
> http://archives.postgresql.org/pgsql-hackers/2012-03/msg01101.php
>
> This was reported in March, 2012 --- please read the entire thread. The
> problem is that you have a plpython_call_handler defined in the "public"
> schema, and it is being dumped out by pg_dumpall, rather than using a
> generic CREATE LANGUAGE statement. Odds are this is left over from an
> older version of Postgres.
This particular database dates back to version 7.2, though plpythonu was not
added until version 8.0.x using the following:
CREATE PROCEDURAL LANGUAGE 'plpythonu'
HANDLER plpython_call_handler;
Until now my procedure has been to do dump/restore to move from one major version to another.
>
> If you can help me find out how these got defined this way, I might be
> able to prevent this problem for the next person.
>
After reading the above thread here is what the queries mentioned return:
production=# SELECT nspname,proname,probin FROM pg_proc,pg_namespace
WHERE probin LIKE '%python%' and pg_proc.pronamespace=pg_namespace.oid;
nspname | proname | probin
------------+-------------------------+------------------
pg_catalog | plpython_call_handler | $libdir/plpython
pg_catalog | plpython_inline_handler | $libdir/plpython
public | plpython_call_handler | $libdir/plpython
(3 rows)
production=# SELECT tableoid, oid, proname, prolang, pronargs, proargtypes,
prorettype, proacl, pronamespace, (SELECT rolname FROM pg_catalog.pg_roles WHERE
oid = proowner) AS rolname FROM pg_proc p WHERE NOT proisagg AND
(pronamespace != (SELECT oid FROM pg_namespace WHERE
nspname = 'pg_catalog'));
tableoid | oid | proname | prolang | pronargs | proargtypes | prorettype | proacl | pronamespace | rolname
----------+-----+---------+---------+----------+-------------+------------+--------+--------------+---------
(0 rows)
If you need any more information let me know.
Thanks,
--
Adrian Klaver
adrian(dot)klaver(at)gmail(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2012-05-27 20:35:15 | Re: BUG #6666: pg_upgrade 9.2beta1 plpython/plpython2 |
Previous Message | Bruce Momjian | 2012-05-27 02:24:16 | Re: BUG #6666: pg_upgrade 9.2beta1 plpython/plpython2 |