Skip to content

Bypass AlgebraicValue for datastore updates and bsatn based index scans#4311

Open
Centril wants to merge 5 commits intomasterfrom
centril/index-bypass-av
Open

Bypass AlgebraicValue for datastore updates and bsatn based index scans#4311
Centril wants to merge 5 commits intomasterfrom
centril/index-bypass-av

Conversation

@Centril
Copy link
Contributor

@Centril Centril commented Feb 16, 2026

Description of Changes

The commits in order do:

  1. Some preparatory work for later commits, adding Deserialize for Packed, SumTag
  2. Removes a variant from TypedIndexPointIter and fixes the naming to actually reflect what the variants are/do.
  3. Renames UniqueMap and Multimap to UniqueBTreeIndex and BTreeIndex respectively.
  4. Introduces types TypedIndexKey and IndexKey to free the table index code on its direct dependency on AlgebraicValue,
    allowing index scans by BSATN, RowRefs as well without first going through AlgebraicValue.
    This also has the effect of optimizing string scans by avoiding allocating in AlgebraicValue::String.
    This unlocks a byte-array based future optimization for all-primitive-multi-column indexes.
    Also in the future, this will enable optimizing iter_by_col_eq, which is used by the frequent connect/disconnect logic.

API and ABI breaking changes

None

Expected complexity level and risk

3? Unsafe code and very load bearing code.

Testing

Should be covered by existing tests.

@Centril Centril force-pushed the centril/index-bypass-av branch from 19f4d3e to 4c5d2b4 Compare February 16, 2026 22:40
@Centril Centril force-pushed the centril/index-bypass-av branch from 4c5d2b4 to 06e9145 Compare February 17, 2026 08:17
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.

1 participant