Claims Analysis
Total Claims: 24
Claim 1
Independent Claim
230 words
A method of optimizing an SQL query in a computer having a memory, the SQL query being performed by the computer to retrieve data from a relational database stored in an electronic storage device coupled to the computer, and the SQL query including a join operation for an outer table and an inner table in the relational database, the method comprising the steps of: (a) examining the query in the memory of the computer to determine whether the query includes a requirement for distinctiveness in one or more result columns of the join operation; (b) examining the query in the memory of the computer to determine whether one or more columns of the inner table are referenced in the query after the join operation is performed by the computer and whether each referenced column of the inner table is bound and is not involved in any length-sensitive expressions yet to be evaluated; and (c) performing, in the memory of the computer, an early-out join operation in place of the join operation when the query includes the requirement for distinctiveness and the referenced columns of the inner table are bound and are not involved in any length-sensitive expressions yet to be evaluated, further comprising the steps of scanning the inner table for a match for each row of the outer table and terminating the scanning step when the match is found.
Claim 2
Independent Claim
230 words
A method of optimizing an SQL query in a computer having a memory, the SQL query being performed by the computer to retrieve data from a relational database stored in an electronic storage device coupled to the computer, and the SQL query including a join operation for an outer table and an inner table in the relational database, the method comprising the steps of: (a) examining the query in the memory of the computer to determine whether the query includes a requirement for distinctiveness in one or more result columns of the join operation; (b) examining the query in the memory of the computer to determine whether one or more columns of the inner table are referenced in the query after the join operation is performed by the computer and whether each referenced column of the inner table is bound and is not involved in any length-sensitive expressions yet to be evaluated; and (c) performing, in the memory of the computer, an early-out join operation in place of the join operation when the query includes the requirement for distinctiveness and the referenced columns of the inner table are bound and are not involved in any length-sensitive expressions yet to be evaluated, further comprising the steps of scanning the inner table for a match for each row of the outer table and terminating the scanning step when the match is found.
Claim 3
Dependent Claim
18 words
The method of claim 1, wherein the referenced column of the inner table is bound to a constant.
Claim 4
Dependent Claim
22 words
The method of claim 1, wherein the referenced column of the inner table is bound to a column of the outer table.
Claim 5
Dependent Claim
19 words
The method of claim 1, wherein the referenced column of the inner table is bound to a correlated value.
Claim 6
Dependent Claim
20 words
The method of claim 1, wherein the referenced column of the inner table is bound through a transitive equality predicate.
Claim 7
Dependent Claim
25 words
The method of claim 1, wherein the requirement for distinctiveness in the result columns for the join operation is explicitly set forth in the query.
Claim 8
Dependent Claim
25 words
The method of claim 1, wherein the requirement for distinctiveness in the result columns for the join operation is implicitly set forth in the query.
Claim 9
Independent Claim
286 words
An apparatus for optimizing an SQL query, comprising: (a) a computer having a memory and an electronic storage device coupled thereto, wherein the electronic storage device stores a relational database; (b) means, performed by the computer, for accepting an SQL query into the memory of the computer, the SQL query including a join operation for an outer table and an inner table stored in the relational database; (c) means, performed by the computer, for examining the query in the memory of the computer to determine whether the query includes a requirement for distinctiveness in one or more result columns of the join operation; (d) means, performed by the computer, for examining the query in the memory of the computer to determine whether one or more columns of the inner table are referenced in the query after the join operation is performed and whether each referenced column of the inner table is bound and is not involved in any length-sensitive expressions yet to be evaluated; and (e) means, performed by the computer, for performing an early-out join operation in place of the join operation when the query includes the requirement for distinctiveness and the referenced columns of the inner table are bound and are not involved in any length-sensitive expressions yet to be evaluated, the means for executing further comprising means for retrieving the inner and outer tables from the relational database stored in the electronic storage device, means for storing the inner and outer tables in the memory of the computer, means for scanning the inner table in the memory of the computer for a match for each row of the outer table, and means for terminating the means for scanning when the match is found.
Claim 10
Independent Claim
286 words
An apparatus for optimizing an SQL query, comprising: (a) a computer having a memory and an electronic storage device coupled thereto, wherein the electronic storage device stores a relational database; (b) means, performed by the computer, for accepting an SQL query into the memory of the computer, the SQL query including a join operation for an outer table and an inner table stored in the relational database; (c) means, performed by the computer, for examining the query in the memory of the computer to determine whether the query includes a requirement for distinctiveness in one or more result columns of the join operation; (d) means, performed by the computer, for examining the query in the memory of the computer to determine whether one or more columns of the inner table are referenced in the query after the join operation is performed and whether each referenced column of the inner table is bound and is not involved in any length-sensitive expressions yet to be evaluated; and (e) means, performed by the computer, for performing an early-out join operation in place of the join operation when the query includes the requirement for distinctiveness and the referenced columns of the inner table are bound and are not involved in any length-sensitive expressions yet to be evaluated, the means for executing further comprising means for retrieving the inner and outer tables from the relational database stored in the electronic storage device, means for storing the inner and outer tables in the memory of the computer, means for scanning the inner table in the memory of the computer for a match for each row of the outer table, and means for terminating the means for scanning when the match is found.
Claim 11
Dependent Claim
18 words
The apparatus of claim 8, wherein the referenced column of the inner table is bound to a constant.
Claim 12
Dependent Claim
22 words
The apparatus of claim 8, wherein the referenced column of the inner table is bound to a column of the outer table.
Claim 13
Dependent Claim
19 words
The apparatus of claim 8, wherein the referenced column of the inner table is bound to a correlated value.
Claim 14
Dependent Claim
20 words
The apparatus of claim 8, wherein the referenced column of the inner table is bound through a transitive equality predicate.
Claim 15
Dependent Claim
25 words
The apparatus of claim 8, wherein the requirement for distinctiveness in the result columns for the join operation is explicitly set forth in the query.
Claim 16
Dependent Claim
25 words
The apparatus of claim 8, wherein the requirement for distinctiveness in the result columns for the join operation is implicitly set forth in the query.
Claim 17
Dependent Claim
250 words
A program storage device readable by a computer, tangibly embodying a program of instructions executable by the computer to perform method steps for optimizing an SQL query in a computer having a memory, the SQL query being performed by the computer to retrieve data from a relational database stored in an electronic storage device coupled to the computer, and the SQL query including a join operation for an outer table and an inner table in the relational database, the method comprising the steps of: (a) examining the query in the memory of the computer to determine whether the query includes a requirement for distinctiveness in one or more result columns of the join operation; (b) examining the query in the memory of the computer to determine whether one or more columns of the inner table are referenced in the query after the join operation is performed by the computer and whether each referenced column of the inner table is bound and is not involved in a length-sensitive expression yet to be evaluated; and (c) performing, in the memory of the computer, an early-out join operation in place of the join operation when the query includes the requirement for distinctiveness and the referenced columns of the inner table are bound and are not involved in a length-sensitive expression yet to be evaluated, further comprising the steps of scanning the inner table for a match for each row of the outer table and terminating the scanning step when the match is found.
Claim 18
Dependent Claim
250 words
A program storage device readable by a computer, tangibly embodying a program of instructions executable by the computer to perform method steps for optimizing an SQL query in a computer having a memory, the SQL query being performed by the computer to retrieve data from a relational database stored in an electronic storage device coupled to the computer, and the SQL query including a join operation for an outer table and an inner table in the relational database, the method comprising the steps of: (a) examining the query in the memory of the computer to determine whether the query includes a requirement for distinctiveness in one or more result columns of the join operation; (b) examining the query in the memory of the computer to determine whether one or more columns of the inner table are referenced in the query after the join operation is performed by the computer and whether each referenced column of the inner table is bound and is not involved in a length-sensitive expression yet to be evaluated; and (c) performing, in the memory of the computer, an early-out join operation in place of the join operation when the query includes the requirement for distinctiveness and the referenced columns of the inner table are bound and are not involved in a length-sensitive expression yet to be evaluated, further comprising the steps of scanning the inner table for a match for each row of the outer table and terminating the scanning step when the match is found.
Claim 19
Dependent Claim
20 words
The program storage device of claim 15, wherein the referenced column of the inner table is bound to a constant.
Claim 20
Dependent Claim
24 words
The program storage device of claim 15, wherein the referenced column of the inner table is bound to a column of the outer table.
Claim 21
Dependent Claim
21 words
The program storage device of claim 15, wherein the referenced column of the inner table is bound to a correlated value.
Claim 22
Dependent Claim
22 words
The program storage device of claim 15, wherein the referenced column of the inner table is bound through a transitive equality predicate.
Claim 23
Dependent Claim
27 words
The program storage device of claim 15, wherein the requirement for distinctiveness in the result columns for the join operation is explicitly set forth in the query.
Claim 24
Dependent Claim
27 words
The program storage device of claim 15, wherein the requirement for distinctiveness in the result columns for the join operation is implicitly set forth in the query.