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?
regards, tom lane