Transitive local predicated across multiple joins
AssigneeMicro Focus LLC
InventorsSreenath Bodagala, James Laurence Finnerty
Life of this patent
Estimating the term…
Abstract
In an example, a transitive local predicates may be inferred across multiple joins, wherein the multiple outer joins include multiple outer joins. A query connecting tables by the multiple joins is analyzed. A local predicate may then be identified from the analyzed query and may be determined to be either a where-clause local predicate or an on-clause local predicate. Accordingly, a transitive local predicate may be inferred across a selection of the tables based on the determination.
Claims20
A method to infer transitive local predicates across multiple joins, comprising:
- analyzing a query to a database connecting tables by the multiple joins, wherein the multiple joins include multiple outer joins;
- identifying, utilizing a processor, a local predicate from analyzing the query;
- determining whether the local predicate is a where-clause local predicate or an on-clause local predicate, wherein the where-clause local predicate is a local predicate appearing in a where-clause of a Structured Query Language (SQL) statement and the on-clause local predicate is a local predicate appearing in an on-clause of a SQL statement;
- determining whether the local predicate is a strong local predicate;
- determining whether a plurality of join predicates are equality join predicates;
- inferring a transitive local predicate across a selection of the tables based on the determining whether the local predicate is a where-clause local predicate or an on-clause local predicate, the determining whether the local predicate is a strong local predicate, and the determining whether the plurality of join predicates are equality join predicates;
- and
- performing, utilizing the transitive local predicate, join operations for the query to the database.
A system to infer transitive local predicates across multiple joins, comprising:
- a query evaluator engine, executed by a processor, to:
- analyze a query connecting tables by the multiple joins, wherein the multiple joins include multiple outer joins,
- identify a local predicate from analyzing the query,
- determine whether the local predicate is a where-clause local predicate or an on-clause local predicate, wherein the where-clause local predicate is a local predicate appearing in a where-clause of a Structured Query Language (SQL) statement and the on-clause local predicate is a local predicate appearing in an on-clause of a SQL statement;
- determine whether the local predicate is a strong local predicate;
- and
- determine whether a plurality of join predicates are equality join predicates;
- and
- a predicate generator engine to infer a transitive local predicate across a selection of the tables based on the determination whether the local predicate is a where-clause local predicate or an on-clause local predicate, the determination whether the local predicate is a strong local predicate, and the determination whether the plurality of join predicates are equality join predicates.
A non-transitory computer readable medium including machine readable instructions executable by a processor to:
- analyze a query connecting tables by multiple joins, wherein the multiple joins include multiple outer joins;
- identify a local predicate from analyzing the query;
- determine whether the local predicate is a where-clause local predicate or an on-clause local predicate, wherein the where-clause local predicate is a local predicate appearing in a where-clause of a Structured Query Language (SQL) statement and the on-clause local predicate is a local predicate appearing in an on-clause of the SQL statement;
- determine whether the local predicate is a strong local predicate;
- determine whether a plurality of join predicates are equality join predicates;
- and
- infer a transitive local predicate across a selection of the tables based on the determination whether the local predicate is a where-clause local predicate or an on-clause local predicate, the determination whether the local predicate is a strong local predicate, and the determination whether the plurality of join predicates are equality join predicates;
- and
- perform, utilizing the transitive local predicate, join operations relating to the query to the database.
Dependencies are inferred from the claim text.