Patent US6421662B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
US6421662B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Generating and implementing indexes based on criteria set forth in queries

Assignee: Oracle International Corp
•
Filing: 1999-06-04
•
Granted: 2002-07-16
•
Expires: 2019-06-04
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus are provided for retrieving data from a table in a database. According to the method one or more indexes arc generated for use in processing a query by selecting values as unique key values from one or more columns in a table in a relational database system. Each unique key corresponds to a row in the table. The condition of whether a row in a table satisfies a search criterion, is represented by a bit in a bitstring or, in cases where the bitstring is segmented, in a segment of bitstring. The unique keys and corresponding segment of bitstring are then stored in an index.

Inventors

  • 👤 Johannes Karten

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 19:03
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/22; G06F16/2228; G06F16/2237; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99932; Y10S707/99933

Claims Analysis

Total Claims: 30
Claim 1
Independent Claim 98 words
A method for generating one or more indexes for use in processing a query, the method comprising the steps of: determining whether each row in a table satisfies a search criterion, wherein the search criterion involves a Boolean expression that includes at least one operator that is not equality; generating a bitstring corresponding to the rows of the table, wherein bits of the bitstring indicate whether their corresponding rows in the table satisfy the search criterion; and storing the bitstring as at least a portion of an index for use in processing subsequent queries that access the table.
Claim 2
Independent Claim 98 words
A method for generating one or more indexes for use in processing a query, the method comprising the steps of: determining whether each row in a table satisfies a search criterion, wherein the search criterion involves a Boolean expression that includes at least one operator that is not equality; generating a bitstring corresponding to the rows of the table, wherein bits of the bitstring indicate whether their corresponding rows in the table satisfy the search criterion; and storing the bitstring as at least a portion of an index for use in processing subsequent queries that access the table.
Claim 3
Dependent Claim 46 words
The method of claim 1 wherein the Boolean expression that includes at least one operator that is not equality involves one or more relational operators from the set consisting of “greater than”, “less than”, “equal to”, “greater than or equal to”, “less than or equal to”.
Claim 4
Dependent Claim 20 words
The method of claim 1 wherein the search criterion further involves values from more than one column of each row.
Claim 5
Dependent Claim 97 words
The method of claim 1 further comprising the steps of: detecting updates to one or more columns of the table that are referenced in the search criterion; in response to the updates, updating the bits in the bitstring corresponding to the updated rows if the updates cause the updated rows to change status with respect to satisfying the search criterion; and in response to the updates, not updating the bits in the bitstring corresponding to the updated rows if the updates do not cause the updated rows to change status with respect to satisfying the search criterion.
Claim 6
Dependent Claim 109 words
The method of claim 1 wherein the step of storing the bitstring corresponding to the rows of the table further comprises the steps of: dividing the bitstring into segments; selecting a size for the segment such that the segment does not span more than a block of data, wherein the block of data is the smallest quantity of data that can be read from a persistent store; providing a mechanism for determining the segment to which a bit corresponding to a given row in the table maps; and providing a mechanism for determining the position, within the segment, of the bit corresponding to a given row in the table.
Claim 7
Dependent Claim 43 words
The method of claim 1 wherein: each bit of the bitstring is mapped to a unique key value which, in turn, maps to a row in the table; and the unique key value includes values from one or more columns of the table.
Claim 8
Dependent Claim 58 words
The method of claim 1 wherein: unique key values are associated with rows of the table; and the step of storing the bitstring corresponding to the rows of the table further comprises the step of not storing the segments of bitstring corresponding to gaps in a range of unique key values associated with the rows of the table.
Claim 9
Dependent Claim 67 words
The method of claim 1 wherein: unique key values are associated with rows of the table; and the step of storing the bitstring corresponding to the rows of the table further comprises the step of not storing segments of bitstring corresponding to a range of unique key values for which the status of the rows associated with the range of unique key values have a particular value.
Claim 10
Dependent Claim 26 words
The method of claim 1 further comprising the step of: dividing the bitstring into segments; and storing the segments in index entries within a B-tree index.
Claim 11
Dependent Claim 23 words
The method of claim 1 further comprising the steps of: dividing the bitstring into segments; and organizing the segments in a hash table.
Claim 12
Dependent Claim 61 words
The method of claim 1 further comprising the steps of: determining whether each row in the table satisfies one or more additional search criteria, wherein each of the one or more additional search criteria involves a Boolean expression; and the bitstring includes bits which indicate whether the rows that correspond to the bits satisfy the one or more additional search criteria.
Claim 13
Dependent Claim 126 words
A computer-readable medium carrying one or more sequences of instructions for generating one or more indexes for use in processing a query, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of: determining whether each row in a table satisfies a search criterion, wherein the search criterion involves a Boolean expression that includes at least one operator that is not equality; generating a bitstring corresponding to the rows of the table, wherein bits of the bitstring indicate whether their corresponding rows in the table satisfy the search criterion; and storing the bitstring as at least a portion of an index for use in processing subsequent queries that access the table.
Claim 14
Dependent Claim 126 words
A computer-readable medium carrying one or more sequences of instructions for generating one or more indexes for use in processing a query, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of: determining whether each row in a table satisfies a search criterion, wherein the search criterion involves a Boolean expression that includes at least one operator that is not equality; generating a bitstring corresponding to the rows of the table, wherein bits of the bitstring indicate whether their corresponding rows in the table satisfy the search criterion; and storing the bitstring as at least a portion of an index for use in processing subsequent queries that access the table.
Claim 15
Dependent Claim 47 words
The computer-readable medium of claim 12 wherein the Boolean expression that includes at least one operator that is not equality involves one or more relational operators from the set consisting of “greater than”, “less than”, “equal to”, “greater than or equal to”, “less than or equal to”.
Claim 16
Dependent Claim 21 words
The computer-readable medium of claim 12 wherein the search criterion further involves values from more than one column of each row.
Claim 17
Dependent Claim 98 words
The computer-readable medium of claim 12 further comprising the steps of: detecting updates to one or more columns of the table that are referenced in the search criterion; in response to the updates, updating the bits in the bitstring corresponding to the updated rows if the updates cause the updated rows to change status with respect to satisfying the search criterion; and in response to the updates, not updating the bits in the bitstring corresponding to the updated rows if the updates do not cause the updated rows to change status with respect to satisfying the search criterion.
Claim 18
Dependent Claim 110 words
The computer-readable medium of claim 12 wherein the step of storing the bitstring corresponding to the rows of the table further comprises the steps of: dividing the bitstring into segments; selecting a size for the segment such that the segment does not span more than a block of data, wherein the block of data is the smallest quantity of data that can be read from a persistent store; providing a mechanism for determining the segment to which a bit corresponding to a given row in the table maps; and providing a mechanism for determining the position, within the segment, of the bit corresponding to a given row in the table.
Claim 19
Dependent Claim 44 words
The computer-readable medium of claim 12 wherein: each bit of the bitstring is mapped to a unique key value which, in turn, maps to a row in the table; and the unique key value includes values from one or more columns of the table.
Claim 20
Dependent Claim 59 words
The computer-readable medium of claim 12 wherein: unique key values are associated with rows of the table; and the step of storing the bitstring corresponding to the rows of the table further comprises the step of not storing the segments of bitstring corresponding to gaps in a range of unique key values associated with the rows of the table.
Claim 21
Dependent Claim 68 words
The computer-readable medium of claim 12 wherein: unique key values are associated with rows of the table; and the step of storing the bitstring corresponding to the rows of the table further comprises the step of not storing segments of bitstring corresponding to a range of unique key values for which the status of the rows associated with the range of unique key values have a predetermined value.
Claim 22
Dependent Claim 27 words
The computer-readable medium of claim 12 further comprising the step of: dividing the bitstring into segments; and storing the segments in index entries within a B-tree index.
Claim 23
Dependent Claim 24 words
The computer-readable medium of claim 12 further comprising the steps of: dividing the bitstring into segments; and organizing the segments in a hash table.
Claim 24
Dependent Claim 62 words
The computer-readable medium of claim 12 further comprising the steps of: determining whether each row in the table satisfies one or more additional search criteria, wherein each of the one or more additional search criteria involves a Boolean expression; and the bitstring includes bits which indicate whether the rows that correspond to the bits satisfy the one or more additional search criteria.
Claim 25
Independent Claim 105 words
A method for generating one or more indexes for use in processing a query, the method comprising the steps of: determining whether each row in a table satisfies a search criterion, wherein the search criterion involves a Boolean expression, wherein evaluation of the Boolean expression requires data from one or more tables other than said table; generating a bitstring corresponding to the rows of the table, wherein bits of the bitstring indicate whether their corresponding rows in the table satisfy the search criterion; and storing the bitstring as at least a portion of an index for use in processing subsequent queries that access the table.
Claim 26
Independent Claim 105 words
A method for generating one or more indexes for use in processing a query, the method comprising the steps of: determining whether each row in a table satisfies a search criterion, wherein the search criterion involves a Boolean expression, wherein evaluation of the Boolean expression requires data from one or more tables other than said table; generating a bitstring corresponding to the rows of the table, wherein bits of the bitstring indicate whether their corresponding rows in the table satisfy the search criterion; and storing the bitstring as at least a portion of an index for use in processing subsequent queries that access the table.
Claim 27
Dependent Claim 23 words
The method of claim 23 wherein evaluation of the Boolean expression requires a join between said table and said one or more tables.
Claim 28
Dependent Claim 141 words
A computer-readable medium carrying one or more sequences of one or more instructions for generating one or more indexes for use in processing a query, the one or more sequences of one or more instructions including instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: determining whether each row in a table satisfies a search criterion, wherein the search criterion involves a Boolean expression, wherein evaluation of the Boolean expression requires data from one or more tables other than said table; generating a bitstring corresponding to the rows of the table, wherein bits of the bitstring indicate whether their corresponding rows in the table satisfy the search criterion; and storing the bitstring as at least a portion of an index for use in processing subsequent queries that access the table.
Claim 29
Dependent Claim 141 words
A computer-readable medium carrying one or more sequences of one or more instructions for generating one or more indexes for use in processing a query, the one or more sequences of one or more instructions including instructions which, when executed by one or more processors, cause the one or more processors to perform the steps of: determining whether each row in a table satisfies a search criterion, wherein the search criterion involves a Boolean expression, wherein evaluation of the Boolean expression requires data from one or more tables other than said table; generating a bitstring corresponding to the rows of the table, wherein bits of the bitstring indicate whether their corresponding rows in the table satisfy the search criterion; and storing the bitstring as at least a portion of an index for use in processing subsequent queries that access the table.
Claim 30
Dependent Claim 25 words
The computer-readable medium of claim 25 , wherein evaluation of the Boolean expression requires a join between said table and said one or more tables.

References Cited (Backward Citations)

US5581664A Cited
US5963935A Cited
US6067540A Cited
US6141656A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2005-07-15 2006-01-14 2006-07-16 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2009-07-15 2010-01-14 2010-07-16 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2013-07-15 2014-01-14 2014-07-16 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag