Re: BUG #6718: Cannot delete, create or check existence of extension

From: Craig Ringer <ringerc(at)ringerc(dot)id(dot)au>
To: gary(dot)haran(at)gmail(dot)com
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #6718: Cannot delete, create or check existence of extension
Date: 2012-07-05 06:56:59
Message-ID: 4FF53ABB.4060209@ringerc.id.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On 07/05/2012 02:05 AM, gary(dot)haran(at)gmail(dot)com wrote:
> development=# create extension hstore;
> ERROR: type "hstore" already exists
> development=# drop extension hstore;
> ERROR: extension "hstore" does not exist
> development=# CREATE EXTENSION IF NOT EXISTS hstore;
> ERROR: type "hstore" already exists

First, thanks for the info in the report.

At a guess, it has the hstore data type in it from before the extension
system exists. You need to follow the upgrade instructions to convert it
to an extension. This isn't a bug in that Pg is working as designed,
though it's certainly not very nice user interface.

See:

http://www.postgresql.org/docs/9.1/static/sql-createextension.html

specifically the "FROM old_version" clause, eg:

CREATE EXTENSION hstore FROM unpackaged;

(I think that's right; I haven't used the extension system in an upgrade).

If you need more help please ask on pgsql-general as this doesn't appear
to be a bug from the information supplied. However, I think "CREATE
EXTENSION" should emit a HINT for already-exists errors, guiding people
to info on how to upgrade the extension.

I'm assuming the database "development" was loaded from a dump from an
older version or was binary-upgraded from an older version. If it was
created anew on 9.1, how did the "hstore" type get loaded?

--
Craig Ringer

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Magnus Hagander 2012-07-05 12:07:15 Re: [BUGS] Tab completion of function arguments not working in all cases
Previous Message Craig Ringer 2012-07-05 06:48:03 Re: BUG #6717: bad file