-
Notifications
You must be signed in to change notification settings - Fork 1k
cross join, #1717 #4544
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
base: master
Are you sure you want to change the base?
cross join, #1717 #4544
Conversation
|
Cool, this really has been missing! I'll leave my overall comments here and a couple more specific ones in appropriate places: Also with an eye towards #852, I think it would be better to check for a cross join right at the top of the I'm not sold on the interface. Passing This should then also be available through |
|
@tlapak Thanks for comments
What about any other code that calls bmerge? It won't support cross join anymore, it will need same code from
This is a perfect example, agree it make sense to use I will wait for some more feedback before making decision on API. |
|
I agree with Václav
|
tlapak
left a comment
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.
I hadn't realized that I hadn't submitted these comments...
I looked at mergelist and you have it separate there at the moment, right? I prefer to be more explicit and branch early when the branches have no real code in common. Wrapping the bit that returns the parameters for the cross join in it's own function would be nice. And then a cross join is so different from an inner join and bmerge.c says right at the top "Implements binary search". So I wouldn't expect bmerge to give me a cross join as well. I think your suggestion from mergelist to use Just my thoughts on the point.
I've been ruminating on the interface a bit and am fully in favor of the chaotic good option...
That's the default value. It's not tested for NULL but I would always expect that explicitly passing the default value can't change the behaviour. |
|
As Jan mentions, The SQL I also like the idea of separating the cross join from |
|
I updated branch little bit and addressed some of feedback provided. I am leaving it now till we will have mergelist branch merged to master, so we can re-use |
On hold till #4370 merged, so we can re-use
dtmergehere.cross join short circuit in bmerge by
on=character()afterbase::merge