Reproducible coliisions in jsonb_hash

From: Valeriy Meleshkin <valeriy(at)meleshk(dot)in>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Reproducible coliisions in jsonb_hash
Date: 2022-05-12 11:02:12
Message-ID: 36664F41-C640-428B-93EA-2282B16197FD@meleshk.in
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hello,

I've noticed that

jsonb_hash_extended(jsonb_v,0) = jsonb_hash_extended(jsonb_build_array(jsonb_v),0)

for any jsonb value jsonb_v.

AFAICT it happens because when iterating over a jsonb the hash function makes no distinction between raw scalars and arrays (it doesn't inspect v.val.array.rawScalar)
https://github.com/postgres/postgres/blob/27b77ecf9f4d5be211900eda54d8155ada50d696/src/backend/utils/adt/jsonb_op.c#L326

Is this an intended behaviour or a bug?

Cheers,
Valeriy

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Amit Kapila 2022-05-12 11:10:49 Re: First draft of the PG 15 release notes
Previous Message Amul Sul 2022-05-12 10:57:20 Re: Make relfile tombstone files conditional on WAL level