Re: BUG #16698: Create extension and search path

From: Miha Vrhovnik <miha(dot)vrhovnik(at)gmail(dot)com>
To: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>
Cc: pgsql-bugs(at)lists(dot)postgresql(dot)org, PG Bug reporting form <noreply(at)postgresql(dot)org>
Subject: Re: BUG #16698: Create extension and search path
Date: 2020-11-03 13:14:05
Message-ID: CAAjGE4oD9W3BG1aZ90SVd3b2hUSC5bM3XL4_noyeHwH0gUycZg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

I'm so sorry, but I do not understand... Even if I force the schema in
CREATE EXTENSION it still says that it already exists. (Tested on 12.4, but
it's the same with 13, as I have tested it before)
I'm missing something but the documentation doesn't state that I can only
install extension once per database. I thought that schemas provide
"complete isolation".

postgres=# CREATE DATABASE test;
CREATE DATABASE
postgres=# \c test
psql (13.0 (Ubuntu 13.0-1.pgdg20.04+1), server 12.4 (Ubuntu
12.4-1.pgdg20.04+1))
You are now connected to database "test" as user "postgres".
test=# CREATE SCHEMA foo1;
CREATE SCHEMA
test=# CREATE SCHEMA foo2;
CREATE SCHEMA
test=# CREATE EXTENSION ltree WITH SCHEMA foo1;
CREATE EXTENSION
test=# CREATE EXTENSION ltree WITH SCHEMA foo2;
ERROR: extension "ltree" already exists

Regards,
Miha

On Tue, 3 Nov 2020 at 13:18, Heikki Linnakangas <hlinnaka(at)iki(dot)fi> wrote:

> On 03/11/2020 09:57, PG Bug reporting form wrote:
> > The following bug has been logged on the website:
> >
> > Bug reference: 16698
> > Logged by: Miha Vrhovnik
> > Email address: miha(dot)vrhovnik(at)gmail(dot)com
> > PostgreSQL version: 13.0
> > Operating system: Linux
> > Description:
> >
> > The documentation states, that I can use search_path to define in which
> > schema the extension is going to be created, but this is clearly not
> > true..
>
> To be precise, the documentation for CREATE EXTENSION
> (https://www.postgresql.org/docs/current/sql-createextension.html) says:
>
> > schema_name
> >
> > The name of the schema in which to install the extension's objects,
> > given that the extension allows its contents to be relocated. The
> > named schema must already exist. If not specified, and the
> > extension's control file does not specify a schema either, the
> > current default object creation schema is used.
> >
> > If the extension specifies a schema parameter in its control file,
> > then that schema cannot be overridden with a SCHEMA clause. Normally,
> > an error will be raised if a SCHEMA clause is given and it conflicts
> > with the extension's schema parameter. However, if the CASCADE clause
> > is also given, then schema_name is ignored when it conflicts. The
> > given schema_name will be used for installation of any needed
> > extensions that do not specify schema in their control files.
> >
> > Remember that the extension itself is not considered to be within any
> > schema: extensions have unqualified names that must be unique
> > database-wide. But objects belonging to the extension can be within
> > schemas.
> The first paragraph says "schema in which to install the extension's
> *objects*" (emphasis mine). And the last paragraph explains this more
> explicitly.
>
> - Heikki
>

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message James Cloos 2020-11-03 13:41:23 pg should ignore u+200b zero width space
Previous Message luis.roberto 2020-11-03 12:37:33 Re: segfault with incremental sort