Thread: how much volatile is a function
I have a table, this table are rarely changed (added or deleted).
My function receive parameters and do a query to the table.
Does postgres re run the query on each function call, or has some kind of “flag” indicating that table as not been changed and return cached result of a previous call if the call has same parameters?
Thanks!
From: pgsql-general-owner@postgresql.org [mailto:pgsql-general-owner@postgresql.org] On Behalf Of Anibal David Acosta Sent: Thursday, July 12, 2012 2:39 PM To: pgsql-general@postgresql.org Subject: [GENERAL] how much volatile is a function I have a table, this table are rarely changed (added or deleted). My function receive parameters and do a query to the table. Does postgres re run the query on each function call, or has some kind of "flag" indicating that table as not been changed and return cached result of a previous call if the call has same parameters? Thanks! ============================================== See here: http://www.postgresql.org/docs/9.1/interactive/sql-createfunction.html Read the difference between IMMUTABLE, STABLE, and VOLATILE David J.
On Thu, Jul 12, 2012 at 10:38 PM, Anibal David Acosta <aa@devshock.com> wrote: > Does postgres re run the query on each function call, or has some kind of > “flag” indicating that table as not been changed and return cached result of > a previous call if the call has same parameters? It does re-run it on each call. -- Sergey Konoplev a database architect, software developer at PostgreSQL-Consulting.com http://www.postgresql-consulting.com Jabber: gray.ru@gmail.com Skype: gray-hemp Phone: +79160686204
On Thu, Jul 12, 2012 at 10:55 PM, Sergey Konoplev <sergey.konoplev@postgresql-consulting.com> wrote: > On Thu, Jul 12, 2012 at 10:38 PM, Anibal David Acosta <aa@devshock.com> wrote: >> Does postgres re run the query on each function call, or has some kind of >> “flag” indicating that table as not been changed and return cached result of >> a previous call if the call has same parameters? > > It does re-run it on each call. ps. Do not get confused with IMMUTABLE, STABLE and VOLATILE flags. It is kind of promising to the planner that the function will behave like specified. > > -- > Sergey Konoplev > > a database architect, software developer at PostgreSQL-Consulting.com > http://www.postgresql-consulting.com > > Jabber: gray.ru@gmail.com Skype: gray-hemp Phone: +79160686204 -- Sergey Konoplev a database architect, software developer at PostgreSQL-Consulting.com http://www.postgresql-consulting.com Jabber: gray.ru@gmail.com Skype: gray-hemp Phone: +79160686204