Defined in: packages/db/src/indexes/basic-index.ts:43
Basic index using Map + sorted Array.
Simpler and smaller than BTreeIndex, good for read-heavy workloads. Use BTreeIndex for write-heavy workloads with large collections.
TKey extends string | number = string | number
new BasicIndex<TKey>(
id,
expression,
name?,
options?): BasicIndex<TKey>;Defined in: packages/db/src/indexes/basic-index.ts:64
number
string
any
BasicIndex<TKey>
protected compareOptions: CompareOptions;Defined in: packages/db/src/indexes/base-index.ts:102
readonly expression: BasicExpression;Defined in: packages/db/src/indexes/base-index.ts:96
protected hasCustomComparator: boolean = false;Defined in: packages/db/src/indexes/base-index.ts:108
Set by subclasses when constructed with a user-supplied comparator, whose ordering may not match the WHERE evaluator's relational operators.
readonly id: number;Defined in: packages/db/src/indexes/base-index.ts:94
protected lastUpdated: Date;Defined in: packages/db/src/indexes/base-index.ts:101
protected lookupCount: number = 0;Defined in: packages/db/src/indexes/base-index.ts:99
readonly optional name: string;Defined in: packages/db/src/indexes/base-index.ts:95
readonly supportedOperations: Set<"eq" | "gt" | "gte" | "lt" | "lte" | "in" | "like" | "ilike">;Defined in: packages/db/src/indexes/basic-index.ts:46
protected totalLookupTime: number = 0;Defined in: packages/db/src/indexes/base-index.ts:100
get indexedKeysSet(): Set<TKey>;Defined in: packages/db/src/indexes/basic-index.ts:519
Set<TKey>
get keyCount(): number;Defined in: packages/db/src/indexes/basic-index.ts:273
Gets the number of indexed keys
number
get orderedEntriesArray(): [any, Set<TKey>][];Defined in: packages/db/src/indexes/basic-index.ts:523
[any, Set<TKey>][]
get orderedEntriesArrayReversed(): [any, Set<TKey>][];Defined in: packages/db/src/indexes/basic-index.ts:530
[any, Set<TKey>][]
BaseIndex.orderedEntriesArrayReversed
get supportsRangeOptimization(): boolean;Defined in: packages/db/src/indexes/base-index.ts:163
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
get valueMapData(): Map<any, Set<TKey>>;Defined in: packages/db/src/indexes/basic-index.ts:539
Map<any, Set<TKey>>
add(key, item): void;Defined in: packages/db/src/indexes/basic-index.ts:83
Adds a value to the index
TKey
any
void
build(entries): void;Defined in: packages/db/src/indexes/basic-index.ts:191
Builds the index from a collection of entries
Iterable<[TKey, any]>
void
clear(): void;Defined in: packages/db/src/indexes/basic-index.ts:228
Clears all data from the index
void
equalityLookup(value): Set<TKey>;Defined in: packages/db/src/indexes/basic-index.ts:280
Performs an equality lookup - O(1)
any
Set<TKey>
protected evaluateIndexExpression(item): any;Defined in: packages/db/src/indexes/base-index.ts:214
any
any
BaseIndex.evaluateIndexExpression
getStats(): IndexStats;Defined in: packages/db/src/indexes/base-index.ts:202
inArrayLookup(values): Set<TKey>;Defined in: packages/db/src/indexes/basic-index.ts:504
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:78
void
lookup(operation, value): Set<TKey>;Defined in: packages/db/src/indexes/basic-index.ts:238
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:179
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:198
Checks if the index matches the provided direction.
boolean
matchesField(fieldPath): boolean;Defined in: packages/db/src/indexes/base-index.ts:167
string[]
boolean
rangeQuery(options): Set<TKey>;Defined in: packages/db/src/indexes/basic-index.ts:288
Performs a range query using binary search - O(log n + m)
RangeQueryOptions = {}
Set<TKey>
rangeQueryReversed(options): Set<TKey>;Defined in: packages/db/src/indexes/basic-index.ts:349
Performs a reversed range query
RangeQueryOptions = {}
Set<TKey>
remove(key, item): void;Defined in: packages/db/src/indexes/basic-index.ts:124
Removes a value from the index
TKey
any
void
supports(operation): boolean;Defined in: packages/db/src/indexes/base-index.ts:159
"eq" | "gt" | "gte" | "lt" | "lte" | "in" | "like" | "ilike"
boolean
take(
n,
from?,
filterFn?): TKey[];Defined in: packages/db/src/indexes/basic-index.ts:374
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:459
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:416
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:478
Returns the first n items in reverse sorted order (from the end)
number
(key) => boolean
TKey[]
protected trackLookup(startTime): void;Defined in: packages/db/src/indexes/base-index.ts:220
number
void
update(
key,
oldItem,
newItem): void;Defined in: packages/db/src/indexes/basic-index.ts:162
Updates a value in the index
TKey
any
any
void
protected updateTimestamp(): void;Defined in: packages/db/src/indexes/base-index.ts:226
void