CPC G06F 16/24544 (2019.01) [G06F 16/2282 (2019.01); G06F 16/248 (2019.01)] | 20 Claims |
1. A system, comprising:
a plurality of nodes implementing a processing cluster, respectively comprising at least one processor and a memory;
wherein the processing cluster is configured to:
receiving a query;
parse the query to identify disjunctive equijoin condition comprising a plurality of equijoins between respective columns of different tables, wherein the disjunctive equijoin condition is specified in the query;
generate a plan to perform the query, wherein the query plan comprises operations to:
create a filter data structure for distinct ones of the plurality of equijoins, wherein the filter data structure is populated as part of a scan operation of the respective column that is identified as a build side of the distinct ones of the plurality of equijoins; and
apply the filter data structure to tuples obtained by a further scan operation of a different one of the respective columns that is identified as a probe side of the distinct ones of the plurality of equijoins, wherein application of the filter removes one or more of the tuples from a result of the query according to an evaluation of the filter data structure that determines that a corresponding tuple for the one or more tuples is not present in the respective column identified as the build side;
execute the plan to perform the query; and
return the result of the query.
|