mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-08-10 07:43:23 +02:00
The jsonb_path_ops code calculated hash values inconsistently in some cases involving nested arrays and objects. This would result in queries possibly not finding entries that they should find, when using a jsonb_path_ops GIN index for the search. The problem cases involve JSONB values that contain both scalars and sub-objects at the same nesting level, for example an array containing both scalars and sub-arrays. To fix, reset the current stack->hash after processing each value or sub-object, not before; and don't try to be cute about the outermost level's initial hash. Correcting this means that existing jsonb_path_ops indexes may now be inconsistent with the new hash calculation code. The symptom is the same --- searches not finding entries they should find --- but the specific rows affected are likely to be different. Users will need to REINDEX jsonb_path_ops indexes to make sure that all searches work as expected. Per bug #13756 from Daniel Cheng. Back-patch to 9.4 where the faulty logic was introduced. |
||
---|---|---|
.. | ||
adt | ||
cache | ||
error | ||
fmgr | ||
hash | ||
init | ||
mb | ||
misc | ||
mmgr | ||
resowner | ||
sort | ||
time | ||
.gitignore | ||
errcodes.txt | ||
Gen_dummy_probes.sed | ||
Gen_fmgrtab.pl | ||
generate-errcodes.pl | ||
Makefile | ||
probes.d |