US11615086B2ActiveUtilityA1

System and method for disjunctive joins

Assignee: SNOWFLAKE INCPriority: Mar 13, 2020Filed: Aug 2, 2022Granted: Mar 28, 2023
Est. expiryMar 13, 2040(~13.6 yrs left)· nominal 20-yr term from priority
G06F 16/2456G06F 16/24554G06F 16/24556G06F 16/24537
76
PatentIndex Score
0
Cited by
36
References
20
Claims

Abstract

Joining data using a disjunctive operator is described. An example computer-implemented method can include generating a query plan for a query, wherein there is a join operator expression for each of a plurality of disjunctive predicates and each join operator expression includes at least a conjunctive predicate and a disjunctive operator. The method may also include generating a bloom filter for each of the plurality of disjunctive operators. The method may further include evaluating each of the plurality of join operator expressions using a corresponding one of the plurality of disjunctive operators and bloom filter for each of the plurality of disjunctive predicates to generate a result set.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method comprising:
 generating, with one or more processors, a query plan for a query, wherein there is a join operator expression for each of a plurality of disjunctive predicates and each join operator expression includes at least a conjunctive predicate and a disjunctive operator; 
 generating a bloom filter for each of the plurality of disjunctive operators; 
 evaluating each of the plurality of join operator expressions using a corresponding one of the plurality of disjunctive operators and bloom filter for each of the plurality of disjunctive predicates to generate a result set. 
 
     
     
       2. The method of  claim 1 , further comprising deduplicating the result set using one or more row identifiers of the plurality of disjunctive predicates. 
     
     
       3. The method of  claim 1 , wherein evaluating each of the plurality of j oin operator expressions comprises applying the bloom filter to one or more micro-partitions of a first table of each of the plurality of disjunctive predicates. 
     
     
       4. The method of  claim 3 , wherein each of the one or more micro-partitions comprises a file. 
     
     
       5. The method of  claim 1 , wherein evaluating each of the plurality of join operator expressions comprises applying the bloom filter on a row-by-row basis to a first table of each of the plurality of disjunctive predicates. 
     
     
       6. The method of  claim 1 , wherein evaluating each of the plurality of j oin operator expressions comprises filtering a second table for each of the plurality of disjunctive predicates. 
     
     
       7. The method of  claim 6 , wherein evaluating each of the plurality of j oin operator expressions further comprises performing a left side join using a join operator, a filtered first table, and the filtered second table. 
     
     
       8. A system comprising:
 one or more processors; and 
 a set of storage resources, coupled to the one or more processors, wherein the one or more processors are to:
 generate a query plan for a query, wherein there is a join operator expression for each of a plurality of disjunctive predicates and each join operator expression includes at least a conjunctive predicate and a disjunctive operator; 
 generate a bloom filter for each of the plurality of disjunctive operators; 
 evaluate each of the plurality of join operator expressions using a corresponding one of the plurality of disjunctive operators and bloom filter for each of the plurality of disjunctive predicates to generate a result set. 
 
 
     
     
       9. The system of  claim 8 , wherein the processors deduplicate the result set using one or more row identifiers of the plurality of disjunctive predicates. 
     
     
       10. The system of  claim 8 , wherein the one or more processors apply the bloom filter to one or more micro-partitions of a first table of each of the plurality of disjunctive predicates to further evaluate each of the plurality of join operator expressions. 
     
     
       11. The system of  claim 10 , wherein each of the one or more micro-partitions comprises a file. 
     
     
       12. The system of  claim 8 , wherein the processors apply the bloom filter on a row-by-row basis to a first table of each of the plurality of disjunctive predicates to further evaluate each of the plurality of join operator expressions. 
     
     
       13. The system of  claim 8 , wherein the processors filter a second table for each of the plurality of disjunctive predicates to further evaluate each of the plurality of join operator expressions. 
     
     
       14. The system of  claim 13 , wherein the processors perform a left side join using a join operator, a filtered first table, and the filtered second table to further evaluate each of the plurality of join operator expressions. 
     
     
       15. A non-transitory computer-readable medium having instruction stored thereon which, when executed by one or more processors of a computing device, cause the one or more processors to:
 generate a query plan for a query, wherein there is a join operator expression for each of a plurality of disjunctive predicates and each join operator expression includes at least a conjunctive predicate and a disjunctive operator; 
 generate a bloom filter for each of the plurality of disjunctive operators; 
 evaluate each of the plurality of join operator expressions using a corresponding one of the plurality of disjunctive operators and bloom filter for each of the plurality of disjunctive predicates to generate a result set. 
 
     
     
       16. The non-transitory machine-readable medium of  claim 15 , wherein the instructions further cause the one or more processors to deduplicate the result set using one or more row identifiers of the plurality of disjunctive predicates. 
     
     
       17. The non-transitory machine-readable medium of  claim 15 , wherein the instructions further cause the one or more processors to apply the bloom filter to one or more micro-partitions of a first table of each of the plurality of disjunctive predicates to further evaluate each of the plurality of join operator expressions. 
     
     
       18. The non-transitory machine-readable medium of  claim 17 , wherein each of the one or more micro-partitions comprises a file. 
     
     
       19. The non-transitory machine-readable medium of  claim 15 , wherein the instructions further cause the one or more processors to apply the bloom filter on a row-by-row basis to a first table of each of the plurality of disjunctive predicates to further evaluate each of the plurality of join operator expressions. 
     
     
       20. The non-transitory machine-readable medium of  claim 15 , wherein the instructions further cause the one or more processors to filter a second table for each of the plurality of disjunctive predicates to further evaluate each of the plurality of join operator expressions.

Join the waitlist — get patent alerts

Track US11615086B2 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.