Optimization in computing meets and joins

This commit is contained in:
Brandon Rozek 2025-12-12 14:49:32 -05:00
parent bf2735023f
commit 51c26dd9fc

View file

@ -129,6 +129,12 @@ class OrderTable:
candidates = X.intersection(Y)
if not candidates:
return None
if len(candidates) == 1:
return next(iter(candidates))
# Grab all elements greater than each of the candidates
candidate_ge_maps = (self.ge_map[candidate] for candidate in candidates)
common_ge_values = reduce(set.intersection, candidate_ge_maps)
@ -147,6 +153,12 @@ class OrderTable:
candidates = X.intersection(Y)
if not candidates:
return None
if len(candidates) == 1:
return next(iter(candidates))
# Grab all elements smaller than each of the candidates
candidate_le_maps = (self.le_map[candidate] for candidate in candidates)
common_le_values = reduce(set.intersection, candidate_le_maps)