On Fri, Jul 12, 2019 at 08:55:20AM +0200, Pavel Stehule wrote:
Hi

pá 12. 7. 2019 v 8:45 odesílatel Kyotaro Horiguchi <horikyota....@gmail.com>
napsal:

Hello.

As mentioned in the following message:


https://www.postgresql.org/message-id/20190712.150527.145133646.horikyota.ntt%40gmail.com

Mutable function are allowed in check constraint expressions but
it is not right. The attached is a proposed fix for it including
regression test.

Other "constraints vs xxxx" checks do not seem to be exercised
but it would be another issue.


I think so this feature (although is correct) can breaks almost all
applications - it is 20 year late.


I'm not sure it actually breaks such appliations.

Let's assume you have a mutable function (i.e. it may change return value
even with the same parameters) and you use it in a CHECK constraint. Then
I'm pretty sure your application is already broken in various ways and you
just don't know it (sometimes it subtle, sometimes less so).

If you have a function that actually is immutable and it's just not marked
accordingly, then that only requires a single DDL to fix that during
upgrade. I don't think that's a massive issue.

That being said, I don't know whether fixing this is worth the hassle.


regards

--
Tomas Vondra                  http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



Reply via email to