Subject: Re: Aggregate versions of hashing functions (md5, sha1, etc...)

From: Dominique Devienne <[email-masked]>
Date: Fri, 11 Jul 2025 10:49:20 +0200

On Thu, Jul 10, 2025 at 6:25 PM Adrian Klaver <[email-masked]> wrote:
> On 7/10/25 04:48, Dominique Devienne wrote:
> > Seems so logical to me, that these hashing functions were available
> > are aggregates, I can't be the first one to think of that, can it?
>
> I've been on this list since late 2002 and I don't recall this ever
> being brought up. Now it is entirely possible that age has dimmed my
> recall abilities:) Though a quick search seems to confirm my memory.

Hi. Given that [SQLite's SHA3 hasher][1] has it (OK, for [8 months only][2]),
it's hardly an original idea. And when considering that `sha3_query`
(and `sha1_query` before it) have been there for years, and provide
equivalent functionality, again, this is not novel by any stretch of
the imagination.

So again, I've really surprised this hasn't come up before. --DD

[1]: https://sqlite.org/src/file?name=ext/misc/shathree.c&ci=tip
[2]: https://github.com/sqlite/sqlite/commit/797fcb8433301d995dbe7731765833c82a74a1da

---

From: Adrian Klaver <[email-masked]>
Date: Fri, 11 Jul 2025 08:27:10 -0700

> equivalent functionality, again, this is not novel by any stretch of

Even if there was interest in writing the code, given that Postgres 18 
is in Beta I don't see this happening for it's release. That means the 
earliest it would arrive would be Fall of 2026. The alternative would be 
to do like Sqlite and create an extension that incorporates the code.

> So again, I've really surprised this hasn't come up before. --DD

No one else had the need?

Or they came up with workarounds.

-- 
Adrian Klaver
[email-masked]

---

From: Florents Tselai <[email-masked]>
Date: Fri, 11 Jul 2025 19:03:31 +0300

> to do like Sqlite and create an extension that incorporates the code.

That's an ideal use case for an extension indeed .

@Dominique I'd suggest searching for these function on GitHub, just in case
there are already implementations out there.
I've seen a lot of weird aggregates out there for niche cases.

If not, it might be an interesting weekend project for me to explore.