Re: BUG #18240: Undefined behaviour in cash_mul_flt8() and friends

Tom Lane <tgl@sss.pgh.pa.us>

From: Tom Lane <tgl@sss.pgh.pa.us>
To: David Rowley <dgrowleyml@gmail.com>
Cc: Michael Paquier <michael@paquier.xyz>, exclusion@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2023-12-12T14:37:58Z
Lists: pgsql-bugs
David Rowley <dgrowleyml@gmail.com> writes:
> On Tue, 12 Dec 2023 at 22:03, Michael Paquier <michael@paquier.xyz> wrote:
>> And numeric has much better code coverage and support.  I am wondering
>> whether we've reached the point where it would be better to remove it
>> entirely from the tree, and just tell people to use numeric.

> We could extract it into a contrib module.

Perhaps, but ...

> That might help reduce new usages of it and would also allow people
> who have large tables using the money type but can't realistically
> wait out a table rewrite to upgrade to a newer version of Postgres.

... I doubt that a contrib module would solve the problem for people
who can't afford a rewrite.  pg_upgrade requires that datatype OIDs
stay the same, which is something I don't believe a contrib module
could manage.  We've run into that before if memory serves.  Is it
time to do something about that?  Perhaps we could allow extension
modules to use binary_upgrade_set_next_pg_type_oid, and then somehow
reserve the money and _money OIDs forever?

			regards, tom lane



Commits

  1. Add overflow checks to money type.

  2. Reduce dependency to money data type in main regression test suite