CFbot flagged this for a rebase. The conflicts were due to the catalog version bump, so I've dropped it here and noted in the commit message that the committer should bump catversion at commit time to avoid recurring conflicts.
On 23/06/2026 10:37, Dean Rasheed wrote: > On Tue, 23 Jun 2026 at 08:49, Jeevan Chalke > <jeevan.chalke@enterprisedb.com> wrote: >> PRODUCT() returns the product of all non-null input values. It is defined for >> int2, int4, int8, float4, float8 and numeric input, and always returns numeric. > I don't think that you need to define it for all those types. I > suspect that you could just define it for numeric and float8, and let > implicit casting do the rest.
+1
I've tested the patch in many different scenarios and all results look fine -- valgrind also didn't report anything :)
The test coverage is comprehensive! For the sake of completeness I'd add numeric tests for NaN and Infitinty with positive numeric values in the set, e.g:
postgres=# WITH j (v) AS (VALUES ('NaN'::numeric),('Infinity'::numeric),(3.14)) SELECT product(v) FROM j; product --------- NaN (1 row)
Other than that and the point mentioned by Dean I have nothing to add at this point.
Thanks, Jim, for the thorough testing.
I'll include that test case in the next version of the patch.
Thanks for the patch.
Best, Jim
--
Jeevan Chalke Senior Principal Engineer, Engineering Manager Product Development enterprisedb.com
--
Jeevan Chalke Senior Principal Engineer, Engineering Manager Product Development enterprisedb.com