From: | Peter Eisentraut <peter(at)eisentraut(dot)org> |
---|---|
To: | Amit Langote <amitlangote09(at)gmail(dot)com> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: json_query conditional wrapper bug |
Date: | 2024-09-11 09:57:14 |
Message-ID: | dcddaa61-4b6f-4f6a-adf1-e31e86078ee0@eisentraut.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 11.09.24 09:51, Amit Langote wrote:
>>> I've updated your patch to include updated test outputs and a nearby
>>> code comment expanded. Do you intend to commit it or do you prefer
>>> that I do?
>>
>> This change looks unrelated:
>>
>> -ERROR: new row for relation "test_jsonb_constraints" violates check
>> constraint "test_jsonb_constraint4"
>> +ERROR: new row for relation "test_jsonb_constraints" violates check
>> constraint "test_jsonb_constraint5"
>>
>> Is this some randomness in the way these constraints are evaluated?
>
> The result of JSON_QUERY() in the CHECK constraint changes, so the
> constraint that previously failed now succeeds after this change,
> because the comparison looked like this before and after:
>
> -- before
> postgres=# select jsonb '[10]' < jsonb '[10]';
> ?column?
> ----------
> f
> (1 row)
>
> -- after
> postgres=# select jsonb '10' < jsonb '[10]';
> ?column?
> ----------
> t
> (1 row)
>
> That causes the next constraint to be evaluated and its failure
> reported instead.
>
> In the attached, I've adjusted the constraint for the test case to be
> a bit more relevant and removed a nearby somewhat redundant test,
> mainly because its output changes after the adjustment.
Ok, that looks good. Good that we could clear that up a bit.
From | Date | Subject | |
---|---|---|---|
Next Message | Jim Jones | 2024-09-11 10:03:05 | Re: Psql meta-command conninfo+ |
Previous Message | Pavel Stehule | 2024-09-11 09:42:26 | Re: broken build - FC 41 |