TanStack

BTreeIndex

Class: BTreeIndex<TKey>

Defined in: packages/db/src/indexes/btree-index.ts:44

B+Tree index for sorted data with range queries This maintains items in sorted order and provides efficient range operations

Extends

Type Parameters

TKey

TKey extends string | number = string | number

Constructors

Constructor

ts
new BTreeIndex<TKey>(
   id, 
   expression, 
   name?, 
options?): BTreeIndex<TKey>;

Defined in: packages/db/src/indexes/btree-index.ts:67

Parameters

id

number

expression

BasicExpression

name?

string

options?

any

Returns

BTreeIndex<TKey>

Overrides

BaseIndex.constructor

Properties

compareOptions

ts
protected compareOptions: CompareOptions;

Defined in: packages/db/src/indexes/base-index.ts:122

Inherited from

BaseIndex.compareOptions


expression

ts
readonly expression: BasicExpression;

Defined in: packages/db/src/indexes/base-index.ts:120

Inherited from

BaseIndex.expression


hasCustomComparator

ts
protected hasCustomComparator: boolean = false;

Defined in: packages/db/src/indexes/base-index.ts:128

Set by subclasses when constructed with a user-supplied comparator, whose ordering may not match the WHERE evaluator's relational operators.

Inherited from

BaseIndex.hasCustomComparator


id

ts
readonly id: number;

Defined in: packages/db/src/indexes/base-index.ts:118

Inherited from

BaseIndex.id


name?

ts
readonly optional name: string;

Defined in: packages/db/src/indexes/base-index.ts:119

Inherited from

BaseIndex.name


supportedOperations

ts
readonly supportedOperations: Set<"eq" | "gt" | "gte" | "lt" | "lte" | "in" | "like" | "ilike">;

Defined in: packages/db/src/indexes/btree-index.ts:47

Overrides

BaseIndex.supportedOperations

Accessors

keyCount

Get Signature

ts
get keyCount(): number;

Defined in: packages/db/src/indexes/btree-index.ts:277

Gets the number of indexed keys

Returns

number

Overrides

BaseIndex.keyCount


supportsRangeOptimization

Get Signature

ts
get supportsRangeOptimization(): boolean;

Defined in: packages/db/src/indexes/base-index.ts:193

Whether range lookups (gt/gte/lt/lte) on this index can be trusted to return every matching key. Range traversal relies on the index ordering, so it is unsafe when the index uses a custom comparator, whose order may not match the WHERE evaluator's relational operators. Callers must fall back to a full scan when this is false.

Returns

boolean

Inherited from

BaseIndex.supportsRangeOptimization

Methods

add()

ts
add(key, item): void;

Defined in: packages/db/src/indexes/btree-index.ts:98

Adds a value to the index

Parameters

key

TKey

item

any

Returns

void

Overrides

BaseIndex.add


addRangeValue()

ts
protected addRangeValue(value): void;

Defined in: packages/db/src/indexes/base-index.ts:197

Parameters

value

unknown

Returns

void

Inherited from

BaseIndex.addRangeValue


build()

ts
build(entries): void;

Defined in: packages/db/src/indexes/btree-index.ts:225

Builds the index from a collection of entries

Parameters

entries

Iterable<[TKey, any]>

Returns

void

Overrides

BaseIndex.build


canOptimizeRangeFor()

ts
canOptimizeRangeFor(value): boolean;

Defined in: packages/db/src/indexes/base-index.ts:219

Whether the live values in this index share the predicate operand's relational domain. Mixed domains can sort differently in the index and WHERE evaluator, which can make a range lookup omit matching rows.

Parameters

value

unknown

Returns

boolean

Inherited from

BaseIndex.canOptimizeRangeFor


clear()

ts
clear(): void;

Defined in: packages/db/src/indexes/btree-index.ts:236

Clears all data from the index

Returns

void

Overrides

BaseIndex.clear


clearRangeValues()

ts
protected clearRangeValues(): void;

Defined in: packages/db/src/indexes/base-index.ts:215

Returns

void

Inherited from

BaseIndex.clearRangeValues


equalityLookup()

ts
equalityLookup(value): Set<TKey>;

Defined in: packages/db/src/indexes/btree-index.ts:286

Performs an equality lookup

Parameters

value

any

Returns

Set<TKey>

Overrides

BaseIndex.equalityLookup


evaluateIndexExpression()

ts
protected evaluateIndexExpression(item): any;

Defined in: packages/db/src/indexes/base-index.ts:276

Parameters

item

any

Returns

any

Inherited from

BaseIndex.evaluateIndexExpression


inArrayLookup()

ts
inArrayLookup(values): Set<TKey>;

Defined in: packages/db/src/indexes/btree-index.ts:431

Performs an IN array lookup

Parameters

values

any[]

