Skip to content
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 LocalVocabs #1310

Merged
merged 23 commits into from
Apr 12, 2024
Merged

Conversation

joka921
Copy link
Member

@joka921 joka921 commented Mar 21, 2024

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 more LocalVocabs are merged, we simply merge the respective sets. When comparing two local vocab IDs, the pointers are dereferenced.

This fixes #1242.

Copy link

codecov bot commented Mar 21, 2024

Codecov Report

Attention: Patch coverage is 98.73418% with 1 lines in your changes are missing coverage. Please review.

Project coverage is 88.38%. Comparing base (01e5c61) to head (814e172).

Files Patch % Lines
src/engine/TransitivePath.cpp 0.00% 1 Missing ⚠️
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.
📢 Have feedback on the report? Share it here.

Copy link
Member

@hannahbast hannahbast left a 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

@hannahbast hannahbast marked this pull request as ready for review April 10, 2024 19:49
Copy link
Member

@hannahbast hannahbast left a 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

@hannahbast hannahbast changed the title Merge local vocab Enable merging of LocalVocabs Apr 11, 2024
Copy link
Member

@hannahbast hannahbast left a 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

Copy link
Member

@hannahbast hannahbast left a 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

Copy link

sonarqubecloud bot commented Apr 11, 2024

Quality Gate Passed Quality Gate passed

Issues
4 New issues
3 Accepted issues

Measures
0 Security Hotspots
No data about Coverage
0.0% Duplication on New Code

See analysis details on SonarCloud

@joka921 joka921 merged commit e52ad43 into ad-freiburg:master Apr 12, 2024
19 checks passed
@joka921 joka921 deleted the merge-local-vocab branch April 12, 2024 06:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

"Merging of non-empty local vocabularies" error
2 participants