Skip to content

Commit fc1aad9

Browse files
authored
Fix flexi joins (#228)
1 parent 2b3b308 commit fc1aad9

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

ext/GeometryOpsFlexiJoinsExt/GeometryOpsFlexiJoinsExt.jl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,12 @@ FlexiJoins.supports_mode(::FlexiJoins.Mode.Tree, ::FlexiJoins.ByPred{F}, datas)
2828

2929
FlexiJoins.prepare_for_join(::FlexiJoins.Mode.Tree, X, cond::FlexiJoins.ByPred{<: GO_DE9IM_FUNCS}) = (X, SortTileRecursiveTree.STRtree(map(cond.Rf, X)))
3030
function FlexiJoins.findmatchix(::FlexiJoins.Mode.Tree, cond::FlexiJoins.ByPred{F}, ix_a, a, (B, tree)::Tuple, multi::typeof(identity)) where F <: GO_DE9IM_FUNCS
31+
# Implementation note:
32+
# here, `a` is a row, and `b` is the full table.
33+
# We extract the relevant columns using cond.Lf and cond.Rf.
3134
idxs = SortTileRecursiveTree.query(tree, cond.Lf(a))
3235
intersecting_idxs = filter!(idxs) do idx
33-
cond.pred(a, cond.Rf(B[idx]))
36+
cond.pred(cond.Lf(a), cond.Rf(B[idx]))
3437
end
3538
return intersecting_idxs
3639
end

0 commit comments

Comments
 (0)