Re: Pg_upgrade error could not load library from 7.14/8.4 to 10.10 version
От | Tom Lane |
---|---|
Тема | Re: Pg_upgrade error could not load library from 7.14/8.4 to 10.10 version |
Дата | |
Msg-id | 22046.1568901429@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Pg_upgrade error could not load library from 7.14/8.4 to 10.10version (Ekaterina Amez <ekaterina.amez@zunibal.com>) |
Ответы |
Re: Pg_upgrade error could not load library from 7.14/8.4 to 10.10version
Re: Pg_upgrade error could not load library from 7.14/8.4 to 10.10version |
Список | pgsql-admin |
Ekaterina Amez <ekaterina.amez@zunibal.com> writes: > El 19/9/19 a las 10:07, Achilleas Mantzios escribió: >> On 19/9/19 10:49 π.μ., Ekaterina Amez wrote: >>> 2019-09-19 08:53:50.345 CEST [2283] postgres@template1 ERROR: could not load library "/usr/lib/postgresql/8.4/lib/plpgsql.so":/usr/lib/postgresql/8.4/lib/plpgsql.so: undefined symbol: SPI_push This error is clearly due to trying to load the 8.4 version of plpgsql.so into the v10 server. What seems like the likely cause is that the pg_proc.probin entries for the plpgsql support functions were literally "/usr/lib/postgresql/8.4/lib/plpgsql.so", rather than something that would adapt to the new version. The preferred way to declare such functions, for a long time, has been with probin = "$libdir/plpgsql", relying on the server to subsitute an appropriate path for $libdir. > With these results, finally I've: > 1- modified template1 in PG 8.4 server to include plpgsql language, > so it can be inherited in new databases created from this template. > 2- Dropped and recreated my database (let's call it newdb). This probably fixed it by ensuring that the plpgsql support functions were declared with the standard value of probin. > The conclusion is that I can avoid the use of plpgsql.so library. My > question now would be related about the creation of the language in > version 8.4: is it better to create it at template level or at database > level? I would not sweat too much about this, since you don't intend to keep using 8.4 (or at least I hope not). Since 9.0, plpgsql is automatically installed at initdb time and there's no need for an additional copy. regards, tom lane
В списке pgsql-admin по дате отправления: