Defined in: packages/db/src/indexes/basic-index.ts:39
Basic index using Map + sorted Array.
Map for O(1) equality lookups
Sorted Array for O(log n) range queries via binary search
O(n) updates to maintain sort order
Simpler and smaller than BTreeIndex, good for read-heavy workloads. Use BTreeIndex for write-heavy workloads with large collections.
BaseIndex<TKey>
TKey extends string | number = string | number
new BasicIndex<TKey>(
id,
expression,
name?,
options?): BasicIndex<TKey>;Defined in: packages/db/src/indexes/base-index.ts:139
number
string
any
BasicIndex<TKey>
protected readonly compareFn: (a, b) => number;Defined in: packages/db/src/indexes/base-index.ts:130
Orders indexed values. Every result is checked, because a custom comparator or custom collation may be supplied by the user.
any
any
number
protected readonly compareOptions: CompareOptions;Defined in: packages/db/src/indexes/base-index.ts:125
readonly expression: BasicExpression;Defined in: packages/db/src/indexes/base-index.ts:123
protected readonly hasCustomComparator: boolean;Defined in: packages/db/src/indexes/base-index.ts:136
A user-supplied comparator's ordering may not match the WHERE evaluator's relational operators.
readonly id: number;Defined in: packages/db/src/indexes/base-index.ts:121
readonly optional name: string;Defined in: packages/db/src/indexes/base-index.ts:122
readonly supportedOperations: Set<"eq" | "gt" | "gte" | "lt" | "lte" | "in" | "like" | "ilike">;Defined in: packages/db/src/indexes/basic-index.ts:42
get keyCount(): number;Defined in: packages/db/src/indexes/basic-index.ts:271
Gets the number of indexed keys
number
get supportsRangeOptimization(): boolean;Defined in: packages/db/src/indexes/base-index.ts:205
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.
boolean
BaseIndex.supportsRangeOptimization
add(key, item): void;Defined in: packages/db/src/indexes/basic-index.ts:63
Adds a value to the index
TKey
any
void
protected addRangeValue(value): void;Defined in: packages/db/src/indexes/base-index.ts:209
unknown
void
build(entries): void;Defined in: packages/db/src/indexes/basic-index.ts:194
Builds the index from a collection of entries
Iterable<[TKey, any]>
void
canOptimizeRangeFor(value): boolean;Defined in: packages/db/src/indexes/base-index.ts:231
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.
unknown
boolean
clear(): void;Defined in: packages/db/src/indexes/basic-index.ts:230
Clears all data from the index
void
protected clearRangeValues(): void;Defined in: packages/db/src/indexes/base-index.ts:227
void
equalityLookup(value): Set<TKey>;Defined in: packages/db/src/indexes/basic-index.ts:278
Performs an equality lookup - O(1)
any
Set<TKey>
protected evaluateIndexExpression(item): any;Defined in: packages/db/src/indexes/base-index.ts:299
any
any
BaseIndex.evaluateIndexExpression
inArrayLookup(values): Set<TKey>;Defined in: packages/db/src/indexes/basic-index.ts:448
Performs an IN array lookup - O(k) where k is values.length
any[]
Set<TKey>
protected initialize(_options?): void;Defined in: packages/db/src/indexes/basic-index.ts:58
void
lookup(operation, value): Set<TKey>;Defined in: packages/db/src/indexes/basic-index.ts:240
Performs a lookup operation
"eq" | "gt" | "gte" | "lt" | "lte" | "in" | "like" | "ilike"
any
Set<TKey>
matchesCompareOptions(compareOptions): boolean;Defined in: packages/db/src/indexes/base-index.ts:253
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.
CompareOptions
boolean
BaseIndex.matchesCompareOptions
matchesDirection(direction): boolean;Defined in: packages/db/src/indexes/base-index.ts:293
Checks if the index matches the provided direction.
boolean
matchesField(fieldPath): boolean;Defined in: packages/db/src/indexes/base-index.ts:241
string[]
boolean
rangeQuery(options): Set<TKey>;Defined in: packages/db/src/indexes/basic-index.ts:286
Performs a range query using binary search - O(log n + m)
RangeQueryOptions = {}
Set<TKey>
rangeQueryReversed(options): Set<TKey>;Defined in: packages/db/src/indexes/base-index.ts:187
Set<TKey>
remove(key, item): void;Defined in: packages/db/src/indexes/basic-index.ts:103
Removes a value from the index
TKey
any
void
protected removeRangeValue(value): void;Defined in: packages/db/src/indexes/base-index.ts:218
unknown
void
supports(operation): boolean;Defined in: packages/db/src/indexes/base-index.ts:201
"eq" | "gt" | "gte" | "lt" | "lte" | "in" | "like" | "ilike"
boolean
take(
n,
from,
filterFn?): TKey[];Defined in: packages/db/src/indexes/basic-index.ts:350
Returns the next n items in sorted order
number
any
(key) => boolean
TKey[]
takeFromStart(n, filterFn?): TKey[];Defined in: packages/db/src/indexes/basic-index.ts:397
Returns the first n items in sorted order (from the start)
number
(key) => boolean
TKey[]
takeReversed(
n,
from,
filterFn?): TKey[];Defined in: packages/db/src/indexes/basic-index.ts:371
Returns the next n items in reverse sorted order
number
any
(key) => boolean
TKey[]
takeReversedFromEnd(n, filterFn?): TKey[];Defined in: packages/db/src/indexes/basic-index.ts:404
Returns the first n items in reverse sorted order (from the end)
number
(key) => boolean
TKey[]
update(
key,
oldItem,
newItem): void;Defined in: packages/db/src/indexes/basic-index.ts:160
Updates a value in the index
TKey
any
any
void