-
Notifications
You must be signed in to change notification settings - Fork 58
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
Enable merging of LocalVocab
s
#1310
Conversation
There are still some issues with the tests, but overall, this should work.
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #1310 +/- ##
==========================================
+ Coverage 88.33% 88.38% +0.04%
==========================================
Files 313 313
Lines 28428 28444 +16
Branches 3133 3138 +5
==========================================
+ Hits 25111 25139 +28
+ Misses 2176 2168 -8
+ Partials 1141 1137 -4 ☔ View full report in Codecov by Sentry. |
…cal-vocab # Conflicts: # test/LocalVocabTest.cpp
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-1 with Johannes, really nice and elegant, we discussed some changes and missing tests
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.
Awesome, looking forward to the remaining changes
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.
Another round with Johannes, almost done
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.
Awesome, just one typo left
Quality Gate passedIssues Measures |
So far, operations with more than one operand (like joins) required that at most one operand had a non-empty local vocabulary. The reason was simply to avoid the need for merging two or more local vocabularies and the corresponding hassle of having to rewrite the local vocab indexes in one or more of the operand result tables.
Now local vocab IDs are actually pointers to 16-byte aligned strings (after removing the datatype bits, which cost 4 bits in precision, hence the 16-byte alignment). Each
LocalVocab
now maintains sets of such pointers and when two or moreLocalVocab
s are merged, we simply merge the respective sets. When comparing two local vocab IDs, the pointers are dereferenced.This fixes #1242.