On Thu, Jul 29, 2010 at 1:00 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> I wrote:
>> BTW, the situation on the input side is a bit different: record_in is
>> volatile because domain_in is, and I think we'd better leave that alone
>> since it's not too hard to believe that a domain might have volatile
>> CHECK expressions. If we had arrays of domains, anyarray_in would have
>> to be volatile too, but we don't and it isn't.
>
> Oh, wait: we have arrays of composites now, and a composite could
> contain a domain. So that's wrong too; anyarray_in had better be marked
> volatile. In general it seems that the coding rules need to be:
>
> * if you depend on an arbitrary type output function, assume it's stable.
>
> * if you depend on an arbitrary type input function, assume it's volatile.
>
> * similarly for binary send/receive functions.
>
> Or we could decide that volatile domain CHECK expressions are un-sensible
> and just relabel all these input functions as stable, which would make
> everything consistent. Thoughts?
Aren't volatile CHECK expressions pretty un-sensible in general?
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company