Claims Analysis
Total Claims: 71
Claim 1
Independent Claim
106 words
A method of handling null values in a query having a subquery, the query being performed by a computer to retrieve object-oriented data from a database stored in an electronic storage device connected to the computer, the method comprising the steps of: (a) iteratively eliminating, in the computer, negation in each predicate of the query by applying logical equivalence rules; and (b) iteratively performing, in the computer, null protection on each predicate of the query after eliminating negation, to ensure that null values are checked when attempting to retrieve the object-oriented data from the electronic storage device coupled to the computer within a two-valued logic environment.
Claim 2
Independent Claim
106 words
A method of handling null values in a query having a subquery, the query being performed by a computer to retrieve object-oriented data from a database stored in an electronic storage device connected to the computer, the method comprising the steps of: (a) iteratively eliminating, in the computer, negation in each predicate of the query by applying logical equivalence rules; and (b) iteratively performing, in the computer, null protection on each predicate of the query after eliminating negation, to ensure that null values are checked when attempting to retrieve the object-oriented data from the electronic storage device coupled to the computer within a two-valued logic environment.
Claim 3
Dependent Claim
33 words
The method of claim 1, wherein the query comprises quantified subqueries and wherein step (a) further comprises the step of applying logical equivalence rules to eliminate negation in predicates involving the quantified subqueries.
Claim 4
Dependent Claim
32 words
The method of claim 1, wherein the query comprises quantified subqueries and wherein step (a) further comprises the step of applying logical equivalence rules to transform the quantified subqueries into existential subqueries.
Claim 5
Dependent Claim
28 words
The method of claim 1, wherein step (b) further comprises the step of, when the predicate is a positive predicate, performing null protection transformations for the positive predicate.
Claim 6
Dependent Claim
28 words
The method of claim 1, wherein step (b) further comprises the step of, when the predicate is a negative predicate, performing null protection transformations for the negative predicate.
Claim 7
Independent Claim
115 words
An apparatus for handling null values in a query having a subquery, comprising: a computer with an electronic storage device connected thereto, the electronic storage device storing object-oriented data; means for executing the query in the computer to retrieve the object-oriented data from the electronic storage device; means, performed by the computer, for iteratively eliminating negation in each predicate of the query by applying logical equivalence rules; and means, performed by the computer, for iteratively performing null protection on each predicate of the query after eliminating negation, to ensure that null values are checked when attempting to retrieve the object-oriented data from the electronic storage device coupled to the computer within a two-valued logic environment.
Claim 8
Independent Claim
115 words
An apparatus for handling null values in a query having a subquery, comprising: a computer with an electronic storage device connected thereto, the electronic storage device storing object-oriented data; means for executing the query in the computer to retrieve the object-oriented data from the electronic storage device; means, performed by the computer, for iteratively eliminating negation in each predicate of the query by applying logical equivalence rules; and means, performed by the computer, for iteratively performing null protection on each predicate of the query after eliminating negation, to ensure that null values are checked when attempting to retrieve the object-oriented data from the electronic storage device coupled to the computer within a two-valued logic environment.
Claim 9
Dependent Claim
28 words
The apparatus of claim 6, wherein the means for iteratively eliminating further comprise means for applying logical equivalence rules to eliminate negation in each predicate in the query.
Claim 10
Dependent Claim
33 words
The apparatus of claim 6, wherein the query comprises quantified subqueries and wherein the means for iteratively eliminating further comprise means for applying logical equivalence rules to eliminate negation in the quantified subqueries.
Claim 11
Dependent Claim
34 words
The apparatus of claim 6, wherein the query comprises quantified subqueries and wherein the means for iteratively eliminating further comprise means for applying logical equivalence rules to transform the quantified subqueries into existential subqueries.
Claim 12
Dependent Claim
30 words
The apparatus of claim 6, wherein the means for iteratively performing further comprise means for, when the predicate is a positive predicate, performing null protection transformations for the positive predicate.
Claim 13
Dependent Claim
30 words
The apparatus of claim 6, wherein the means for iteratively performing further comprise means for performing null protection transformations for the negative predicate, when the predicate is a negative predicate.
Claim 14
Dependent Claim
120 words
A program storage device, readable by a computer, tangibly embodying one or more programs of instructions executable by the computer to perform method steps for handling null values in a query having a subquery that is performed by the computer to retrieve object-oriented data from an electronic storage device connected to the computer, the method comprising the steps of: iteratively eliminating, in the computer, negation in each predicate of the query by applying logical equivalence rules; and iteratively performing, in the computer, null protection on each predicate of the query after eliminating negation, to ensure that null values are checked when attempting to retrieve object-oriented data from the electronic storage device coupled to the computer within a two-valued logic environment.
Claim 15
Dependent Claim
120 words
A program storage device, readable by a computer, tangibly embodying one or more programs of instructions executable by the computer to perform method steps for handling null values in a query having a subquery that is performed by the computer to retrieve object-oriented data from an electronic storage device connected to the computer, the method comprising the steps of: iteratively eliminating, in the computer, negation in each predicate of the query by applying logical equivalence rules; and iteratively performing, in the computer, null protection on each predicate of the query after eliminating negation, to ensure that null values are checked when attempting to retrieve object-oriented data from the electronic storage device coupled to the computer within a two-valued logic environment.
Claim 16
Dependent Claim
37 words
The program storage device of claim 12, wherein the query comprises quantified subqueries and wherein the iteratively eliminating step further comprises the step of applying logical equivalence rules to eliminate negation in predicates involving the quantified subqueries.
Claim 17
Dependent Claim
36 words
The program storage device of claim 12, wherein the query comprises quantified subqueries and wherein the iteratively eliminating step further comprises the step of applying logical equivalence rules to transform the quantified subqueries into existential subqueries.
Claim 18
Dependent Claim
32 words
The program storage device of claim 12, wherein the iteratively performing step further comprises the step of performing null protection transformations for the positive predicate, when the predicate is a positive predicate.
Claim 19
Dependent Claim
32 words
The program storage device of claim 12, wherein the iteratively performing step further comprises the step of performing null protection transformations for the negative predicate, when the predicate is a negative predicate.
Claim 20
Independent Claim
63 words
A method for processing a query in a computer system, comprising the steps of: providing, in a two-valued logic system where NULL values are unsupported, a tri-valued logic interpretation, by a query engine, of predicates involving subqueries having a capability to have NULL pointers; and protecting the query engine processing the query from abnormal termination due to dereferencing one of the NULL pointers.
Claim 21
Independent Claim
63 words
A method for processing a query in a computer system, comprising the steps of: providing, in a two-valued logic system where NULL values are unsupported, a tri-valued logic interpretation, by a query engine, of predicates involving subqueries having a capability to have NULL pointers; and protecting the query engine processing the query from abnormal termination due to dereferencing one of the NULL pointers.
Claim 22
Independent Claim
142 words
A method for processing queries in a computer system, comprising the steps of: processing, by a two-valued logic system which is not supportive of NULL values in an environment having NULL pointers, a predicate having a subquery by transforming the predicate by: employing a technique to handle each occurrence of a negative predicate, if any, as a positive predicate; transforming a quantified subquery, if any, into an existential form; applying null tests, by the query system, to each resulting predicate; and interpreting the semantics of the NULL tested resulting predicate such that a presence of a NULL pointer or a NULL value is handled in a same way as if the predicate evaluated to False by not returning a result; wherein the two-valued logic system simulates tri-valued logic and the query system does not terminate abnormally if a NULL pointer is traversed.
Claim 23
Independent Claim
142 words
A method for processing queries in a computer system, comprising the steps of: processing, by a two-valued logic system which is not supportive of NULL values in an environment having NULL pointers, a predicate having a subquery by transforming the predicate by: employing a technique to handle each occurrence of a negative predicate, if any, as a positive predicate; transforming a quantified subquery, if any, into an existential form; applying null tests, by the query system, to each resulting predicate; and interpreting the semantics of the NULL tested resulting predicate such that a presence of a NULL pointer or a NULL value is handled in a same way as if the predicate evaluated to False by not returning a result; wherein the two-valued logic system simulates tri-valued logic and the query system does not terminate abnormally if a NULL pointer is traversed.
Claim 24
Dependent Claim
35 words
The method of claim 18, wherein the step of employing further comprises applying equivalence rules to progressively push negation from the root to the leaves of the predicate and to reduce the breadth of negation.
Claim 25
Dependent Claim
22 words
The method of claim 18, wherein the step of transforming further comprises pushing the quantified predicate into a body of the subquery.
Claim 26
Dependent Claim
72 words
The method of claim 20, wherein the predicate having a form "e r ANY (select x 1 . . . " generates a created predicate of the form "e r x 1 "; and further comprising AND'ing the created predicate into a list of conjuncts in the existential subquery; wherein e is an expression, r is a relational operator among {=, ≠,<, ≦, >, ≧}, and x 1 is a projection element.
Claim 27
Dependent Claim
82 words
The method of claim 20, wherein the predicate having a form "e r ALL (select x 1 . . . " generates a created predicate of the form "e r -1 x 1 "; and further comprising AND'ing the created predicate into a list of conjuncts in the existential subquery; wherein e is an expression, r is a relational operator among {=, ≠, <, ≦, >, ≧}, x 1 is a projection element, and r -1 is the inverse comparator for r.
Claim 28
Dependent Claim
46 words
The method of claim 20 or 21, wherein if the subquery does not have an aggregate function in its projection element and there is no group-by or having-clause, then the created predicate is AND'ed into the list of conjuncts in a where-clause of the existential subquery.
Claim 29
Dependent Claim
28 words
The method of claim 20 or 21, wherein if the subquery has an aggregate function in its projection element, then the created predicate is AND'ed into a having-clause.
Claim 30
Dependent Claim
292 words
The method of claim 21, wherein the created predicate remains in a scope of negation during the application of the null protection transformations, and wherein the step of applying null protection transformations further comprises applying the following transformations for the created predicate: (i) transforming a negative expression "not (p 1 r k)" as: not (p 1 r k)→not (q 1 .m 1 =NULL or q 1 .m 1 ..m 2 =NULL or . . . or q 1 .m 1 .., . . . , ..m n-1 =NULL or q 1 .m 1 .., . . . , ..m n r k); and (ii) transforming a negative expression "not (p 1 r p 2 )" as: not (p 1 r p 2 )→not (q 1 .m 1 =NULL or q 1 .m 1 ..m 2 =NULL or . . . or q 1 .m 1 .., . . . , ..m n-1 =NULL or q 2 .m 1 =NULL or q 2 .m 1 ..m 2 =NULL or . . . or q 2 .m 1 .., . . . , ..m m-1 =NULL or q 1 .m 1 .., . . . , ..m n r q 2 .m 1 .., . . . , ..m m ), wherein: p 1 is a path expression of the form q 1 .m 1 ..m 2 .., . . . , ..m n in which attributes m 1 , . . . , m n-1 can be NULL pointers, k is a constant, and p 2 is a path expression of the form q 2 .m 1 ..m 2 .., . . . , ..m n where m 1 , . . . , m n-1 are attributes that can be NULL pointers.
Claim 31
Independent Claim
100 words
A method for processing a query having a predicate with a subquery in a computer system, comprising the steps of: using a two-valued logic system to process the query, the query being capable of having NULL values; reducing each predicate in the query from a negative predicate to a logically equivalent positive predicate; applying NULL pointer testing predicates to each positive predicate to ensure that path expression traversal does not extend beyond NULL pointers; and interpreting the NULL tested positive predicates that include NULL pointers similarly to a False value of the predicate by not being included in the result.
Claim 32
Independent Claim
100 words
A method for processing a query having a predicate with a subquery in a computer system, comprising the steps of: using a two-valued logic system to process the query, the query being capable of having NULL values; reducing each predicate in the query from a negative predicate to a logically equivalent positive predicate; applying NULL pointer testing predicates to each positive predicate to ensure that path expression traversal does not extend beyond NULL pointers; and interpreting the NULL tested positive predicates that include NULL pointers similarly to a False value of the predicate by not being included in the result.
Claim 33
Dependent Claim
45 words
The method of claim 26, further comprising: if one of the each predicates is a quantified subquery predicate, converting the quantified subquery predicate into an existential subquery predicate; and if a resulting converted existential subquery is a form of "NOT EXIST", applying a NULL protection.
Claim 34
Independent Claim
170 words
A method for processing a query in a computer system, comprising the steps of: transforming a predicate having a subquery into a logically equivalent predicate; checking for nullness, in query systems that support subqueries and in an environment where NULL values are unsupported, each attribute (m 1 through m n ) along each path expression p having a form q.m 1 ..m 2 .., . . . , ..m n where m 1 , . . . , m n can be NULL pointers within the transformed predicate; interpretating, by a two-valued logic system, the check for nullness of the transformed predicate in a way that supports tri-valued logic; and continuing to resolve the path after the check for nullness; wherein a presence of a NULL pointer in the transformed predicate is handled in a same way as a FALSE value of the predicate having a subquery by not returning a result and the query engine processing the query is protected from abnormal termination due to dereferencing the NULL pointer.
Claim 35
Independent Claim
170 words
A method for processing a query in a computer system, comprising the steps of: transforming a predicate having a subquery into a logically equivalent predicate; checking for nullness, in query systems that support subqueries and in an environment where NULL values are unsupported, each attribute (m 1 through m n ) along each path expression p having a form q.m 1 ..m 2 .., . . . , ..m n where m 1 , . . . , m n can be NULL pointers within the transformed predicate; interpretating, by a two-valued logic system, the check for nullness of the transformed predicate in a way that supports tri-valued logic; and continuing to resolve the path after the check for nullness; wherein a presence of a NULL pointer in the transformed predicate is handled in a same way as a FALSE value of the predicate having a subquery by not returning a result and the query engine processing the query is protected from abnormal termination due to dereferencing the NULL pointer.
Claim 36
Independent Claim
61 words
A method for processing a query in a computer system, comprising the steps of: applying, in an environment having NULL pointers and where NULL values are unsupported, an IS NULL predicate to a path expression in the query; and interpreting a semantic of the IS NULL as being TRUE if the path expression has a node which is a NULL pointer.
Claim 37
Independent Claim
61 words
A method for processing a query in a computer system, comprising the steps of: applying, in an environment having NULL pointers and where NULL values are unsupported, an IS NULL predicate to a path expression in the query; and interpreting a semantic of the IS NULL as being TRUE if the path expression has a node which is a NULL pointer.
Claim 38
Independent Claim
63 words
A method for processing a query in a computer system, comprising the steps of: applying, in an environment having NULL pointers and where NULL values are unsupported, an IS NULL predicate to a path expression in the query; and interpreting a semantic of the IS NULL as being FALSE if the path expression does not have a node which is a NULL pointer.
Claim 39
Independent Claim
63 words
A method for processing a query in a computer system, comprising the steps of: applying, in an environment having NULL pointers and where NULL values are unsupported, an IS NULL predicate to a path expression in the query; and interpreting a semantic of the IS NULL as being FALSE if the path expression does not have a node which is a NULL pointer.
Claim 40
Independent Claim
63 words
A method for processing a query in a computer system, comprising the steps of: applying, in an environment having NULL pointers and where NULL values are unsupported, an IS NOT NULL predicate to a path expression in the query; and interpreting a semantic of the IS NOT NULL as being FALSE if the path expression has a node which is a NULL pointer.
Claim 41
Independent Claim
63 words
A method for processing a query in a computer system, comprising the steps of: applying, in an environment having NULL pointers and where NULL values are unsupported, an IS NOT NULL predicate to a path expression in the query; and interpreting a semantic of the IS NOT NULL as being FALSE if the path expression has a node which is a NULL pointer.
Claim 42
Independent Claim
65 words
A method for processing a query in a computer system, comprising the steps of: applying, in an environment having NULL pointers and where NULL values are unsupported, an IS NOT NULL predicate to a path expression in the query; and interpreting a semantic of the IS NOT NULL as being TRUE if the path expression does not have a node which is a NULL pointer.
Claim 43
Independent Claim
65 words
A method for processing a query in a computer system, comprising the steps of: applying, in an environment having NULL pointers and where NULL values are unsupported, an IS NOT NULL predicate to a path expression in the query; and interpreting a semantic of the IS NOT NULL as being TRUE if the path expression does not have a node which is a NULL pointer.
Claim 44
Independent Claim
35 words
The method of claims 29 or 31, further comprising the step of continuing to process the query without an abnormal termination of a query engine as a result of a traversal of the NULL pointer.
Claim 45
Independent Claim
17 words
The method of claims 29, 30, 31, or 32, wherein the environment is an object-oriented database environment.
Claim 46
Independent Claim
16 words
The method of claims 29, 30, 31, or 32, wherein the environment is an object-oriented system.
Claim 47
Independent Claim
53 words
A method for processing a query in a computer system, comprising the steps of: processing the query, in an environment where NULL values are unsupported, the query having a basic predicate with a subquery; and interpreting the predicate as NULL if an operand is NULL or if the subquery returns an empty result.
Claim 48
Independent Claim
53 words
A method for processing a query in a computer system, comprising the steps of: processing the query, in an environment where NULL values are unsupported, the query having a basic predicate with a subquery; and interpreting the predicate as NULL if an operand is NULL or if the subquery returns an empty result.
Claim 49
Independent Claim
66 words
A method for processing a query in a computer system, comprising the steps of: processing the query, in an environment where NULL values are unsupported, the query having a predicate with a universal quantified subquery; and interpreting the predicate as NULL if a relationship is not FALSE for any values returned by the subquery and at least one comparison is unknown because of a NULL value.
Claim 50
Independent Claim
66 words
A method for processing a query in a computer system, comprising the steps of: processing the query, in an environment where NULL values are unsupported, the query having a predicate with a universal quantified subquery; and interpreting the predicate as NULL if a relationship is not FALSE for any values returned by the subquery and at least one comparison is unknown because of a NULL value.
Claim 51
Independent Claim
65 words
A method for processing a query in a computer system, comprising the steps of: processing the query, in an environment where NULL values are unsupported, having a predicate with an existential quantified subquery; and interpreting the predicate as NULL if a specified relationship is not TRUE for any values returned by the subquery and at least one comparison is unknown because of a NULL value.
Claim 52
Independent Claim
65 words
A method for processing a query in a computer system, comprising the steps of: processing the query, in an environment where NULL values are unsupported, having a predicate with an existential quantified subquery; and interpreting the predicate as NULL if a specified relationship is not TRUE for any values returned by the subquery and at least one comparison is unknown because of a NULL value.
Claim 53
Independent Claim
310 words
A method for processing queries in a computer system, comprising the steps of: processing, in an environment where NULL values are unsupported, a predicate having a path expression by: (a) transforming each occurrence, if any, of a negative predicate into a positive predicate; and (b) applying null protection transformations to each positive predicate by: <(i) transforming a positive expression p 1 r k as p 1 r k→q 1 .m 1 ≠NULL and q 1 .m 1 ..m 2 ≠NULL and . . . and q 1 .m 1 .., . . . , ..m n-1 ≠NULL and q 1 .m 1 .., . . . , ..m n r k; and (ii) transforming a positive expression p 1 r p 2 as p 1 r p 2 →q 1 .m 1 ≠NULL and q 1 .m 1 ..m 2 ≠NULL and . . . and q 1 .m 1 .., . . . , ..m n-1 ≠NULL and q 2 .m 1 ..m 2 ≠NULL and q 2 .m 1 ..m 2 ≠NULL and . . . and q 2 .m 1 .., . . . , ..m m-1 ≠NULL and q 1 .m 1 .., . . . , ..m n r q 2 .m 1 .., . . . , ..m m , wherein: p 1 is a path expression of the form q 1 .m 1 ..m 2 .., . . . , ..m n in which attributes m 1 , . . . , m n-1 can be NULL pointers, r is a relational operator among {=, ≠, <, ≦, >, ≧}, k is a constant, and p 2 is a path expression of the form q 2 .m 1 ..m 2 .., . . . , ..m n where m 1 , . . . ,m n-1 are attributes that can be NULL pointers.
Claim 54
Independent Claim
310 words
A method for processing queries in a computer system, comprising the steps of: processing, in an environment where NULL values are unsupported, a predicate having a path expression by: (a) transforming each occurrence, if any, of a negative predicate into a positive predicate; and (b) applying null protection transformations to each positive predicate by: <(i) transforming a positive expression p 1 r k as p 1 r k→q 1 .m 1 ≠NULL and q 1 .m 1 ..m 2 ≠NULL and . . . and q 1 .m 1 .., . . . , ..m n-1 ≠NULL and q 1 .m 1 .., . . . , ..m n r k; and (ii) transforming a positive expression p 1 r p 2 as p 1 r p 2 →q 1 .m 1 ≠NULL and q 1 .m 1 ..m 2 ≠NULL and . . . and q 1 .m 1 .., . . . , ..m n-1 ≠NULL and q 2 .m 1 ..m 2 ≠NULL and q 2 .m 1 ..m 2 ≠NULL and . . . and q 2 .m 1 .., . . . , ..m m-1 ≠NULL and q 1 .m 1 .., . . . , ..m n r q 2 .m 1 .., . . . , ..m m , wherein: p 1 is a path expression of the form q 1 .m 1 ..m 2 .., . . . , ..m n in which attributes m 1 , . . . , m n-1 can be NULL pointers, r is a relational operator among {=, ≠, <, ≦, >, ≧}, k is a constant, and p 2 is a path expression of the form q 2 .m 1 ..m 2 .., . . . , ..m n where m 1 , . . . ,m n-1 are attributes that can be NULL pointers.
Claim 55
Independent Claim
517 words
A method for processing queries in a computer system, comprising the steps of: processing, in an environment where NULL values are unsupported, a predicate having a subquery by: (a) employing a technique to handle each occurrence, if any, of a negative predicate as a positive predicate; (b) converting quantified subqueries into existential subqueries and pushing a created predicate into a body of the subquery; (c) applying null protection transformations to each resulting predicate, except a "not exists Q" resulting from the conversion step (b), by: (i) transforming an expression p 1 r k as p 1 r k→q 1 .m 1 ≠NULL and q 1 .m 1 ..m 2 ≠NULL and . . . and q 1 .m 1 .., . . . , ..m n-1 ≠NULL and q 1 .m 1 .., . . . , ..m n r k; (ii) transforming an expression p 1 r p 2 as p 1 r p 2 →q 1 .m 1 ≠NULL and q 1 .m 1 ..m 2 ≠NULL and . . . and q 1 .m 1 .., . . . , ..m n ≠NULL and q 2 .m 1 ≠NULL and q 2 .m 1 ..m 2 ≠NULL and . . . and q 2 .m 1 .., . . . , ..m m-1 ≠NULL and q 1 .m 1 .., . . . , ..m n r q 2 .m 1 .., . . . , ..m m ; and (d) applying a following applicable null protection transformation to a predicate, if any, having the form "not exists Q", if the form "not exists Q" is a result of the conversion of quantified subqueries into existential subqueries of step (b): (i) (p 1 r k)→(q 1 .m 1 =NULL or q 1 .m 1 ..m 2 =NULL or . . . or q 1 .m 1 .., . . . , ..m n-1 =NULL or q 1 .m 1 .., . . . , ..m n r k); (ii) (p 1 r p 2 )→(q 1 .m 1 =NULL or q 1 .m 1 ..m 2 =NULL or . . . or q 1 .m 1 .., . . . , ..m n-1 =NULL or q 2 .m 1 =NULL or q 2 .m 1 ..m 2 =NULL or . . . or q 1 .m 1 .., . . . , ..m m-1 =NULL or q 1 .m 1 .., . . . , ..m n r q 2 .m 1 .., . . . , ..m m ), wherein: p 1 is a path expression of the form q 1 .m 1 ..m 2 .., . . . , ..m n in which attributes m 1 , . . . , m n-1 can be NULL pointers, r is a relational operator among {=, ≠, <, ≦, >, ≧}, k is a constant, and p 2 is a path expression of the form q 2 .m 1 ..m 2 .., . . . , ..m n where m 1 , . . . ,m n-1 are attributes that can be NULL pointers.
Claim 56
Independent Claim
517 words
A method for processing queries in a computer system, comprising the steps of: processing, in an environment where NULL values are unsupported, a predicate having a subquery by: (a) employing a technique to handle each occurrence, if any, of a negative predicate as a positive predicate; (b) converting quantified subqueries into existential subqueries and pushing a created predicate into a body of the subquery; (c) applying null protection transformations to each resulting predicate, except a "not exists Q" resulting from the conversion step (b), by: (i) transforming an expression p 1 r k as p 1 r k→q 1 .m 1 ≠NULL and q 1 .m 1 ..m 2 ≠NULL and . . . and q 1 .m 1 .., . . . , ..m n-1 ≠NULL and q 1 .m 1 .., . . . , ..m n r k; (ii) transforming an expression p 1 r p 2 as p 1 r p 2 →q 1 .m 1 ≠NULL and q 1 .m 1 ..m 2 ≠NULL and . . . and q 1 .m 1 .., . . . , ..m n ≠NULL and q 2 .m 1 ≠NULL and q 2 .m 1 ..m 2 ≠NULL and . . . and q 2 .m 1 .., . . . , ..m m-1 ≠NULL and q 1 .m 1 .., . . . , ..m n r q 2 .m 1 .., . . . , ..m m ; and (d) applying a following applicable null protection transformation to a predicate, if any, having the form "not exists Q", if the form "not exists Q" is a result of the conversion of quantified subqueries into existential subqueries of step (b): (i) (p 1 r k)→(q 1 .m 1 =NULL or q 1 .m 1 ..m 2 =NULL or . . . or q 1 .m 1 .., . . . , ..m n-1 =NULL or q 1 .m 1 .., . . . , ..m n r k); (ii) (p 1 r p 2 )→(q 1 .m 1 =NULL or q 1 .m 1 ..m 2 =NULL or . . . or q 1 .m 1 .., . . . , ..m n-1 =NULL or q 2 .m 1 =NULL or q 2 .m 1 ..m 2 =NULL or . . . or q 1 .m 1 .., . . . , ..m m-1 =NULL or q 1 .m 1 .., . . . , ..m n r q 2 .m 1 .., . . . , ..m m ), wherein: p 1 is a path expression of the form q 1 .m 1 ..m 2 .., . . . , ..m n in which attributes m 1 , . . . , m n-1 can be NULL pointers, r is a relational operator among {=, ≠, <, ≦, >, ≧}, k is a constant, and p 2 is a path expression of the form q 2 .m 1 ..m 2 .., . . . , ..m n where m 1 , . . . ,m n-1 are attributes that can be NULL pointers.
Claim 57
Dependent Claim
20 words
The method of claim 40, wherein the null protection transformations are applied during a plan optimization phase of query processing.
Claim 58
Dependent Claim
21 words
The method of claim 40, wherein the steps (a) and (b) are performed during a query rewrite phase of query processing.
Claim 59
Independent Claim
98 words
A method for processing a query having a predicate with a subquery in a computer system, comprising the steps of: using a two-valued logic system to process the query, the query being capable of having NULL values; reducing each predicate in the query from a negative predicate to a positive predicate; and applying NULL pointer testing predicates to each predicate to ensure that path expression traversal does not extend beyond NULL pointers and to interpret predicates that include NULL pointers such that a NULL or False truth value are handled similarly by not being included in the result.
Claim 60
Independent Claim
98 words
A method for processing a query having a predicate with a subquery in a computer system, comprising the steps of: using a two-valued logic system to process the query, the query being capable of having NULL values; reducing each predicate in the query from a negative predicate to a positive predicate; and applying NULL pointer testing predicates to each predicate to ensure that path expression traversal does not extend beyond NULL pointers and to interpret predicates that include NULL pointers such that a NULL or False truth value are handled similarly by not being included in the result.
Claim 61
Dependent Claim
54 words
A query system for processing a query, the system comprising: means for providing, in an environment where NULL values are unsupported, a tri-valued logic interpretation of predicates involving subqueries having a capability to have NULL pointers; and means for protecting the query system from abnormal termination due to dereferencing one of the NULL pointers.
Claim 62
Dependent Claim
54 words
A query system for processing a query, the system comprising: means for providing, in an environment where NULL values are unsupported, a tri-valued logic interpretation of predicates involving subqueries having a capability to have NULL pointers; and means for protecting the query system from abnormal termination due to dereferencing one of the NULL pointers.
Claim 63
Dependent Claim
133 words
A query system for processing queries, the system comprising: means for processing, in an environment where NULL values are not supported, a predicate having a subquery having a capability to have NULL pointers, the means for processing further comprising: means for employing a technique to handle each occurrence of a negative predicate, if any, as a logically equivalent positive predicate; means for applying null tests to each resulting predicate; and means for interpreting the semantics of the NULL tested resulting predicate such that a presence of a NULL pointer or a NULL value is handled in a same way as if the predicate evaluated to False by not returning a result; wherein the two-valued logic system simulates tri-valued logic and the query system does not terminate abnormally if a NULL pointer is traversed.
Claim 64
Dependent Claim
133 words
A query system for processing queries, the system comprising: means for processing, in an environment where NULL values are not supported, a predicate having a subquery having a capability to have NULL pointers, the means for processing further comprising: means for employing a technique to handle each occurrence of a negative predicate, if any, as a logically equivalent positive predicate; means for applying null tests to each resulting predicate; and means for interpreting the semantics of the NULL tested resulting predicate such that a presence of a NULL pointer or a NULL value is handled in a same way as if the predicate evaluated to False by not returning a result; wherein the two-valued logic system simulates tri-valued logic and the query system does not terminate abnormally if a NULL pointer is traversed.
Claim 65
Dependent Claim
24 words
The system of claim 45, wherein the means for processing further comprises means for transforming a quantified subquery, if any, into an existential form.
Claim 66
Dependent Claim
100 words
The system of claim 45, wherein the means for applying null tests further comprises: means for applying an IS NOT NULL predicate to each node in a path expression of the resulting predicate; means for AND'ing each node having the IS NOT NULL predicate applied to it; means for interpreting a semantic of the IS NOT NULL as being TRUE if the path expression does not have a node which is a NULL pointer; and means for interpreting the semantic of the IS NOT NULL as being FALSE if the path expression has a node which is a NULL pointer.
Claim 67
Dependent Claim
70 words
A computer program on a computer usable medium for controlling a processing of a query by a query system, the program comprising: program code means for providing, in an environment where NULL values are unsupported, a tri-valued logic interpretation of predicates involving subqueries having a capability to have NULL pointers; and program code means for protecting the query system from abnormal termination due to dereferencing one of the NULL pointers.
Claim 68
Dependent Claim
70 words
A computer program on a computer usable medium for controlling a processing of a query by a query system, the program comprising: program code means for providing, in an environment where NULL values are unsupported, a tri-valued logic interpretation of predicates involving subqueries having a capability to have NULL pointers; and program code means for protecting the query system from abnormal termination due to dereferencing one of the NULL pointers.
Claim 69
Dependent Claim
168 words
A computer program on a computer usable medium for controlling a processing of a query by a query system, the program comprising: program code means for controlling the processing, in an environment where NULL values are not supported, of a predicate having a subquery having a capability to have NULL pointers, the means for controlling the processing further comprising: program code means for employing a technique to handle each occurrence of a negative predicate, if any, as a logically equivalent positive predicate; program code means for applying null tests to each resulting predicate; and program code means for causing an interpretation of the semantics of the evaluation of the NULL tested resulting predicate such that a presence of a NULL pointer or a NULL value is handled in a same way as if the predicate evaluated to False by not returning a result; wherein a two-valued logic system is enabled to simulate tri-valued logic and the query system does not terminate abnormally if a NULL pointer is traversed.
Claim 70
Dependent Claim
168 words
A computer program on a computer usable medium for controlling a processing of a query by a query system, the program comprising: program code means for controlling the processing, in an environment where NULL values are not supported, of a predicate having a subquery having a capability to have NULL pointers, the means for controlling the processing further comprising: program code means for employing a technique to handle each occurrence of a negative predicate, if any, as a logically equivalent positive predicate; program code means for applying null tests to each resulting predicate; and program code means for causing an interpretation of the semantics of the evaluation of the NULL tested resulting predicate such that a presence of a NULL pointer or a NULL value is handled in a same way as if the predicate evaluated to False by not returning a result; wherein a two-valued logic system is enabled to simulate tri-valued logic and the query system does not terminate abnormally if a NULL pointer is traversed.
Claim 71
Dependent Claim
28 words
The system of claim 49, wherein the program code means for processing further comprises program code means for transforming a quantified subquery, if any, into an existential form.