IP Library › Granted Patent US 10,372,693
Granted Patent B2
US 10,372,693 · App. 14/869,552 · Granted Aug 6, 2019

Range searches for database systems

Inventor: Peter Bumbulis (Waterloo, CA)
Assignee: SYBASE, INC.
G06F16/2237G06F16/245
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,372,693
App. No.
14/869,552
Granted
Aug 6, 2019
Kind
B2
Abstract

Some embodiments provide a non-transitory machine-readable medium that stores a program. The program receives a query for a set of records in a database system having values in a field of a table that fall within a range of values. The program also determines a number of bits used to represent the values in the field of the table. The program further determines a set of operations to perform on the values in the field of the table based on the determined number of bits. The program also performs the determined set of operations on the values in the field of the table in order to identify the set of records in the database.

Claims (42)

1. A non-transitory machine-readable medium storing a program executable by at least one processing unit, the program comprising sets of instructions for:

receiving, by a query controller, a query for a set of records in a database system having values in a field of a table that fall within a range of values;

determining, by a bit manager, a number of bits used to represent the values in the field of the table;

determining, by the query controller, a set of operations to perform on the values in the field of the table by selecting the set of operations from a plurality of sets of operations based on the determined number of bits, wherein different sets of operations in the plurality of sets of operations are configured for use with values represented by different numbers of bits, wherein the selected set of operations is configured for use with values represented by the determined number of bits; and

processing, by a query processor, the query by selecting a range query processor from a plurality of range query processors based on the determined number of bits and using the selected range query processor to perform the determined set of operations on the values in the field of the table in order to identify the set of records in the database.

2. The non-transitory machine-readable medium of claim 1 , wherein the set of operations comprises logical operations.

3. The non-transitory machine-readable medium of claim 1 , wherein the set of operations comprises comparison operations.

4. The non-transitory machine-readable medium of claim 1 , wherein the set of instructions for performing the set of operations on the values in the field of the table comprises sets of instructions for:

selecting an operation from the set of operations based on a first value and a second value, wherein the range of values is specified by the first value and the second value, wherein the first value is included in the range of values and the second value is excluded from the range of values; and

performing the selected operation on the values in the field of the table.

5. The non-transitory machine-readable medium of claim 4 , wherein the set of instructions for performing the determined set of operations on the values in the field of the table further comprises a set of instructions for simultaneously performing the selected operation on at least two values in the values in the field of the table.

6. The non-transitory machine-readable medium of claim 1 , wherein the set of instructions for determining the set of operations to perform on the values in the field of the table based on the determined number of bits comprises sets of instructions for:

selecting a first set of operations from the plurality of sets of operations as the set of operations when the determined number of bits is equal to a particular number; and

selecting a second set of operations from the plurality of sets of operations as the set of operations when the determined number of bits is greater than the particular number.

7. The non-transitory machine-readable medium of claim 6 , wherein the set of instructions for determining the set of operations to perform on the values in the field of the table based on the determined number of bits further comprises a set of instructions for selecting a third set of operations from the plurality of sets of operations as the set of operations when the determined number of bits is less than the particular number.

8. A method comprising:

receiving, by a query controller, a query for a set of records in a database system having values in a field of a table that fall within a range of values;

determining, by a bit manager, a number of bits used to represent the values in the field of the table;

determining, by the query controller, a set of operations to perform on the values in the field of the table by selecting the set of operations from a plurality of sets of operations based on the determined number of bits, wherein different sets of operations in the plurality of sets of operations are configured for use with values represented by different numbers of bits, wherein the selected set of operations is configured for use with values represented by the determined number of bits; and

processing, by a query processor, the query by selecting a range query processor from a plurality of range query processors based on the determined number of bits and using the selected range query processor to perform the determined set of operations on the values in the field of the table in order to identify the set of records in the database.

9. The method of claim 8 , wherein the set of operations comprises logical operations.

10. The method of claim 8 , wherein the set of operations comprises comparison operations.

11. The method of claim 8 , wherein determining the set of operations to perform on the values in the field of the table based on the determined number of bits comprises:

selecting a first set of operations from the plurality of sets of operations as the set of operations when the determined number of bits is equal to a particular number; and

selecting a second set of operations from the plurality of sets of operations as the set of operations when the determined number of bits is greater than the particular number.

12. The method of claim 8 , wherein performing the determined set of operations on the values in the field of the table comprises storing results of the operations on the values in the field of the table in a bit array.

13. The method of claim 8 , wherein the database system is a column-oriented database system that stores tables in columns of data.

14. The method of claim 8 , wherein the database system is an in-memory database system that uses memory for storing data.

15. A system comprising:

a query controller configured to receive a query for a set of records in a database system having values in a field of a table that fall within a range of values;

a bit manager configured to determine a number of bits used to represent the values in the field of the table,

wherein the query controller is further configured to determine a set of operations to perform on the values in the field of the table by selecting the set of operations from a plurality of sets of operations based on the determined number of bits, wherein different sets of operations in the plurality of sets of operations are configured for use with values represented by different numbers of bits, wherein the selected set of operations is configured for use with values represented by the determined number of bits; and

a query processor configured to a range query manager configured to process the query by selecting a range query processor from a plurality of range query processors based on the determined number of bits and using the selected range query processor to perform the determined set of operations on the values in the field of the table in order to identify the set of records in the database.

16. The system of claim 15 , wherein the query controller determines the set of operations to perform on the values in the field of the table based on the determined number of bits by:

selecting a first set of operations from the plurality of sets of operations as the set of operations when the determined number of bits is equal to a particular number; and

selecting a second set of operations from the plurality of sets of operations as the set of operations when the determined number of bits is greater than the particular number.

17. The system of claim 16 , wherein the query processor is a first query processor, the system further comprising a second query processor configured to perform the determined set of operations on the values in the field of the table in order to identify the set of records in the database, wherein the query controller is further configured to instruct the first query processor to perform the determined set of operations on the values in the field of the table when the query controller selects the first set of operations as the set of operations and instruct the second query processor to perform the determined set of operations on the values in the field of the table when the query controller selects the second set of operations as the set of operations.

18. The system of claim 16 , wherein the first set of operations comprises logical operations and the second set of operations comprises comparison operations.

19. The system of claim 15 , wherein the query processor performs the set of operations on the values in the field of the table by:

selecting an operation from the set of operations based on a first value and a second value, wherein the range of values is specified by the first value and the second value, wherein the first value is included in the range of values and the second value is excluded from the range of values; and

performing the selected operation on the values in the field of the table.

20. The system of claim 19 , wherein the query processor performs the determined set of operations on the values in the field of the table further by simultaneously performing the selected operation on at least two values in the values in the field of the table.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2015
From: BUMBULIS, PETER
To: SYBASE, INC.
Reel/Frame 036685/0110 →
Continuity (1)
Related Publication 20170091239A1 · Mar 30, 2017