Re: function depend on view - Mailing list pgsql-general

From Merlin Moncure
Subject Re: function depend on view
Date
Msg-id CAHyXU0zdUYpuCH7TCvvY77f0ocSObUMBEox0=Npa1WtOs+xpKQ@mail.gmail.com
Whole thread Raw
In response to Re: function depend on view  (Andreas Kretschmer <akretschmer@spamfence.net>)
List pgsql-general
On Mon, Aug 20, 2012 at 9:59 AM, Andreas Kretschmer
<akretschmer@spamfence.net> wrote:
> salah jubeh <s_jubeh@yahoo.com> wrote:
>
>> Hello Andreas,
>>
>> Thanks for the reply,  The example I have posted is very simple and you are
>> right it is very similar to select max (id) from table_that_does_not_exist; But
>> there are more here, for example imagine I have something like
>>
>> CREATE VIEW a4 as select .... from  a3(), .... ;
>>
>> In my opinion, this might leads to many problems such as
>
> Again, the functions doesn't depend on the table, other example:
>
> test=# select * from foo;
>  id | val
> ----+-----
>   1 | 100
>   2 | 200
>   3 | 300
> (3 rows)
>
> Time: 0,235 ms
> test=*# create or replace function fail(int) returns int as $$declare r
> int; begin execute 'select val from foo where id = ' || $1 || ';' into
> r; return r;end; $$language plpgsql;
> CREATE FUNCTION
> Time: 0,547 ms
> test=*# select * from fail(1);
>  fail
> ------
>   100
> (1 row)
>
> Time: 0,473 ms
> test=*# drop table foo;
> DROP TABLE
> Time: 0,387 ms
> test=*# select * from fail(1);
> ERROR:  relation "foo" does not exist
> LINE 1: select val from foo where id = 1;
>                         ^
> QUERY:  select val from foo where id = 1;
> CONTEXT:  PL/pgSQL function "fail" line 1 at EXECUTE statement
>
>
> In this case, the query inside the function is a dynamic query. So what?

Another aspect that makes inside the body function dependency checking
really difficult is search_path dependencies.

merlin


pgsql-general by date:

Previous
From: Andreas Kretschmer
Date:
Subject: Re: function depend on view
Next
From: Tom Lane
Date:
Subject: Re: Different results from view and from its defintion query [w/ windowing function]