On Tue, Aug 20, 2024 at 07:03:56PM +0200, Jelte Fennema-Nio wrote:
> On Tue, 20 Aug 2024 at 18:50, Bruce Momjian <bruce@momjian.us> wrote:
> > Okay, so we can do MAX easily, and AVG if the count can be represented
> > as the same data type as the sum? Is that correct? Our only problem is
> > that something like AVG(interval) can't use an array because arrays have
> > to have the same data type for all array elements, and an interval can't
> > represent a count?
>
> Close, but still not completely correct. AVG(bigint) can also not be
> supported by patch 1, because the sum and the count for that both
> stored using an int128. So we'd need an array of int128, and there's
> currently no int128 SQL type.
Okay. Have we considered having the FDW return a record:
SELECT (oid, relname) FROM pg_class LIMIT 1;
row
---------------------
(2619,pg_statistic)
SELECT pg_typeof((oid, relname)) FROM pg_class LIMIT 1;
pg_typeof
-----------
record
SELECT pg_typeof(oid) FROM pg_class LIMIT 1;
pg_typeof
-----------
oid
SELECT pg_typeof(relname) FROM pg_class LIMIT 1;
pg_typeof
-----------
name
--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com
Only you can decide what is important to you.