postgresql/src/backend
Tom Lane 42020f5deb Fix normalization of numeric values in JSONB GIN indexes.
The default JSONB GIN opclass (jsonb_ops) converts numeric data values
to strings for storage in the index.  It must ensure that numeric values
that would compare equal (such as 12 and 12.00) produce identical strings,
else index searches would have behavior different from regular JSONB
comparisons.  Unfortunately the function charged with doing this was
completely wrong: it could reduce distinct numeric values to the same
string, or reduce equivalent numeric values to different strings.  The
former type of error would only lead to search inefficiency, but the
latter type of error would cause index entries that should be found by
a search to not be found.

Repairing this bug therefore means that it will be necessary for 9.4 beta
testers to reindex GIN jsonb_ops indexes, if they care about getting
correct results from index searches involving numeric data values within
the comparison JSONB object.

Per report from Thomas Fanghaenel.
2014-11-06 11:41:18 -05:00
..
access Prevent the unnecessary creation of .ready file for the timeline history file. 2014-11-06 21:25:12 +09:00
bootstrap Revert "Fix bogus %name-prefix option syntax in all our Bison files." 2014-05-28 19:21:01 -04:00
catalog Remove obsolete commentary. 2014-10-28 18:36:16 -04:00
commands Drop no-longer-needed buffers during ALTER DATABASE SET TABLESPACE. 2014-11-04 13:24:10 -05:00
executor Assorted message fixes and improvements 2014-09-05 01:24:29 -04:00
foreign Update copyright for 2014 2014-01-07 16:05:30 -05:00
lib pgindent run for 9.4 2014-05-06 12:12:18 -04:00
libpq Message improvements 2014-10-12 01:02:56 -04:00
main Make fallback implementation of pg_memory_barrier() work. 2014-05-17 18:29:46 -04:00
nodes Avoid core dump in _outPathInfo() for Path without a parent RelOptInfo. 2014-10-17 22:33:04 -04:00
optimizer Improve planning of btree index scans using ScalarArrayOpExpr quals. 2014-10-26 16:12:26 -04:00
parser Support ALTER SYSTEM RESET command. 2014-09-12 23:15:04 +09:00
po Translation updates 2014-10-05 23:22:24 -04:00
port Fix spinlock implementation for some !solaris sparc platforms. 2014-09-09 23:36:32 +02:00
postmaster Eliminate one background-worker-related flag variable. 2014-10-04 22:15:06 -04:00
regex Fix incorrect search for "x?" style matches in creviterdissect(). 2014-09-23 20:26:21 -04:00
replication Improve documentation about binary/textual output mode for output plugins. 2014-10-01 13:21:59 +02:00
rewrite Assorted message improvements 2014-08-29 00:01:34 -04:00
snowball Fix ancient encoding error in hungarian.stop. 2014-06-10 22:48:31 -04:00
storage "Pin", rather than "keep", dynamic shared memory mappings and segments. 2014-10-30 11:44:22 -04:00
tcop Log ALTER SYSTEM statements as DDL 2014-09-22 20:52:56 -04:00
tsearch Improve ispell dictionary's defenses against bad affix files. 2014-10-23 13:11:31 -04:00
utils Fix normalization of numeric values in JSONB GIN indexes. 2014-11-06 11:41:18 -05:00
.gitignore Add gitignore for mingw/cygwin build outputs 2011-06-09 18:11:47 +02:00
common.mk Remove maintainer-check target, fold into normal build 2013-10-10 20:11:56 -04:00
Makefile Get rid of use of dlltool in Mingw builds. 2014-02-11 12:56:20 -05:00
nls.mk Add libpgcommon to backend gettext source files 2013-10-19 13:49:05 -04:00