Fix broken jsonb_set() logic for replacing array elements.
authorTom Lane <tgl@sss.pgh.pa.us>
Thu, 13 Oct 2016 04:25:28 +0000 (00:25 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Thu, 13 Oct 2016 04:25:48 +0000 (00:25 -0400)
commit9c4cc9e2c75e84a8267396be5cccbfe25b8f63f6
tree267e982e1b0e833b465339644c94ce26b8244158
parentccbb852cd6101e93976111676a90f1e5d9268951
Fix broken jsonb_set() logic for replacing array elements.

Commit 0b62fd036 did a fairly sloppy job of refactoring setPath()
to support jsonb_insert() along with jsonb_set().  In its defense,
though, there was no regression test case exercising the case of
replacing an existing element in a jsonb array.

Per bug #14366 from Peng Sun.  Back-patch to 9.6 where bug was introduced.

Report: <20161012065349.1412.47858@wrigleys.postgresql.org>
src/backend/utils/adt/jsonfuncs.c
src/test/regress/expected/jsonb.out
src/test/regress/sql/jsonb.sql