-
Notifications
You must be signed in to change notification settings - Fork 590
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BUG/CLN: Fix predicates on Selections on Joins #1149
Conversation
42a5690
to
43961a9
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1, much cleaner this way
68d40f1
to
0c3924c
Compare
338ead8
to
36b2355
Compare
36b2355
to
da6d646
Compare
3bba9a6
to
3daef3f
Compare
| } | ||
|
|
||
|
|
||
| LEFT_JOIN_SUFFIX = '_ibis_left_{}'.format(ibis.util.guid()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should these be functions? so the guid is on demand? (IOW what if you do a join of a join)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This isn't an issue because by the time the next join is executed we've removed this suffix. I have some tests for this: test_multi_join_with_post_expression_filter.
b9bb874
to
354582a
Compare
Also refactors the code in the projection execution out into a couple of multipledispatch cases for each kind of projection.
354582a
to
d76b2a8
Compare
The motivation for this PR is twofold
execute_selection_dataframefunction because it was getting rather large and unreadable.The bug in #1136 was occurring due to the fact that the predicates in the
Selectionwere not being evaluated against thedataargument which is the result of the joined data. This doesn't fail on non-Joinselections because there's no possible ambiguity regarding which column to select. The solution is to map each root table in each predicate todata, therefore evaluating the predicate against the joined data.Closes #1136.