postgresql/src
Tom Lane c6a11b89e4 Teach SPGiST to store nulls and do whole-index scans.
This patch fixes the other major compatibility-breaking limitation of
SPGiST, that it didn't store anything for null values of the indexed
column, and so could not support whole-index scans or "x IS NULL"
tests.  The approach is to create a wholly separate search tree for
the null entries, and use fixed "allTheSame" insertion and search
rules when processing this tree, instead of calling the index opclass
methods.  This way the opclass methods do not need to worry about
dealing with nulls.

Catversion bump is for pg_am updates as well as the change in on-disk
format of SPGiST indexes; there are some tweaks in SPGiST WAL records
as well.

Heavily rewritten version of a patch by Oleg Bartunov and Teodor Sigaev.
(The original also stored nulls separately, but it reused GIN code to do
so; which required undesirable compromises in the on-disk format, and
would likely lead to bugs due to the GIN code being required to work in
two very different contexts.)
2012-03-11 16:29:59 -04:00
..
backend Teach SPGiST to store nulls and do whole-index scans. 2012-03-11 16:29:59 -04:00
bin psql: Remove useless code 2012-03-08 23:15:03 +02:00
include Teach SPGiST to store nulls and do whole-index scans. 2012-03-11 16:29:59 -04:00
interfaces ecpg: Fix off-by-one error in memory copying 2012-03-08 22:29:01 +02:00
makefiles Add pg_upgrade test suite 2011-11-27 22:42:32 +02:00
pl Fix I/O-conversion-related memory leaks in plpgsql. 2012-02-11 18:06:24 -05:00
port Move CRC tables to libpgport, and provide them in a separate include file. 2012-02-28 19:53:39 -05:00
template Remove cvs keywords from all files. 2010-09-20 22:08:53 +02:00
test Teach SPGiST to store nulls and do whole-index scans. 2012-03-11 16:29:59 -04:00
timezone Update copyright notices for year 2012. 2012-01-01 18:01:58 -05:00
tools Fix MSVC builds for previous patch's addition of a src/port file. 2012-02-29 00:24:01 -05:00
tutorial Update copyright notices for year 2012. 2012-01-01 18:01:58 -05:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
bcc32.mak Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00
DEVELOPERS Replace a couple of references to files that no longer exist in the source 2009-05-04 08:08:47 +00:00
Makefile Fix some oversights in distprep and maintainer-clean targets. 2011-03-10 00:04:05 -05:00
Makefile.global.in ecpg: Improve test building 2012-02-02 20:33:29 +02:00
Makefile.shlib Use single quotes in preference to double quotes for protecting pathnames. 2011-06-15 21:45:23 -04:00
nls-global.mk Sort compendium lists for msgmerge 2011-12-27 20:22:51 +02:00
win32.mak Remove useless whitespace at end of lines 2010-11-23 22:34:55 +02:00