Re: MIN/MAX functions for a record
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Aleksander Alekseev <aleksander@timescale.com>
Cc: pgsql-hackers@lists.postgresql.org, Viliam Ďurina <viliam.durina@gmail.com>
Date: 2024-03-22T15:12:55Z
Lists: pgsql-hackers
Aleksander Alekseev <aleksander@timescale.com> writes: >> In my queries I often need to do MIN/MAX for tuples, for example: >> SELECT MAX(row(year, month)) >> FROM (VALUES(2025, 1), (2024,2)) x(year, month); >> This query throws: >> ERROR: function max(record) does not exist >> Was this ever discussed or is there something preventing the implementation? > I believe it would be challenging to implement max(record) that would > work reasonably well in a general case. As long as you define it as "works the same way record comparison does", ie base it on record_cmp(), I don't think it would be much more than a finger exercise [*]. And why would you want it to act any differently from record_cmp()? Those semantics have been established for a long time. regards, tom lane [*] Although conceivably there are some challenges in getting record_cmp's caching logic to work in the context of an aggregate.
Commits
-
Add min and max aggregates for composite types (records).
- a0f1fce80c03 18.0 landed