Re: Create or replace function doesn't work so well

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: Create or replace function doesn't work so well
Дата
Msg-id 200111062241.fA6MfUZ27870@candle.pha.pa.us
обсуждение исходный текст
Ответ на Re: Create or replace function doesn't work so well  (Gavin Sherry <swm@linuxworld.com.au>)
Ответы Re: Create or replace function doesn't work so well  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Has this been resolved?


---------------------------------------------------------------------------

> Peter,
> 
> On Thu, 18 Oct 2001, Peter Eisentraut wrote:
> 
> > peter=# drop function test();
> > DROP
> > 
> 
> [snip]
> 
> > The same can be observed with PL/Tcl and PL/Python, but not with PL/pgSQL
> > and plain SQL.  Obviously, there is some caching going on, and a session
> > restart fixes everything, but the failure with this plain and simple test
> > case makes me wonder about this new feature...
> > 
> 
> I cannot recreate this on my devel system with plain SQL
> 
> template1=# drop function test();
> DROP
> template1=# create or replace function test() returns int as 'select 1;'
> language 'sql';
> CREATE
> template1=# select test();
>  test
> ------
>     1
> (1 row)
> 
> template1=# create or replace function test() returns int as 'select 2;'
> language 'sql';
> CREATE
> template1=# select test();
>  test
> ------
>     2
> (1 row)
> 
> 
> However,
> 
> template1=# create or replace function test() returns int as 'begin
> template1'# return ''1'';
> template1'# end;
> template1'# ' language 'plpgsql';
> CREATE
> template1=# select test();
>  test
> ------
>     1
> (1 row)
> 
> 
> template1=# create or replace function test() returns int as 'begin
> template1'# return ''2'';
> template1'# end;
> template1'# ' language 'plpgsql';
> CREATE
> template1=# select test();
>  test
> ------
>     1
> (1 row)
> 
> 
> Yet,
> 
> template1=# create or replace function test() returns int as 'select 3'
> language 'sql';
> CREATE
> template1=# select test();
>  test
> ------
>     3
> (1 row)
> 
> So, it must be caching at of procedural (C??) functions. Apologies for not
> testing this on all languages -- I presumed what was good for SQL would be
> good for PLpgSQL ;).
> 
> I'll look into further but.
> 
> Gavin
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)
> 

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: compiling libpq++ on Solaris with Sun SPRO6U2 (fixed &
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Beta going well