From: | "Gaetano Mendola" <mendola(at)bigfoot(dot)com> |
---|---|
To: | pgsql-admin(at)postgresql(dot)org |
Subject: | Re: Strange behaviour ( function cachable ) |
Date: | 2002-12-19 08:59:18 |
Message-ID: | ats1p5$1m8b$1@news.hub.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-admin |
"Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote in message
news:11105(dot)1040238975(at)sss(dot)pgh(dot)pa(dot)us(dot)(dot)(dot)
> "Gaetano Mendola" <mendola(at)bigfoot(dot)com> writes:
> > I expected that if a function is cachable and is used
> > inside a select like:
> > SELECT * FROM foo WHERE id = my_func( a_param )
> > then the function my_func is called one for each different value
> > of a_param.
>
> That is not what "cachable" means to Postgres. There is no function
> result cache such as you seem to envision.
>
> regards, tom lane
Just to understand, do you mean that the following behaviour is
correct?
# create table test( a int, b int );
CREATE
# insert into test values (1,2);
INSERT 79298997 1
# insert into test values (1,2);
INSERT 79298998 1
# insert into test values (1,2);
INSERT 79298999 1
#select * from test where a = sp_cache( 3 );
NOTICE: CALLED
a | b
---+---
(0 rows)
#select sp_test ( 4);
NOTICE: CALLED
NOTICE: CALLED
NOTICE: CALLED
sp_test
---------
(1 row)
where sp_cache is a function declared ( iscachable )
and do a notice each time that is called
and sp_test is a function that perform:
"select * from test where a = sp_cache( 3 )"
How you can see in the first case I see only a NOTICE
in the second case I see 3 NOTICE, why ? Am I wrong ?
Ciao
Gaetano
From | Date | Subject | |
---|---|---|---|
Next Message | Rajesh Kumar Mallah. | 2002-12-19 13:16:43 | Accessing PgSQL from Microsoft Based based platforms.. |
Previous Message | Tom Lane | 2002-12-19 05:16:22 | Re: HELP? Postgres filling up disk |