Обсуждение: [BUGS] pg_dump does not fully include the schema, causing runtime errors

Поиск
Список
Период
Сортировка

[BUGS] pg_dump does not fully include the schema, causing runtime errors

От
"Ian R. Campbell"
Дата:
pg_dump uses SET search_path in order to simplify schema references. Below is a snippet of a CREATE TABLE definition that references a function in the 'internal' schema:

...    stock_balances integer[] DEFAULT stock_balances_snapshot() ...

This will restore OK, but it will not execute unless the caller also sets the search_path, which is certainly not a given or even to be expected.

I have also observed the following output, which suffers the same issue:

...  role           "internal".user_role NOT NULL DEFAULT 'guest'::user_role ...


Can pg_dump have an option to output fully qualified schema?

Best
Ian Campbell

Re: [BUGS] pg_dump does not fully include the schema, causing runtime errors

От
Tom Lane
Дата:
"Ian R. Campbell" <ian.campbell@thepathcentral.com> writes:
> pg_dump uses SET search_path in order to simplify schema references.

Yes, it does that intentionally to make the output script easier to edit.

> Can pg_dump have an option to output fully qualified schema?

I do not care to have to maintain such an option and guarantee that
both cases work.
        regards, tom lane


-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Re: [BUGS] pg_dump does not fully include the schema, causingruntime errors

От
Stephen Frost
Дата:
Greetings Ian,

* Ian R. Campbell (ian.campbell@thepathcentral.com) wrote:
> pg_dump uses SET search_path in order to simplify schema references. Below
> is a snippet of a CREATE TABLE definition that references a function in the
> 'internal' schema:
>
> ...    stock_balances integer[] DEFAULT stock_balances_snapshot() ...
>
> This will restore OK, but it will not execute unless the caller also sets
> the search_path, which is certainly not a given or even to be expected.

I'm not really understanding what this sentence means.

Yes, it'll restore OK, and the result should work just fine.  What do
you mean by "will not execute unless the caller also sets the
search_path" ... ?

> I have also observed the following output, which suffers the same issue:
>
> ...  role           "internal".user_role NOT NULL DEFAULT
> 'guest'::user_role ...

What is the issue you're referring to?

> Can pg_dump have an option to output fully qualified schema?

You've not shown why such an option is needed, so it's pretty hard to
see why it would make sense to add it.

Thanks!

Stephen