Closed Sicheng-Pan closed 1 month ago
Please leverage this checklist to ensure your code review is thorough before approving
This stack of pull requests is managed by Graphite. Learn more about stacking.
Join @Sicheng-Pan and the rest of your teammates on Graphite
Makes sense to me. Just nits, defer to @sanketkedia on logic
Urge you to add more comments for SignedRoaringBitmap as it is not obvious as to what is its purpose. Otherwise LGTM!
I've moved it to a separate file and added a block comment with example to show its usage. Hopefully that would clarify its usage a bit for anyone reading the code in the future.
Description of changes
Summarize the changes made by this PR.
Improvements & Bug fixes
MetadataValue
so that the floating type isf64
and the integer type isi64
, which is consistent with proto definitions.WhereComparison
so that it can be handled with less code (in the subsequent PRs).DirectWhereDocumentComparison
as a variant ofWhere
enum. This unifies theWhere
andWhereDocument
, which facilitates a shared evaluation pipeline (in the subsequent PRs).New functionality
SignedRoaringBitmap
which captures the idea of performing conjunction and disjunction on bitmaps without the knowledge of the whole domain. This is useful because in our case the domain is decided by the entries in the database that is not yet deleted, and currently it is costly to scan over the entire collection to determine existing entries. Since we would like to support$ne
and$nin
, whose results depend on the domain, we hope to delay the evaluation of the negation unless it is necessary to do so, and do it only once.Test plan
How are these changes tested?
This is guaranteed to break existing tests. Only the last PR in the stack addresses the breaking changes, and should pass the existing tests. In particular, any test involving the query node should fail because of compilation errors.
pytest
for python,yarn test
for js,cargo test
for rustDocumentation Changes
Are all docstrings for user-facing APIs updated if required? Do we need to make documentation changes in the docs repository?
N/A