Thread: create extension failed

create extension failed

From
alp@sfedu.ru
Date:
Hello.
I have one test database, which was upgraded from 8.4 to 9.0. Now I've
upgraded it to 9.1. I'm trying to create extension for hstore.

db=# CREATE EXTENSION hstore WITH SCHEMA public FROM unpackaged;
ERROR:  function hstore_recv(internal) does not exist

I suppose, that hstore_recv was added in 9.0, but I didn't update
hstore extension after upgrading from 8.4 to 9.0. Is this assumption
correct? How am I supposed to deal with this situation?

Finally, I was able to create extension after the following:
sed -e 's|MODULE_PATHNAME|$libdir/hstore|' <
/usr/local/share/postgresql/extension/hstore--1.0.sql | su pgsql -c
'psql -d db '
db=# CREATE EXTENSION hstore WITH SCHEMA public FROM unpackaged;

I'm not sure if it was a right thing...

--
С уважением,
Александр Пыхалов,
системный администратор ЮГИНФО ЮФУ

Re: create extension failed

From
Craig Ringer
Date:
On 09/22/2011 04:40 AM, alp@sfedu.ru wrote:
> Hello.
> I have one test database, which was upgraded from 8.4 to 9.0. Now I've
> upgraded it to 9.1. I'm trying to create extension for hstore.
>
> db=# CREATE EXTENSION hstore WITH SCHEMA public FROM unpackaged;
> ERROR:  function hstore_recv(internal) does not exist
>
> I suppose, that hstore_recv was added in 9.0, but I didn't update
> hstore extension after upgrading from 8.4 to 9.0. Is this assumption
> correct? How am I supposed to deal with this situation?

I think the idea is that you bring your schema up to match the 9.0
hstore module, just like you would when upgrading without extensions.
*then* you create extension ... from unpackaged to wrap it as an extension.

I get the impression the documentation could cover this better, as
people seem to (perhaps reasonably) assume that "from unpackaged" is for
upgrades from older versions of the contrib modules. It can do that, but
only if appropriate upgrade scripts are written for the older versions
of the modules.

--
Craig Ringer