Re: plpgsql functions and the planner

From: Gregory Stark <stark(at)enterprisedb(dot)com>
To: "Matthew Dennis" <mdennis(at)merfer(dot)net>
Cc: "PGSQL" <pgsql-general(at)postgresql(dot)org>
Subject: Re: plpgsql functions and the planner
Date: 2008-04-27 14:30:40
Message-ID: 87d4obmktr.fsf@oxford.xeocode.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

"Matthew Dennis" <mdennis(at)merfer(dot)net> writes:

> Do SQL statements inside of plpgsql functions get planned upon every
> execution, only when the function is first executed/defined, or something
> else entirely?

First executed per session.

> Now, when bar is executed again, will PG (8.3.1) know that a seqscan is no
> longer reasonable?

It won't notice until someone runs ANALYZE on that table. autovacuum should
notice that it's necessary and run but might not run promptly enough for your
purposes. You might have to run analyze within your function.

Before 8.3 it still wouldn't get replanned until you started a new session but
8.3 is more clever.

--
Gregory Stark
EnterpriseDB http://www.enterprisedb.com
Ask me about EnterpriseDB's 24x7 Postgres support!

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Martijn van Oosterhout 2008-04-27 14:32:44 Re: taking actions on rollback (PHP)
Previous Message Douglas McNaught 2008-04-27 13:45:54 Re: plpgsql functions and the planner