Обсуждение: pgsql: Clean up some inconsistencies in the volatility marking of
pgsql: Clean up some inconsistencies in the volatility marking of
От
tgl@postgresql.org (Tom Lane)
Дата:
Log Message: ----------- Clean up some inconsistencies in the volatility marking of various I/O related functions. Per today's discussion, we will henceforth assume that datatype I/O functions are either stable or immutable, never volatile. (This implies in particular that domain CHECK constraint expressions shouldn't be volatile, since domain_in executes them.) In turn, functions that execute the I/O functions of arbitrary datatypes should always be labeled stable. This affects the labeling of array_to_string, which was unsafely marked immutable, and record_in, record_out, record_recv, record_send, domain_in, domain_recv, which were over-conservatively marked volatile. The array I/O functions were already marked stable, which is correct per this policy but would have been wrong if we maintained domain_in as volatile. Back-patch to 9.0, along with an earlier fix to correctly mark cash_in and cash_out as stable not immutable (since they depend on lc_monetary). No catversion bump --- the implications of this are not currently severe enough to justify a forced initdb. Tags: ---- REL9_0_STABLE Modified Files: -------------- pgsql/src/include/catalog: pg_proc.h (r1.571 -> r1.571.2.1) (http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/include/catalog/pg_proc.h?r1=1.571&r2=1.571.2.1)