git.postgresql.org Git - postgresql.git/commit

git projects / postgresql.git / commit
? search:
summary | shortlog | log | commit | commitdiff | tree
(parent: 15faca2) | patch
Support "x IS NOT NULL" clauses as indexscan conditions. This turns out
Fri, 1 Jan 2010 21:53:49 +0000 (21:53 +0000)
Fri, 1 Jan 2010 21:53:49 +0000 (21:53 +0000)
commit 29c4ad98293e3c5cb3fcdd413a3f4904efff8762
Support "x IS NOT NULL" clauses as indexscan conditions. This turns out
to be just a minor extension of the previous patch that made "x IS NULL"
indexable, because we can treat the IS NOT NULL condition as if it were
"x < NULL" or "x > NULL" (depending on the index's NULLS FIRST/LAST option),
just like IS NULL is treated like "x = NULL". Aside from any possible
usefulness in its own right, this is an important improvement for
index-optimized MAX/MIN aggregates: it is now reliably possible to get
a column's min or max value cheaply, even when there are a lot of nulls
cluttering the interesting end of the index.
18 files changed:
doc/src/sgml/catalogs.sgml diff | blob | blame | history
doc/src/sgml/indexam.sgml diff | blob | blame | history
doc/src/sgml/indices.sgml diff | blob | blame | history
src/backend/access/common/scankey.c diff | blob | blame | history
src/backend/access/gist/gistget.c diff | blob | blame | history
src/backend/access/gist/gistscan.c diff | blob | blame | history
src/backend/access/nbtree/nbtutils.c diff | blob | blame | history
src/backend/executor/nodeIndexscan.c diff | blob | blame | history
src/backend/optimizer/path/indxpath.c diff | blob | blame | history
src/backend/optimizer/plan/createplan.c diff | blob | blame | history
src/backend/optimizer/plan/planagg.c diff | blob | blame | history
src/backend/utils/adt/selfuncs.c diff | blob | blame | history
src/include/access/skey.h diff | blob | blame | history
src/include/catalog/pg_am.h diff | blob | blame | history
src/include/nodes/relation.h diff | blob | blame | history
src/include/optimizer/planmain.h diff | blob | blame | history
src/test/regress/expected/create_index.out diff | blob | blame | history
src/test/regress/sql/create_index.sql diff | blob | blame | history
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /