Re: Performance problem in textanycat/anytextcat - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Performance problem in textanycat/anytextcat
Date
Msg-id 5177.1274036340@sss.pgh.pa.us
Whole thread Raw
In response to Re: Performance problem in textanycat/anytextcat  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: Performance problem in textanycat/anytextcat
List pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes:
> On Sun, May 16, 2010 at 1:11 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> No, only the ones that are built on top of other functions that aren't
>> immutable.

> Built on top of?  I don't get it.  It seems like anything of the form
> immutablefunction(volatilefunction()) is vulnerable to this,

Uh, no, you misunderstand completely.  The problematic case is where the
function's own expansion contains a non-immutable function.  In
particular, what we have for these functions is that textanycat(a,b)
expands to a || b::text, and depending on what the type of b is, the
cast from that to text might not be immutable.  This is entirely
independent of whether the argument expressions are volatile or not.
Rather, the problem is that inlining the function definition could
by itself increase the expression's apparent volatility.  (Decreasing
the volatility is not problematic.  Increasing it is.)
        regards, tom lane


pgsql-hackers by date:

Previous
From: Jaime Casanova
Date:
Subject: Re: Performance problem in textanycat/anytextcat
Next
From: Robert Haas
Date:
Subject: Re: Performance problem in textanycat/anytextcat