← Back to Patent Explorer
US6748374B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Method for generating a relational database query statement using one or more templates corresponding to search conditions in an expression tree

Assignee: Oracle International Corp
•
Filing: 1998-12-07
•
Granted: 2004-06-08
•
Expires: 2018-12-07
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and system for representing objects in a relational database is provided. In one aspect, the invention provides a method and system for storing directory information objects in a relational database management system. In addition, a method and system for generating a statement in a database query language to search or manipulate objects or entries that are stored in a relational database is disclosed. An aspect of the invention is directed to a method and system that can automatically generate a SQL statement for an LDAP search filter.

Inventors

  • 👤 Harpinder S. Madan
  • 👤 Brian Gustafson
  • 👤 Uppili Srinivasan

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 21:38
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/24; G06F16/245; G06F16/2452; G06F16/28; G06F16/289; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99932; Y10S707/99933; Y10S707/99934; Y10S707/99935; Y10S707/99941; Y10S707/99943; Y10S707/99944; Y10S707/99945

Claims Analysis

Total Claims: 44
Claim 1
Independent Claim 138 words
A method for searching for directory information stored in a relational database, comprising the steps of: receiving a search request for the directory information; parsing the search request to generate an expression tree including a plurality of nodes, each node representing a condition operator and having at least one branch representing at least one expression modified by the condition operator; identifying search conditions in the expression tree; identifying at least one template corresponding to the search conditions, the at least one template selected from a plurality of possible templates; generating a statement in a database query language that searches for a directory information object stored in the relational database from the at least one template, the at least template inserting a constraint in the statement based upon a hierarchical scope of the search request for the directory information.
Claim 2
Independent Claim 138 words
A method for searching for directory information stored in a relational database, comprising the steps of: receiving a search request for the directory information; parsing the search request to generate an expression tree including a plurality of nodes, each node representing a condition operator and having at least one branch representing at least one expression modified by the condition operator; identifying search conditions in the expression tree; identifying at least one template corresponding to the search conditions, the at least one template selected from a plurality of possible templates; generating a statement in a database query language that searches for a directory information object stored in the relational database from the at least one template, the at least template inserting a constraint in the statement based upon a hierarchical scope of the search request for the directory information.
Claim 3
Dependent Claim 22 words
The method of claim 1 , wherein the step of identifying search conditions includes identifying the search conditions comprising base condition operators.
Claim 4
Dependent Claim 29 words
The method of claim 2 , wherein the step of identifying search conditions further includes identifying the base condition operators including at most one of “AND” and “OR” operators.
Claim 5
Dependent Claim 30 words
The method of claim 2 , wherein the step of identifying search conditions further includes identifying the base condition operations including at most one of “AND”, “OR”, and “NOT” operators.
Claim 6
Dependent Claim 24 words
The method of claim 1 , wherein the step of generating a statement includes generating the statement comprising a structured query language (SQL) statement.
Claim 7
Dependent Claim 24 words
The method of claim 5 , wherein the step of generating a statement further includes generating the statement comprising at most one SQL statement.
Claim 8
Dependent Claim 33 words
The method of claim 2 , wherein the step of generating a statement includes generating the statement comprising a combination of at least one JOIN operation and at least one other aggregation operation.
Claim 9
Dependent Claim 34 words
The method of claim 7 , further comprising the step of generating a database JOIN operation to aggregate data within one of the search conditions identified as being one of the base condition operators.
Claim 10
Dependent Claim 38 words
The method of claim 7 , further comprising the step of generating a database INTERSECT operation between a first and a second base condition operators, said first and second base condition operators being rooted by an AND operator.
Claim 11
Dependent Claim 38 words
The method of claim 7 , further comprising the step of generating a database UNION operation between a first and a second base condition operators, said first and second base condition operators being rooted by an OR operator.
Claim 12
Dependent Claim 27 words
The method of claim 1 , wherein the step of generating a statement includes searching the directory information object comprising a Lightweight Directory Access Protocol (LDAP) object.
Claim 13
Dependent Claim 28 words
The method of claim 1 , wherein the step of receiving a search request includes receiving the search request as a Lightweight Directory Access Protocol (LDAP) search filter.
Claim 14
Dependent Claim 69 words
The method of claim 1 , further comprising the steps of: generating a first set of query statements to fill in a header section of the at least one template; generating a second set of query statements to fill in a body section of the at least one template; and generating a third set of query statements to fill in a closing section of the at least one template.
Claim 15
Dependent Claim 24 words
The method of claim 13 , wherein the step of generating a first set of query statements includes identifying database tables to be accessed.
Claim 16
Dependent Claim 23 words
The method of claim 14 , wherein the step of identifying database tables includes identifying a database table that stores object attribute information.
Claim 17
Dependent Claim 23 words
The method of claim 14 , wherein the step of identifying database tables includes identifying a database table that stores distinguished names information.
Claim 18
Dependent Claim 24 words
The method of claim 13 , wherein the step of generating a second set of query statements includes identifying catalog tables to be accessed.
Claim 19
Dependent Claim 35 words
The method of claim 13 , wherein the step of generating a second set of query statements includes generating the second set of query statements related to the search conditions identified in the expression tree.
Claim 20
Dependent Claim 28 words
The method of claim 13 , wherein the step of generating a third set of query statements includes generating the third set of query statements comprising ordering operations.
Claim 21
Dependent Claim 43 words
The method of claim 13 , wherein the step of generating a third set of query statements includes generating the third set of query statements comprising filtering operations based upon at least one database table identified in the first set of query statements.
Claim 22
Dependent Claim 26 words
The method of claim 1 , wherein the step of generating a statement includes defining the hierarchical scope of the search request as a subtree search.
Claim 23
Independent Claim 95 words
A method for searching for directory information stored in a relational database, comprising: parsing a search request for the directory information to generate an expression tree; identifying search conditions in the expression tree; identifying a base template corresponding to the expression tree, the base template comprising one or more other templates, each of the one or more other templates corresponding to at least one of the search conditions in the expression tree; and generating a statement in a database query language to search for directory information stored in the relational database using the base template.
Claim 24
Independent Claim 95 words
A method for searching for directory information stored in a relational database, comprising: parsing a search request for the directory information to generate an expression tree; identifying search conditions in the expression tree; identifying a base template corresponding to the expression tree, the base template comprising one or more other templates, each of the one or more other templates corresponding to at least one of the search conditions in the expression tree; and generating a statement in a database query language to search for directory information stored in the relational database using the base template.
Claim 25
Dependent Claim 23 words
The method of claim 22 , wherein the step of identifying search conditions includes identifying the search conditions comprising a base condition operator.
Claim 26
Dependent Claim 29 words
The method of claim 23 , wherein the step of identifying search conditions further includes identifying the base condition operator including at most one of “AND” and “OR” operators.
Claim 27
Dependent Claim 30 words
The method of claim 23 , wherein the step of identifying search conditions further includes identifying the base condition operator including at most one of “AND”, “OR”, and “NOT” operators.
Claim 28
Dependent Claim 33 words
The method of claim 22 , wherein the step of generating a statement includes generating the statement comprising a combination of at least one JOIN operation and at least one other aggregation operation.
Claim 29
Dependent Claim 32 words
The method of claim 26 , further comprising the step of generating a database JOIN operation to aggregate data within one of the search conditions identified as being a base condition operator.
Claim 30
Dependent Claim 30 words
The method of claim 26 , further comprising the step of generating a database INTERSECT operation between a first and a second base condition operators rooted by an AND operator.
Claim 31
Dependent Claim 30 words
The method of claim 26 , further comprising the step of generating a database UNION operation between a first and a second base condition operators rooted by an OR operator.
Claim 32
Dependent Claim 31 words
The method of claim 22 , wherein the step of generating a statement includes generating the statement for searching the directory information object comprising a Lightweight Directory Access Protocol (LDAP) object.
Claim 33
Dependent Claim 21 words
The method of claim 22 , wherein the step of generating a statement includes a single statement with nested SELECT clauses.
Claim 34
Dependent Claim 26 words
The method of claim 22 , wherein the step of generating a statement includes defining the hierarchical scope of the search request as a subtree search.
Claim 35
Independent Claim 114 words
A medium having stored thereon a sequence of instructions which, when executed by a processor, causes an execution of a process for searching for directory information in a relational database, the process comprising: generating an expression tree by parsing the search request, the expression tree comprising a plurality of search conditions; identifying a base template corresponding to the expression tree, the base template comprising one or more other templates, each of the one or more other templates corresponding to at least one of the plurality of search conditions in the expression tree; and generating a statement in a database query language to search for directory information in the relational database using the base template.
Claim 36
Independent Claim 114 words
A medium having stored thereon a sequence of instructions which, when executed by a processor, causes an execution of a process for searching for directory information in a relational database, the process comprising: generating an expression tree by parsing the search request, the expression tree comprising a plurality of search conditions; identifying a base template corresponding to the expression tree, the base template comprising one or more other templates, each of the one or more other templates corresponding to at least one of the plurality of search conditions in the expression tree; and generating a statement in a database query language to search for directory information in the relational database using the base template.
Claim 37
Dependent Claim 21 words
The medium of claim 33 , wherein the step of generating a statement includes a single statement with nested SELECT clauses.
Claim 38
Dependent Claim 27 words
The medium of claim 33 , wherein the step of generating a statement includes a single statement with a plurality of subqueries, each including a SELECT clause.
Claim 39
Independent Claim 151 words
A medium having stored thereon a sequence of instructions which, when executed by a processor, causes an execution of a process of searching for directory information objects in a relational database by performing the steps of: receiving a search request for the directory information; parsing the search request to generate an expression tree including a node representing a condition operator and having a branch representing an expression modified by the condition operator; identifying search conditions in the expression tree; identifying at least one template corresponding to the search conditions, the at least one template selected from a plurality of possible template; generating a statement in a database query language that searches for a directory information objects stored in the relational database from the at least one template, the at least template inserting a constraint in the statement based upon a hierarchical scope of the search request for the directory information objects.
Claim 40
Independent Claim 151 words
A medium having stored thereon a sequence of instructions which, when executed by a processor, causes an execution of a process of searching for directory information objects in a relational database by performing the steps of: receiving a search request for the directory information; parsing the search request to generate an expression tree including a node representing a condition operator and having a branch representing an expression modified by the condition operator; identifying search conditions in the expression tree; identifying at least one template corresponding to the search conditions, the at least one template selected from a plurality of possible template; generating a statement in a database query language that searches for a directory information objects stored in the relational database from the at least one template, the at least template inserting a constraint in the statement based upon a hierarchical scope of the search request for the directory information objects.
Claim 41
Independent Claim 96 words
A method for searching for directory information stored in a relational database, comprising the steps of: parsing a search request for the directory information to generate an expression tree; identifying search conditions in the expression tree; identifying at least one template corresponding to the search conditions; and generating a statement for searching for a directory information object stored in the relational database in a database query language using the at least one template, each of the at least one template inserting at least one subquery in response to a corresponding search condition in the expression tree.
Claim 42
Independent Claim 96 words
A method for searching for directory information stored in a relational database, comprising the steps of: parsing a search request for the directory information to generate an expression tree; identifying search conditions in the expression tree; identifying at least one template corresponding to the search conditions; and generating a statement for searching for a directory information object stored in the relational database in a database query language using the at least one template, each of the at least one template inserting at least one subquery in response to a corresponding search condition in the expression tree.
Claim 43
Independent Claim 111 words
A medium having stored thereon a sequence of instructions which, when executed by a processor, causes an execution of a process of searching for directory information in a relational database by performing the steps of: receiving a search request; parsing the search request to generate an expression tree; identifying at least one template corresponding to search conditions in the expression tree; and generating a statement for searching for a directory information object stored in the relational database in a database query language using the at least one template, each of the at least one template inserting at least one subquery in response to a corresponding search condition in the expression tree.
Claim 44
Independent Claim 111 words
A medium having stored thereon a sequence of instructions which, when executed by a processor, causes an execution of a process of searching for directory information in a relational database by performing the steps of: receiving a search request; parsing the search request to generate an expression tree; identifying at least one template corresponding to search conditions in the expression tree; and generating a statement for searching for a directory information object stored in the relational database in a database query language using the at least one template, each of the at least one template inserting at least one subquery in response to a corresponding search condition in the expression tree.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2007-06-08 2007-12-08 2008-06-08 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2011-06-08 2011-12-08 2012-06-08 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2015-06-08 2015-12-08 2016-06-08 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag