Re: 8.4b1 regression?

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Eric B(dot) Ridge" <ebr(at)tcdi(dot)com>
Cc: hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: 8.4b1 regression?
Date: 2009-04-23 02:47:54
Message-ID: 13010.1240454874@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

"Eric B. Ridge" <ebr(at)tcdi(dot)com> writes:
> I loaded a copy of a production database into PG 8.4b1 and immediately
> saw that all of our queries were significantly slower compared to v8.1.

> Some investigation showed that the use of non-IMMUTABLE PL/PGSQL
> functions as view columns, when these views are joined with other
> views, cause the query to be planned poorly.

I think this is due to a change that was made in 8.2:

* Do not flatten subqueries that contain volatile functions in their
target lists (Jaime Casanova)

This prevents surprising behavior due to multiple evaluation of a
volatile function (such as random() or nextval()). It might cause
performance degradation in the presence of functions that are
unnecessarily marked as volatile.

The pre-8.2 behavior was unduly optimistic about the safety of
rearranging calls to volatile functions.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2009-04-23 03:04:41 Re: Prepared transactions vs novice DBAs, again
Previous Message Robert Haas 2009-04-23 02:14:07 Re: Prepared transactions vs novice DBAs, again