When the WHERE clause is present, a
partial index is created.
A partial index is an index that contains entries for only a portion of
- a table, usually a portion that is somehow more interesting than the
+ a table, usually a portion that is more useful for indexing than the
rest of the table. For example, if you have a table that contains both
billed and unbilled orders where the unbilled orders take up a small
fraction of the total table and yet that is an often used section, you
table.
+ NULL> values are not indexed by default. The best way
+ to index NULL> values is to create a partial index using
+ an IS NULL> comparison. IS NULL> is more
+ of a function call than a value comparison, and this is why a partial
+ index works.
+
+
The expression used in the WHERE clause may refer
- only to columns of the underlying table (but it can use all columns,
- not only the one(s) being indexed). Presently, subqueries and
+ only to columns of the underlying table, but it can use all columns,
+ not just the ones being indexed. Presently, subqueries and
aggregate expressions are also forbidden in WHERE.
The same restrictions apply to index fields that are expressions.