Gregory Stark <[EMAIL PROTECTED]> writes:
> Tom Lane <[EMAIL PROTECTED]> writes:
>> only the a = 5 clause would be used with the index.  As of 8.1 it will
>> consider using nonconsecutive index columns

> Really? Is this the "skip scan" plan people were pining for?

No, there's no skip scan, it just applies all the indexable-column
checks within the index instead of making a trip to the heap.
For instance consider
        WHERE a >= 4 AND a < 7 AND c > 5
with index entries

        A       B       C

        3       9       8
        3       9       9
        4       0       0       <- search starts here
        4       0       1       reject
        ...
        4       0       5       reject
        4       0       6       accept (visit heap)
        4       0       9       accept
        4       1       0       reject
        ...
        6       9       8       accept
        6       9       9       accept
        7       0       0       <- search ends when we reach here
        7       0       1

If the condition on C is very selective then we might find ourselves
scanning over a lot of rejected entries within the possible bounds
for A.  The problem is to guess whether re-descending the search tree
will win compared to just slogging forward, and if so to generate a
suitable search key for each intermediate descent.

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to