Returns

Set<TKey>

Overrides

BaseIndex.inArrayLookup


initialize()

ts
protected initialize(_options?): void;

Defined in: packages/db/src/indexes/btree-index.ts:93

Parameters

_options?

BTreeIndexOptions

Returns

void

Overrides

BaseIndex.initialize


lookup()

ts
lookup(operation, value): Set<TKey>;

Defined in: packages/db/src/indexes/btree-index.ts:246

Performs a lookup operation

Parameters

operation

"eq" | "gt" | "gte" | "lt" | "lte" | "in" | "like" | "ilike"

value

any

Returns

Set<TKey>

Overrides

BaseIndex.lookup


matchesCompareOptions()

ts
matchesCompareOptions(compareOptions): boolean;

Defined in: packages/db/src/indexes/base-index.ts:241

Checks if the compare options match the index's compare options. The direction is ignored because the index can be reversed if the direction is different.

Parameters

compareOptions

CompareOptions

Returns

boolean

Inherited from

BaseIndex.matchesCompareOptions


matchesDirection()

ts
matchesDirection(direction): boolean;

Defined in: packages/db/src/indexes/base-index.ts:270

Checks if the index matches the provided direction.

Parameters

direction

OrderByDirection

Returns

boolean

Inherited from

BaseIndex.matchesDirection


matchesField()

ts
matchesField(fieldPath): boolean;

Defined in: packages/db/src/indexes/base-index.ts:229

Parameters

fieldPath

string[]

Returns

boolean

Inherited from

BaseIndex.matchesField


rangeQuery()

ts
rangeQuery(options): Set<TKey>;

Defined in: packages/db/src/indexes/btree-index.ts:295

Performs a range query with options This is more efficient for compound queries like "WHERE a > 5 AND a < 10"

Parameters

options

BTreeRangeQueryOptions = {}

Returns

Set<TKey>

Overrides

BaseIndex.rangeQuery


rangeQueryReversed()

ts
rangeQueryReversed(options): Set<TKey>;

Defined in: packages/db/src/indexes/base-index.ts:175

Parameters

options

BTreeRangeQueryOptions = {}

Returns

Set<TKey>

Inherited from

BaseIndex.rangeQueryReversed


remove()

ts
remove(key, item): void;

Defined in: packages/db/src/indexes/btree-index.ts:146

Removes a value from the index

Parameters

key

TKey

item

any

Returns

void

Overrides

BaseIndex.remove


removeRangeValue()

ts
protected removeRangeValue(value): void;

Defined in: packages/db/src/indexes/base-index.ts:206

Parameters

value

unknown

Returns

void

Inherited from

BaseIndex.removeRangeValue


supports()

ts
supports(operation): boolean;

Defined in: packages/db/src/indexes/base-index.ts:189

Parameters

operation

"eq" | "gt" | "gte" | "lt" | "lte" | "in" | "like" | "ilike"

Returns

boolean

Inherited from

BaseIndex.supports


take()

ts
take(
   n, 
   from, 
   filterFn?): TKey[];

Defined in: packages/db/src/indexes/btree-index.ts:377

Returns the next n items after the provided item.

Parameters

n

number

The number of items to return

from

any

The item to start from (exclusive).

filterFn?

(key) => boolean

Returns

TKey[]

The next n items after the provided key.

Overrides

BaseIndex.take


takeFromStart()

ts
takeFromStart(n, filterFn?): TKey[];

Defined in: packages/db/src/indexes/btree-index.ts:390

Returns the first n items from the beginning.

Parameters

n

number

The number of items to return

filterFn?

(key) => boolean

Optional filter function

Returns

TKey[]

The first n items

Overrides

BaseIndex.takeFromStart


takeReversed()

ts
takeReversed(
   n, 
   from, 
   filterFn?): TKey[];

Defined in: packages/db/src/indexes/btree-index.ts:402

Returns the next n items before the provided item (in descending order).

Parameters

n

number

The number of items to return

from

any

The item to start from (exclusive). Required.

filterFn?

(key) => boolean

Returns

TKey[]

The next n items before the provided key.

Overrides

BaseIndex.takeReversed


takeReversedFromEnd()

ts
takeReversedFromEnd(n, filterFn?): TKey[];

Defined in: packages/db/src/indexes/btree-index.ts:419

Returns the last n items from the end.

Parameters

n

number

The number of items to return

filterFn?

(key) => boolean

Optional filter function

Returns

TKey[]

The last n items

Overrides

BaseIndex.takeReversedFromEnd


update()

ts
update(
   key, 
   oldItem, 
   newItem): void;

Defined in: packages/db/src/indexes/btree-index.ts:192

Updates a value in the index

Parameters

key

TKey

oldItem

any

newItem

any

Returns

void

Overrides

BaseIndex.update