Issue Details (XML | Word | Printable)

Key: CORE-1069
Type: Improvement Improvement
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Vlad Khorsun
Reporter: Vlad Khorsun
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Firebird Core

Optimize index scan when more than one index scanned and ANDed

Created: 27/Dec/06 07:03 PM   Updated: 26/Apr/07 12:33 PM
Component/s: Engine
Affects Version/s: None
Fix Version/s: 2.1 Alpha 1

Time Tracking:
Not Specified


 Description  « Hide
When two index scan's AND'ed pass first bitmap into second scan and set bit in second bitmap only if corresponding bit is set in first bitmap.
Then no need to perform AND operation on both bitmap's as second already ANDed with first one
This is reduced number operation on bitmaps and amount of memory needed for second bitmap

 All   Comments   Work Log   Change History   Version Control   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Ann Harrison added a comment - 27/Dec/06 09:17 PM
You could extend this to include OR's of indexed terms. Pass in the existing bit map and set bits
directly in it for hits in the second index.

Vlad Khorsun added a comment - 28/Dec/06 08:07 AM
Ann, please, take a look at EVL_bitmap, especially at nod_bit_in handler
Is it what you suggest ?
This logic was first introduced in Yaffil and then ported into FB2

Pavel Cisar added a comment - 26/Apr/07 11:42 AM
Reopened to update ticket information.