-
Notifications
You must be signed in to change notification settings - Fork 184
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
join, half_join: add lower-level interfaces #327
Conversation
The structure here looks good. I had a few thoughts about ways it could be tidied, but morally things like good right now.
Your (1.) seems interesting, but maybe great to hold off on for now. At least, there is value in joining the times to allow the compaction (otherwise we probably expect a multiplicative increase in the number of outputs, as each input record hits ~idk lots of records that could be collapsed). Perhaps in some more general future we hand the cursor instance over to the closure. |
Related: I think there may be a latent bug (not yours, but I'd love to get your thoughts) where two records in I'm not sure for how long this has been here, but if the above is correct I've wrangled with it before in other implementations. It is a bit gross here because each record has a different |
Bah, nevermind. Apparently old Frank is smarter than new Frank, and pre-wrote this in there: }
cursor.rewind_vals(&storage); |
@frankmcsherry Sorry for the long silence here!
|
|
@frankmcsherry I added another commit for the lower-level Your answer to point 2 above might be applicable to |
Sorry for the latency. Things look good at the moment, but I wanted to get to your questions.
I was imagining that the method could return a
This is probably a great idea! We shifted because several diff types don't implement No rush to land things, but I think all of these are in the right direction, and even if things land we might end up iterating a bit as we use them, so don't worry much about the nits. |
@frankmcsherry I'm unsure whether the params of the "unsafe" closure make sense this way for the usages you have in mind.
Some alternatives could be:
time1
andlub(time1, time2)
separatelydiff1
anddiff2
separatelyI'm happy to move things around after some input.
If the general direction looks good, I can follow-up with the other operators.