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.



Reply via email to