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

Jonathan S. Katz <jkatz@postgresql.org>

From: "Jonathan S. Katz" <jkatz@postgresql.org>
To: Michael Paquier <michael@paquier.xyz>, Tom Lane <tgl@sss.pgh.pa.us>
Cc: David Rowley <dgrowleyml@gmail.com>, exclusion@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2024-01-12T16:19:08Z
Lists: pgsql-bugs
On 1/10/24 8:12 PM, Michael Paquier wrote:

> While looking at the whole picture, an issue with the direct removal
> of money is how we should handle btree_gin and btree_gist which have
> operators based on money.  We try to keep things compatible at
> run-time, but could this be worth a hard break in these modules,
> dropping the older sql scripts used in the modules if we don't have
> access to money anymore at runtime?  These are not popular modules..
> Any thoughts about that?

Both modules are pretty popular. Personally, I used it in scheduling 
apps that involved range types + exclusion constraints. The data I've 
seen suggests btree_gist / btree_gin are widely deployed.

That said, I don't know how much of these modules are used with the 
money type specifically. My guess is that it's more common to combine it 
with something like an {int,bool}/range type than a money type.

It sounds like we'd have to tread a bit lightly because of this, even if 
money is not frequently (or at all) used with btree_gist/gin?

Jonathan

Commits

  1. Add overflow checks to money type.

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