On Wed, Sep 11, 2024 at 6:57 PM Peter Eisentraut <pe...@eisentraut.org> wrote: > 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.
Thanks for checking. Would you like me to commit it? -- Thanks, Amit Langote