System and method for performing database queries using a stack machine
First Claim
1. A computer-implemented method for querying a database using a stack machine, wherein the database comprises a plurality of records, to retrieve information satisfying a search, comprising the steps of:
- building a first operand defining a first value for a first search criterion of the search;
building a second operand and defining a second value for a second search criterion of the search;
building an operator defining a logical relationship between the first operand and the second operand, the logical relationship being dependent on the search;
creating a search expression comprising the first operand, the second operand, and the operator, the search expression being created in accordance with a stack-language structure;
passing the search expression to an Application Programming Interface, wherein the Application Programming Interface performs a sequence comprising the steps of;
identifying those records that satisfy the search expression using a stack machine; and
receiving the records from the database, which satisfy the search expression.
2 Assignments
0 Petitions
Accused Products
Abstract
A stack-language interface between a client application and its underlying database. To query the database, the client application passes a search expression to a database API. The search expression includes simple operands, which define values for individual search criteria, and one or more operators, which define the logical relationship between two or more operands. Upon receiving the search expression, the database API searches the database to retrieve records satisfying the search criteria. For each record, the database API executes the search expression on the stack machine to determine if the record matches the search criteria as defined by the operands and operators in the search expression. Once the relevant records are retrieved, the database API may present a list of objects representing those records to the client application.
-
Citations
29 Claims
-
1. A computer-implemented method for querying a database using a stack machine, wherein the database comprises a plurality of records, to retrieve information satisfying a search, comprising the steps of:
-
building a first operand defining a first value for a first search criterion of the search;
building a second operand and defining a second value for a second search criterion of the search;
building an operator defining a logical relationship between the first operand and the second operand, the logical relationship being dependent on the search;
creating a search expression comprising the first operand, the second operand, and the operator, the search expression being created in accordance with a stack-language structure;
passing the search expression to an Application Programming Interface, wherein the Application Programming Interface performs a sequence comprising the steps of;
identifying those records that satisfy the search expression using a stack machine; and
receiving the records from the database, which satisfy the search expression. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer-implemented method for querying a database using a stack machine, wherein the database comprises a plurality of records, to retrieve information satisfying a search, comprising the steps of:
-
passing a search expression created in accordance with a stack-language structure from a client application to a database API, the client application operative to accept an input defining a search comprising at least one search criteria, the search expression comprising a command representative of the search criteria for the search, the database API comprising the stack machine operative to execute the search expression on a stack machine for evaluation;
executing the search expression on the stack machine to identify a record in the database which satisfies the search criteria; and
passing the identified record from the database to the client application as a unit of data capable of being manipulated as a single object. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A computer-readable medium having computer-executable instructions for querying a database comprising a plurality of objects to retrieve information satisfying a search, which when executed perform the steps of:
-
building a first operand defining a first value for a first search criterion of the search;
building a second operand defining a second value for a second search criterion of the search;
building an operator defining a logical relationship between the first operand and the second operand, the logical relationship being dependent on the search;
creating a search expression comprising the first operand, the second operand, and the operator, the search expression being created in accordance with a stack-language structure;
passing the search expression to an Application Programming Interface and placing the search expression in a stack language structure;
using a stack machine to evaluate the search expression in the stack language structure and compare the search expression to the plurality of objects in the database; and
receiving an object, which satisfies the search criteria. - View Dependent Claims (18)
-
-
19. A computer readable medium having computer executable instructions for forming a database query, to search the database comprising a plurality of records, which instructions when executed, perform the steps, comprising:
-
generating a logical expression comprising the steps of;
receiving a first operand from a client application, the first operand defining a first search criterion for a search of a database;
pushing the first operand on a stack machine, the stack machine comprising a location in the memory for storing, data in a “
last-in-first-out”
scheme;
receiving a second operand from the client application, the second operand defining a second search criterion for the search of the database;
pushing the second operand on the stack machine;
receiving an operator from the client application, the operator defining a logical relationship between the first operand and the second operand; and
pushing the operator on the stack machine;
identifying candidate records from the plurality of records in the database using at least one index associated with each record;
evaluating the candidate records using the stack machine to identify a record in the database which satisfies the logical relationship between the first operand and the second operand; and
returning the record to the client application as an object. - View Dependent Claims (20, 21, 22, 23, 24, 25)
-
-
26. A computer-readable medium having computer-executable components, comprising:
-
a database containing information, the information comprising at least one table, the table comprising at least one record, and the record comprising at least one field;
a client application associated with the database and operative to receive input defining a search of the database, the client application further operative to build a first operand and a second operand, the first operand defining a first value for a first search criterion of the search, the second operand defining a second value for a second search criterion of the search, the client application further operative to build an operator, the operator defining a logical relationship between the first operand and the second operand;
a database API operative to receive from the client application the first operand, the second operand, and the operator within a search expression, the search expression having the first operand, the second operand, and the operator assembled in accordance with a stack-language structure, the database API further operative to store the first operand, the second operand, and the operator in a stack-language structure in memory, the database API comprising a stack machine operative to evaluate the information in the database for conformity with the first operand, the second operand, and the operator stored in the stack-language structure. - View Dependent Claims (27, 28, 29)
-
Specification