Обсуждение: my schema + sql function

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

my schema + sql function

От
Marek "Wróbel"
Дата:
Hi,

In my schema : "my" I create sql function

CREATE OR REPLACE FUNCTION my.my_foo(int4) RETURNS varchar AS '
    select k.k_dupa ||coalesce( '' ['' || k.k_number || '']'' ,'''')
    from kont k
    where k_id = $1;
' LANGUAGE 'sql';

table kont is in schema public.

Everythink working ok, but when I try to restore backup system write :

pg_restore: [archiver (db)] could not execute query: ERROR:  Relation "kont" does not exist
pg_restore: *** aborted because of error


Marek Wróbel

Re: my schema + sql function

От
Tom Lane
Дата:
Marek "Wróbel" <netim@icentrum.pl> writes:
> In my schema : "my" I create sql function

> CREATE OR REPLACE FUNCTION my.my_foo(int4) RETURNS varchar AS '
>     select k.k_dupa ||coalesce( '' ['' || k.k_number || '']'' ,'''')
>     from kont k
>     where k_id = $1;
> ' LANGUAGE 'sql';

> table kont is in schema public.

> Everythink working ok, but when I try to restore backup system write :

> pg_restore: [archiver (db)] could not execute query: ERROR:  Relation "kont" does not exist
> pg_restore: *** aborted because of error

Probably table "kont" didn't exist when you first created that function?
pg_dump isn't very smart about rearranging the order of object creation
to handle such dependencies.  You'll need to manually adjust the dump
order to deal with this.  There are options to pg_restore that you can
use to change the order in which it reload objects.

            regards, tom lane