On Tue, Jun 23, 2026 at 4:32 PM Jim Jones <[email protected]> wrote:
> Hi Jeevan > > On 23/06/2026 10:37, Dean Rasheed wrote: > > On Tue, 23 Jun 2026 at 08:49, Jeevan Chalke > > <[email protected]> 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 <https://www.enterprisedb.com>
