@crvouga/sqlite-mem 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/COMPATIBILITY-AUDIT.md +199 -0
- package/COMPATIBILITY.md +93 -0
- package/LICENSE +21 -0
- package/README.md +171 -0
- package/compat/coverage.json +21896 -0
- package/compat/fts-oracle-surface.json +198 -0
- package/compat/gate-report.json +424 -0
- package/compat/requirements.json +20929 -0
- package/dist/api/database.d.ts +26 -0
- package/dist/api/database.d.ts.map +1 -0
- package/dist/api/statement.d.ts +27 -0
- package/dist/api/statement.d.ts.map +1 -0
- package/dist/ast/nodes.d.ts +451 -0
- package/dist/ast/nodes.d.ts.map +1 -0
- package/dist/constraints/check.d.ts +12 -0
- package/dist/constraints/check.d.ts.map +1 -0
- package/dist/errors/index.d.ts +12 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/executor/attach.d.ts +6 -0
- package/dist/executor/attach.d.ts.map +1 -0
- package/dist/executor/ddl.d.ts +11 -0
- package/dist/executor/ddl.d.ts.map +1 -0
- package/dist/executor/dml.d.ts +7 -0
- package/dist/executor/dml.d.ts.map +1 -0
- package/dist/executor/env.d.ts +62 -0
- package/dist/executor/env.d.ts.map +1 -0
- package/dist/executor/execute.d.ts +5 -0
- package/dist/executor/execute.d.ts.map +1 -0
- package/dist/executor/pragma.d.ts +5 -0
- package/dist/executor/pragma.d.ts.map +1 -0
- package/dist/executor/result.d.ts +18 -0
- package/dist/executor/result.d.ts.map +1 -0
- package/dist/executor/select.d.ts +7 -0
- package/dist/executor/select.d.ts.map +1 -0
- package/dist/executor/simple-select.d.ts +10 -0
- package/dist/executor/simple-select.d.ts.map +1 -0
- package/dist/executor/triggers.d.ts +12 -0
- package/dist/executor/triggers.d.ts.map +1 -0
- package/dist/executor/vtable.d.ts +13 -0
- package/dist/executor/vtable.d.ts.map +1 -0
- package/dist/expressions/context.d.ts +28 -0
- package/dist/expressions/context.d.ts.map +1 -0
- package/dist/expressions/eval.d.ts +5 -0
- package/dist/expressions/eval.d.ts.map +1 -0
- package/dist/expressions/index.d.ts +4 -0
- package/dist/expressions/index.d.ts.map +1 -0
- package/dist/expressions/like.d.ts +5 -0
- package/dist/expressions/like.d.ts.map +1 -0
- package/dist/functions/aggregate.d.ts +9 -0
- package/dist/functions/aggregate.d.ts.map +1 -0
- package/dist/functions/datetime.d.ts +3 -0
- package/dist/functions/datetime.d.ts.map +1 -0
- package/dist/functions/extensions.d.ts +8 -0
- package/dist/functions/extensions.d.ts.map +1 -0
- package/dist/functions/index.d.ts +9 -0
- package/dist/functions/index.d.ts.map +1 -0
- package/dist/functions/json.d.ts +7 -0
- package/dist/functions/json.d.ts.map +1 -0
- package/dist/functions/math.d.ts +3 -0
- package/dist/functions/math.d.ts.map +1 -0
- package/dist/functions/registry.d.ts +38 -0
- package/dist/functions/registry.d.ts.map +1 -0
- package/dist/functions/scalar.d.ts +10 -0
- package/dist/functions/scalar.d.ts.map +1 -0
- package/dist/functions/table-valued.d.ts +9 -0
- package/dist/functions/table-valued.d.ts.map +1 -0
- package/dist/functions/window.d.ts +24 -0
- package/dist/functions/window.d.ts.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12204 -0
- package/dist/index.js.map +7 -0
- package/dist/indexes/index.d.ts +16 -0
- package/dist/indexes/index.d.ts.map +1 -0
- package/dist/json/index.d.ts +8 -0
- package/dist/json/index.d.ts.map +1 -0
- package/dist/json/jsonb.d.ts +43 -0
- package/dist/json/jsonb.d.ts.map +1 -0
- package/dist/json/ops.d.ts +19 -0
- package/dist/json/ops.d.ts.map +1 -0
- package/dist/json/parse.d.ts +14 -0
- package/dist/json/parse.d.ts.map +1 -0
- package/dist/json/path.d.ts +27 -0
- package/dist/json/path.d.ts.map +1 -0
- package/dist/json/stringify.d.ts +5 -0
- package/dist/json/stringify.d.ts.map +1 -0
- package/dist/json/tvf.d.ts +14 -0
- package/dist/json/tvf.d.ts.map +1 -0
- package/dist/json/types.d.ts +30 -0
- package/dist/json/types.d.ts.map +1 -0
- package/dist/lexer/tokenize.d.ts +17 -0
- package/dist/lexer/tokenize.d.ts.map +1 -0
- package/dist/parser/index.d.ts +5 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/parser.d.ts +104 -0
- package/dist/parser/parser.d.ts.map +1 -0
- package/dist/planner/access.d.ts +43 -0
- package/dist/planner/access.d.ts.map +1 -0
- package/dist/planner/index.d.ts +4 -0
- package/dist/planner/index.d.ts.map +1 -0
- package/dist/runtime/clock.d.ts +6 -0
- package/dist/runtime/clock.d.ts.map +1 -0
- package/dist/runtime/index.d.ts +4 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/options.d.ts +19 -0
- package/dist/runtime/options.d.ts.map +1 -0
- package/dist/runtime/prng.d.ts +20 -0
- package/dist/runtime/prng.d.ts.map +1 -0
- package/dist/schema/catalog.d.ts +15 -0
- package/dist/schema/catalog.d.ts.map +1 -0
- package/dist/serialization/codec.d.ts +12 -0
- package/dist/serialization/codec.d.ts.map +1 -0
- package/dist/serialization/index.d.ts +2 -0
- package/dist/serialization/index.d.ts.map +1 -0
- package/dist/storage/database-state.d.ts +86 -0
- package/dist/storage/database-state.d.ts.map +1 -0
- package/dist/storage/index.d.ts +7 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/row.d.ts +11 -0
- package/dist/storage/row.d.ts.map +1 -0
- package/dist/storage/table.d.ts +90 -0
- package/dist/storage/table.d.ts.map +1 -0
- package/dist/transactions/manager.d.ts +20 -0
- package/dist/transactions/manager.d.ts.map +1 -0
- package/dist/types/collation.d.ts +5 -0
- package/dist/types/collation.d.ts.map +1 -0
- package/dist/types/value.d.ts +52 -0
- package/dist/types/value.d.ts.map +1 -0
- package/dist/vtable/fts/options.d.ts +35 -0
- package/dist/vtable/fts/options.d.ts.map +1 -0
- package/dist/vtable/fts/porter.d.ts +3 -0
- package/dist/vtable/fts/porter.d.ts.map +1 -0
- package/dist/vtable/fts/query.d.ts +40 -0
- package/dist/vtable/fts/query.d.ts.map +1 -0
- package/dist/vtable/fts/table.d.ts +80 -0
- package/dist/vtable/fts/table.d.ts.map +1 -0
- package/dist/vtable/fts/tokenize.d.ts +21 -0
- package/dist/vtable/fts/tokenize.d.ts.map +1 -0
- package/dist/vtable/fts5.d.ts +2 -0
- package/dist/vtable/fts5.d.ts.map +1 -0
- package/dist/vtable/index.d.ts +3 -0
- package/dist/vtable/index.d.ts.map +1 -0
- package/dist/vtable/modules.d.ts +66 -0
- package/dist/vtable/modules.d.ts.map +1 -0
- package/package.json +107 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { CreateIndexStmt, CreateTableStmt, CreateViewStmt, CreateVirtualTableStmt, Expr, IndexedColumn, SelectStmt } from "../ast/nodes.ts";
|
|
2
|
+
import { IndexStore } from "../indexes/index.ts";
|
|
3
|
+
import { Fts5VirtualTable } from "../vtable/fts5.ts";
|
|
4
|
+
import { BytecodeVirtualTable, DbStatVirtualTable, FtsVocabVirtualTable, RTreeVirtualTable, TablesUsedVirtualTable } from "../vtable/modules.ts";
|
|
5
|
+
import type { Rowid } from "./row.ts";
|
|
6
|
+
import { Table } from "./table.ts";
|
|
7
|
+
export type AnyVirtualTable = Fts5VirtualTable | RTreeVirtualTable | DbStatVirtualTable | BytecodeVirtualTable | TablesUsedVirtualTable | FtsVocabVirtualTable;
|
|
8
|
+
export interface ViewInfo {
|
|
9
|
+
name: string;
|
|
10
|
+
columns: string[] | null;
|
|
11
|
+
select: SelectStmt;
|
|
12
|
+
originalSql: string | null;
|
|
13
|
+
}
|
|
14
|
+
export interface IndexInfo {
|
|
15
|
+
name: string;
|
|
16
|
+
tableName: string;
|
|
17
|
+
unique: boolean;
|
|
18
|
+
columns: IndexedColumn[];
|
|
19
|
+
where: Expr | null;
|
|
20
|
+
originalSql: string | null;
|
|
21
|
+
store: IndexStore;
|
|
22
|
+
}
|
|
23
|
+
export interface TriggerInfo {
|
|
24
|
+
name: string;
|
|
25
|
+
tableName: string;
|
|
26
|
+
timing: "BEFORE" | "AFTER" | "INSTEAD";
|
|
27
|
+
event: "INSERT" | "UPDATE" | "DELETE";
|
|
28
|
+
when: Expr | null;
|
|
29
|
+
forEachRow: boolean;
|
|
30
|
+
/** Statements in the trigger body (already parsed). */
|
|
31
|
+
body: import("../ast/nodes.ts").Statement[];
|
|
32
|
+
updateColumns: string[] | null;
|
|
33
|
+
originalSql: string | null;
|
|
34
|
+
}
|
|
35
|
+
export declare class DatabaseState {
|
|
36
|
+
tables: Map<string, Table>;
|
|
37
|
+
virtualTables: Map<string, AnyVirtualTable>;
|
|
38
|
+
views: Map<string, ViewInfo>;
|
|
39
|
+
indexes: Map<string, IndexInfo>;
|
|
40
|
+
triggers: Map<string, TriggerInfo>;
|
|
41
|
+
/** Attached databases: schema name → state + filename label. */
|
|
42
|
+
attached: Map<string, {
|
|
43
|
+
state: DatabaseState;
|
|
44
|
+
filename: string;
|
|
45
|
+
}>;
|
|
46
|
+
lastInsertRowid: Rowid;
|
|
47
|
+
changes: number;
|
|
48
|
+
totalChanges: number;
|
|
49
|
+
foreignKeysEnabled: boolean;
|
|
50
|
+
schemaVersion: number;
|
|
51
|
+
userVersion: number;
|
|
52
|
+
databaseForSchema(schema: string | null, qualifiedForError?: string): DatabaseState;
|
|
53
|
+
databaseForTable(table: Table): DatabaseState;
|
|
54
|
+
getTable(name: string): Table;
|
|
55
|
+
getVirtualTable(name: string): Fts5VirtualTable;
|
|
56
|
+
getAnyVirtualTable(name: string): AnyVirtualTable;
|
|
57
|
+
isVirtualTable(name: string): boolean;
|
|
58
|
+
isFtsTable(name: string): boolean;
|
|
59
|
+
createVirtualTable(stmt: CreateVirtualTableStmt, originalSql?: string | null): AnyVirtualTable;
|
|
60
|
+
createTable(stmt: CreateTableStmt, originalSql?: string | null): Table;
|
|
61
|
+
/**
|
|
62
|
+
* SQLite-like autoindexes for PRIMARY KEY / UNIQUE so lookups and uniqueness
|
|
63
|
+
* checks can use IndexStore. Skips single-column INTEGER PRIMARY KEY (rowid alias).
|
|
64
|
+
*/
|
|
65
|
+
private createAutoIndexesForTable;
|
|
66
|
+
dropTable(name: string, ifExists?: boolean): boolean;
|
|
67
|
+
renameTable(oldName: string, newName: string): Table;
|
|
68
|
+
createView(stmt: CreateViewStmt, originalSql?: string | null): ViewInfo;
|
|
69
|
+
dropView(name: string, ifExists?: boolean): boolean;
|
|
70
|
+
createIndex(stmt: CreateIndexStmt, originalSql?: string | null): IndexInfo;
|
|
71
|
+
dropIndex(name: string, ifExists?: boolean): boolean;
|
|
72
|
+
createTrigger(info: TriggerInfo): TriggerInfo;
|
|
73
|
+
dropTrigger(name: string, ifExists?: boolean): boolean;
|
|
74
|
+
dropTriggersForTable(tableName: string): void;
|
|
75
|
+
recordChange(count: number, lastInsertRowid?: Rowid): void;
|
|
76
|
+
clone(): DatabaseState;
|
|
77
|
+
replaceWith(state: DatabaseState, options?: {
|
|
78
|
+
adopt?: boolean;
|
|
79
|
+
}): void;
|
|
80
|
+
private assertSchemaNameAvailable;
|
|
81
|
+
}
|
|
82
|
+
export declare function splitQualifiedName(name: string): {
|
|
83
|
+
schema: string | null;
|
|
84
|
+
bare: string;
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=database-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-state.d.ts","sourceRoot":"","sources":["../../src/storage/database-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type { IndexInfo, ViewInfo } from "./database-state.ts";
|
|
2
|
+
export { DatabaseState } from "./database-state.ts";
|
|
3
|
+
export type { Row, Rowid, RowValues } from "./row.ts";
|
|
4
|
+
export { cloneRow, normalizeColumnName, rowValues } from "./row.ts";
|
|
5
|
+
export type { ColumnInfo, InsertRow, TableOptions } from "./table.ts";
|
|
6
|
+
export { makeColumnInfo, Table } from "./table.ts";
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACpE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { SqlValue } from "../types/value.ts";
|
|
2
|
+
export type Rowid = number | bigint;
|
|
3
|
+
export interface Row {
|
|
4
|
+
rowid: Rowid;
|
|
5
|
+
values: Map<string, SqlValue>;
|
|
6
|
+
}
|
|
7
|
+
export type RowValues = Map<string, SqlValue> | ReadonlyMap<string, SqlValue> | Record<string, SqlValue>;
|
|
8
|
+
export declare function normalizeColumnName(name: string): string;
|
|
9
|
+
export declare function rowValues(values: RowValues): Map<string, SqlValue>;
|
|
10
|
+
export declare function cloneRow(row: Row): Row;
|
|
11
|
+
//# sourceMappingURL=row.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"row.d.ts","sourceRoot":"","sources":["../../src/storage/row.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlD,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpC,MAAM,WAAW,GAAG;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CAC/B;AAED,MAAM,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEzG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAOlE;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAMtC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { Expr, TableConstraint } from "../ast/nodes.ts";
|
|
2
|
+
import type { Affinity, SqlValue } from "../types/value.ts";
|
|
3
|
+
import type { Row, Rowid, RowValues } from "./row.ts";
|
|
4
|
+
export interface ColumnInfo {
|
|
5
|
+
name: string;
|
|
6
|
+
/** Cached `name.toLowerCase()` for hot-path lookups. */
|
|
7
|
+
nameLower?: string;
|
|
8
|
+
typeName: string | null;
|
|
9
|
+
affinity: Affinity;
|
|
10
|
+
notNull: boolean;
|
|
11
|
+
primaryKey: boolean;
|
|
12
|
+
autoincrement: boolean;
|
|
13
|
+
defaultExpr: Expr | null;
|
|
14
|
+
unique: boolean;
|
|
15
|
+
/** Declared column collation (BINARY/NOCASE/RTRIM); null means BINARY. */
|
|
16
|
+
collate: string | null;
|
|
17
|
+
/** GENERATED ALWAYS AS (...) — VIRTUAL computed on read, STORED materialized. */
|
|
18
|
+
generated: {
|
|
19
|
+
expr: Expr;
|
|
20
|
+
stored: boolean;
|
|
21
|
+
} | null;
|
|
22
|
+
}
|
|
23
|
+
export interface InsertOptions {
|
|
24
|
+
/** Values are already affinity-applied Maps with lowercase keys; skip prepareValues. */
|
|
25
|
+
prepared?: boolean;
|
|
26
|
+
/** Skip NOT NULL / UNIQUE / PK scans (caller already enforced, or table is unconstrained). */
|
|
27
|
+
skipValidate?: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface InsertRow {
|
|
30
|
+
rowid?: Rowid;
|
|
31
|
+
values: RowValues;
|
|
32
|
+
}
|
|
33
|
+
export interface TableOptions {
|
|
34
|
+
constraints?: TableConstraint[];
|
|
35
|
+
indexes?: string[];
|
|
36
|
+
originalSql?: string | null;
|
|
37
|
+
withoutRowid?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export declare class Table {
|
|
40
|
+
name: string;
|
|
41
|
+
columns: ColumnInfo[];
|
|
42
|
+
rows: Map<Rowid, Row>;
|
|
43
|
+
nextRowid: Rowid;
|
|
44
|
+
constraints: TableConstraint[];
|
|
45
|
+
indexes: string[];
|
|
46
|
+
originalSql: string | null;
|
|
47
|
+
withoutRowid: boolean;
|
|
48
|
+
/** Clustered PK key string → row for WITHOUT ROWID tables. */
|
|
49
|
+
clusteredRows: Map<string, Row>;
|
|
50
|
+
private scanCache;
|
|
51
|
+
/** Lazy covering hashes: column nameLower → serializeIndexKey → rowids. */
|
|
52
|
+
private equalityHashes;
|
|
53
|
+
constructor(name: string, columns: ColumnInfo[], options?: TableOptions);
|
|
54
|
+
integerPkColumn(): ColumnInfo | undefined;
|
|
55
|
+
get(rowid: Rowid): Row | undefined;
|
|
56
|
+
getByKey(value: SqlValue): Row | undefined;
|
|
57
|
+
private invalidateScan;
|
|
58
|
+
private commitRow;
|
|
59
|
+
private reindexEquality;
|
|
60
|
+
/** True when the table has no user constraints that DML must enforce beyond hidden rowid. */
|
|
61
|
+
isUnconstrained(): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Point lookup via a write-maintained covering hash (not a schema index).
|
|
64
|
+
* Returns null when the table is too small or the column does not exist.
|
|
65
|
+
*/
|
|
66
|
+
lookupEquality(columnLower: string, value: SqlValue): Row[] | null;
|
|
67
|
+
ensureEqualityHash(columnLower: string): boolean;
|
|
68
|
+
clearEqualityHashes(): void;
|
|
69
|
+
private indexEquality;
|
|
70
|
+
private unindexEquality;
|
|
71
|
+
insert(input: InsertRow | RowValues, options?: InsertOptions): Rowid;
|
|
72
|
+
update(rowid: Rowid, updates: RowValues): Row | undefined;
|
|
73
|
+
delete(rowid: Rowid): boolean;
|
|
74
|
+
scan(): Iterable<Row>;
|
|
75
|
+
clone(): Table;
|
|
76
|
+
/** Rebuild clustered storage after snapshot decode or bulk load. */
|
|
77
|
+
rebuildClusteredRows(): void;
|
|
78
|
+
private prepareValues;
|
|
79
|
+
private column;
|
|
80
|
+
private validate;
|
|
81
|
+
private uniqueColumnSets;
|
|
82
|
+
private primaryKeyColumns;
|
|
83
|
+
private makeClusterKey;
|
|
84
|
+
private comparePrimaryKeys;
|
|
85
|
+
private integerPrimaryKeyAlias;
|
|
86
|
+
private allocateRowid;
|
|
87
|
+
private advanceNextRowid;
|
|
88
|
+
}
|
|
89
|
+
export declare function makeColumnInfo(name: string, typeName: string | null, options?: Partial<Omit<ColumnInfo, "name" | "nameLower" | "typeName" | "affinity">>): ColumnInfo;
|
|
90
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/storage/table.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Prng } from "../runtime/prng.ts";
|
|
2
|
+
import type { DatabaseState } from "../storage/database-state.ts";
|
|
3
|
+
export declare class TransactionManager {
|
|
4
|
+
readonly state: DatabaseState;
|
|
5
|
+
readonly prng: Prng;
|
|
6
|
+
private transactionSnapshot;
|
|
7
|
+
private transactionPrngState;
|
|
8
|
+
private savepoints;
|
|
9
|
+
private startedBySavepoint;
|
|
10
|
+
constructor(state: DatabaseState, prng: Prng);
|
|
11
|
+
get inTransaction(): boolean;
|
|
12
|
+
begin(): void;
|
|
13
|
+
commit(): void;
|
|
14
|
+
rollback(savepoint?: string): void;
|
|
15
|
+
savepoint(name: string): void;
|
|
16
|
+
release(name: string): void;
|
|
17
|
+
private findSavepoint;
|
|
18
|
+
private requireTransaction;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/transactions/manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAQlE,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,OAAO,CAAC,mBAAmB,CAA8B;IACzD,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,kBAAkB,CAAS;gBAEvB,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI;IAK5C,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,KAAK,IAAI,IAAI;IAUb,MAAM,IAAI,IAAI;IAQd,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAyBlC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAa7B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAW3B,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,kBAAkB;CAG3B"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type SqlValue } from "./value.ts";
|
|
2
|
+
export type BuiltinCollation = "BINARY" | "NOCASE" | "RTRIM";
|
|
3
|
+
export declare function normalizeForCollation(value: SqlValue, name: string): SqlValue;
|
|
4
|
+
export declare function compareWithCollation(a: SqlValue, b: SqlValue, name: string): number | null;
|
|
5
|
+
//# sourceMappingURL=collation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collation.d.ts","sourceRoot":"","sources":["../../src/types/collation.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7D,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAW7E;AAED,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAE1F"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/** SQLite storage classes / SQL values used throughout the engine. */
|
|
2
|
+
export type StorageClass = "null" | "integer" | "real" | "text" | "blob";
|
|
3
|
+
/** Integer-valued REAL that must not collapse to the integer storage class. */
|
|
4
|
+
export declare class SqlReal {
|
|
5
|
+
readonly value: number;
|
|
6
|
+
constructor(value: number);
|
|
7
|
+
valueOf(): number;
|
|
8
|
+
toString(): string;
|
|
9
|
+
}
|
|
10
|
+
/** SQLite JSON subtype (74 / 'J') — text that nested JSON APIs treat as JSON, not a string. */
|
|
11
|
+
export declare const JSON_SUBTYPE = 74;
|
|
12
|
+
export declare class SqlJsonText {
|
|
13
|
+
readonly value: string;
|
|
14
|
+
readonly subtype = 74;
|
|
15
|
+
constructor(value: string);
|
|
16
|
+
valueOf(): string;
|
|
17
|
+
toString(): string;
|
|
18
|
+
}
|
|
19
|
+
export type SqlValue = null | number | bigint | string | Uint8Array | SqlReal | SqlJsonText;
|
|
20
|
+
export type Affinity = "TEXT" | "NUMERIC" | "INTEGER" | "REAL" | "BLOB";
|
|
21
|
+
/** Canonicalize IEEE `-0` to `+0` for cross-runtime determinism. */
|
|
22
|
+
export declare function canonicalizeNumber(value: number): number;
|
|
23
|
+
export declare function asSqlReal(value: number): SqlReal;
|
|
24
|
+
export declare function isSqlReal(value: SqlValue): value is SqlReal;
|
|
25
|
+
export declare function isSqlJsonText(value: SqlValue): value is SqlJsonText;
|
|
26
|
+
export declare function asSqlJsonText(value: string): SqlJsonText;
|
|
27
|
+
/** Strip ephemeral JSON subtype for table storage / non-JSON contexts. */
|
|
28
|
+
export declare function unwrapSqlValue(value: SqlValue): SqlValue;
|
|
29
|
+
export declare function subtypeOf(value: SqlValue): number;
|
|
30
|
+
export declare function numberValueOf(value: number | bigint | SqlReal): number;
|
|
31
|
+
export declare function storageClassOf(value: SqlValue): StorageClass;
|
|
32
|
+
export declare function typeofSql(value: SqlValue): string;
|
|
33
|
+
/** Determine column affinity from a declared type name (SQLite rules). */
|
|
34
|
+
export declare function affinityFromTypeName(typeName: string | null | undefined): Affinity;
|
|
35
|
+
export declare function applyAffinity(value: SqlValue, affinity: Affinity): SqlValue;
|
|
36
|
+
export declare function coerceToNumber(value: SqlValue): number | null;
|
|
37
|
+
export declare function toInteger(value: SqlValue): number | bigint | null;
|
|
38
|
+
export declare function sqlValueEquals(a: SqlValue, b: SqlValue): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* SQLite comparison for ORDER BY / inequalities.
|
|
41
|
+
* Returns -1, 0, 1, or null if either side is NULL (SQL NULL).
|
|
42
|
+
*/
|
|
43
|
+
export declare function compareSql(a: SqlValue, b: SqlValue): number | null;
|
|
44
|
+
export declare function utf8Encode(s: string): Uint8Array;
|
|
45
|
+
export declare function utf8Decode(b: Uint8Array): string;
|
|
46
|
+
export declare function cloneSqlValue(v: SqlValue): SqlValue;
|
|
47
|
+
/**
|
|
48
|
+
* SQLite boolean truthiness (WHERE / HAVING / CASE / AND / OR / NOT).
|
|
49
|
+
* Non-NULL values are cast to numeric; non-numeric text/blob become 0 (false).
|
|
50
|
+
*/
|
|
51
|
+
export declare function isTruthySql(v: SqlValue): boolean | null;
|
|
52
|
+
//# sourceMappingURL=value.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value.d.ts","sourceRoot":"","sources":["../../src/types/value.ts"],"names":[],"mappings":"AAAA,sEAAsE;AAEtE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzE,+EAA+E;AAC/E,qBAAa,OAAO;IAClB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBACX,KAAK,EAAE,MAAM;IAGzB,OAAO,IAAI,MAAM;IAGjB,QAAQ,IAAI,MAAM;CAGnB;AAED,+FAA+F;AAC/F,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B,qBAAa,WAAW;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,MAAgB;gBACpB,KAAK,EAAE,MAAM;IAGzB,OAAO,IAAI,MAAM;IAGjB,QAAQ,IAAI,MAAM;CAGnB;AAED,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,WAAW,CAAC;AAE5F,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAExE,oEAAoE;AACpE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,IAAI,OAAO,CAE3D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,KAAK,IAAI,WAAW,CAEnE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAExD;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAGxD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAGjD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAItE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,YAAY,CAU5D;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAOjD;AAED,0EAA0E;AAC1E,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,QAAQ,CAQlF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CA8B3E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAmB7D;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAWjE;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,OAAO,CAkBhE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAoDlE;AAUD,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,CAEhD;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAEhD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAKnD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,IAAI,CAUvD"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export type FtsKind = "fts5" | "fts3" | "fts4";
|
|
2
|
+
export type FtsDetail = "full" | "column" | "none";
|
|
3
|
+
export interface FtsColumnDef {
|
|
4
|
+
name: string;
|
|
5
|
+
unindexed: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface FtsTokenizerConfig {
|
|
8
|
+
/** Primary tokenizer name (unicode61, ascii, porter, trigram). */
|
|
9
|
+
name: string;
|
|
10
|
+
/** Base tokenizer when name is porter. */
|
|
11
|
+
base?: string;
|
|
12
|
+
removeDiacritics?: 0 | 1 | 2;
|
|
13
|
+
tokenchars?: string;
|
|
14
|
+
separators?: string;
|
|
15
|
+
caseSensitive?: boolean;
|
|
16
|
+
removeDiacriticsTrigram?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface FtsTableOptions {
|
|
19
|
+
columns: FtsColumnDef[];
|
|
20
|
+
content: "normal" | "contentless" | "external";
|
|
21
|
+
contentTable: string | null;
|
|
22
|
+
contentRowid: string;
|
|
23
|
+
contentlessDelete: boolean;
|
|
24
|
+
prefix: number[];
|
|
25
|
+
columnsize: boolean;
|
|
26
|
+
detail: FtsDetail;
|
|
27
|
+
tokendata: boolean;
|
|
28
|
+
locale: boolean;
|
|
29
|
+
tokenizer: FtsTokenizerConfig;
|
|
30
|
+
/** FTS3/4 */
|
|
31
|
+
languageid: string | null;
|
|
32
|
+
notindexed: Set<string>;
|
|
33
|
+
}
|
|
34
|
+
export declare function parseFtsModuleArgs(moduleArgs: string[], kind: FtsKind): FtsTableOptions;
|
|
35
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/vtable/fts/options.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE/C,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEnD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,OAAO,EAAE,QAAQ,GAAG,aAAa,GAAG,UAAU,CAAC;IAC/C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,kBAAkB,CAAC;IAC9B,aAAa;IACb,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACzB;AAmBD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,eAAe,CAqIvF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"porter.d.ts","sourceRoot":"","sources":["../../../src/vtable/fts/porter.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkF/C"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export type FtsQueryNode = {
|
|
2
|
+
type: "term";
|
|
3
|
+
value: string;
|
|
4
|
+
prefix: boolean;
|
|
5
|
+
column: string | null;
|
|
6
|
+
columns: string[] | null;
|
|
7
|
+
} | {
|
|
8
|
+
type: "phrase";
|
|
9
|
+
terms: Array<{
|
|
10
|
+
value: string;
|
|
11
|
+
prefix: boolean;
|
|
12
|
+
}>;
|
|
13
|
+
column: string | null;
|
|
14
|
+
columns: string[] | null;
|
|
15
|
+
} | {
|
|
16
|
+
type: "near";
|
|
17
|
+
children: FtsQueryNode[];
|
|
18
|
+
distance: number;
|
|
19
|
+
column: string | null;
|
|
20
|
+
columns: string[] | null;
|
|
21
|
+
} | {
|
|
22
|
+
type: "and";
|
|
23
|
+
children: FtsQueryNode[];
|
|
24
|
+
} | {
|
|
25
|
+
type: "or";
|
|
26
|
+
children: FtsQueryNode[];
|
|
27
|
+
} | {
|
|
28
|
+
type: "not";
|
|
29
|
+
child: FtsQueryNode;
|
|
30
|
+
} | {
|
|
31
|
+
type: "true";
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Parse an FTS5 MATCH expression.
|
|
35
|
+
* Implicit AND between adjacent terms; OR binds looser than AND; NOT is binary (a NOT b).
|
|
36
|
+
*/
|
|
37
|
+
export declare function parseFts5Query(input: string): FtsQueryNode;
|
|
38
|
+
/** FTS3/4 query parser (ENABLE_FTS3_PARENTHESIS style). */
|
|
39
|
+
export declare function parseFts3Query(input: string): FtsQueryNode;
|
|
40
|
+
//# sourceMappingURL=query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/vtable/fts/query.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;CAAE,GACjG;IACE,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACjD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAC1B,GACD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;CAAE,GAC7G;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,YAAY,EAAE,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,YAAY,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAiBrB;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAgL1D;AAkHD,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAkB1D"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { Rowid } from "../../storage/row.ts";
|
|
2
|
+
import type { SqlValue } from "../../types/value.ts";
|
|
3
|
+
import { type FtsKind, type FtsTableOptions } from "./options.ts";
|
|
4
|
+
import { type FtsQueryNode } from "./query.ts";
|
|
5
|
+
import { type FtsToken, tokenizeFtsText } from "./tokenize.ts";
|
|
6
|
+
export interface Fts5Row {
|
|
7
|
+
rowid: Rowid;
|
|
8
|
+
values: Map<string, SqlValue>;
|
|
9
|
+
/** Per-column tokens with positions. */
|
|
10
|
+
tokensByColumn: Map<string, FtsToken[]>;
|
|
11
|
+
}
|
|
12
|
+
export interface FtsMatchHit {
|
|
13
|
+
column: string;
|
|
14
|
+
position: number;
|
|
15
|
+
startUnit: number;
|
|
16
|
+
endUnit: number;
|
|
17
|
+
term: string;
|
|
18
|
+
}
|
|
19
|
+
export interface FtsMatchCursor {
|
|
20
|
+
tableName: string;
|
|
21
|
+
rowid: Rowid;
|
|
22
|
+
query: string;
|
|
23
|
+
ast: FtsQueryNode;
|
|
24
|
+
hits: FtsMatchHit[];
|
|
25
|
+
/** Phrase term strings used for ranking (flattened). */
|
|
26
|
+
phraseTerms: string[][];
|
|
27
|
+
}
|
|
28
|
+
export declare class Fts5VirtualTable {
|
|
29
|
+
readonly kind: FtsKind;
|
|
30
|
+
readonly name: string;
|
|
31
|
+
readonly columns: string[];
|
|
32
|
+
readonly originalSql: string | null;
|
|
33
|
+
readonly options: FtsTableOptions;
|
|
34
|
+
readonly rows: Map<Rowid, Fts5Row>;
|
|
35
|
+
nextRowid: Rowid;
|
|
36
|
+
private readonly tokenize;
|
|
37
|
+
/** term -> postings */
|
|
38
|
+
private readonly index;
|
|
39
|
+
/** Global doc count for bm25. */
|
|
40
|
+
private docCount;
|
|
41
|
+
/** Average document length (tokens across indexed columns). */
|
|
42
|
+
private avgDocLen;
|
|
43
|
+
private totalTokens;
|
|
44
|
+
constructor(name: string, moduleArgs: string[], originalSql?: string | null, kind?: FtsKind);
|
|
45
|
+
scan(): Fts5Row[];
|
|
46
|
+
insert(values: Map<string, SqlValue>, rowid?: Rowid): Rowid;
|
|
47
|
+
update(rowid: Rowid, updates: Map<string, SqlValue>): void;
|
|
48
|
+
delete(rowid: Rowid): void;
|
|
49
|
+
matches(rowid: Rowid, leftTable: string | null, leftColumn: string, query: string): boolean;
|
|
50
|
+
matchCursor(rowid: Rowid, leftTable: string | null, leftColumn: string, query: string): FtsMatchCursor | null;
|
|
51
|
+
bm25(cursor: FtsMatchCursor, weights?: number[]): number;
|
|
52
|
+
highlight(cursor: FtsMatchCursor, colIndex: number, open: string, close: string): string;
|
|
53
|
+
snippet(cursor: FtsMatchCursor, colIndex: number, open: string, close: string, ellipsis: string, tokenCount: number): string;
|
|
54
|
+
/** FTS3/4 offsets(): "col phrase start length ..." */
|
|
55
|
+
offsets(cursor: FtsMatchCursor): string;
|
|
56
|
+
/** FTS3 matchinfo default format 'pcx' simplified → blob of 32-bit LE ints. */
|
|
57
|
+
matchinfo(cursor: FtsMatchCursor, _format?: string): Uint8Array;
|
|
58
|
+
vocabRows(mode: "row" | "col" | "instance"): Array<Record<string, SqlValue>>;
|
|
59
|
+
clone(): Fts5VirtualTable;
|
|
60
|
+
private detectCommand;
|
|
61
|
+
private runCommand;
|
|
62
|
+
private rebuild;
|
|
63
|
+
private buildRow;
|
|
64
|
+
private indexRow;
|
|
65
|
+
private unindexRow;
|
|
66
|
+
private addPosting;
|
|
67
|
+
private removePosting;
|
|
68
|
+
private indexedColumns;
|
|
69
|
+
private evalNode;
|
|
70
|
+
private normalizeQueryTerm;
|
|
71
|
+
/** For trigram tokenizer, a bare MATCH term is a phrase of overlapping trigrams. */
|
|
72
|
+
private expandTermNode;
|
|
73
|
+
private phraseFreq;
|
|
74
|
+
private phraseDocFreq;
|
|
75
|
+
private termFreq;
|
|
76
|
+
private docLength;
|
|
77
|
+
private bumpRowid;
|
|
78
|
+
}
|
|
79
|
+
export { tokenizeFtsText };
|
|
80
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/vtable/fts/table.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { FtsTokenizerConfig } from "./options.ts";
|
|
2
|
+
export interface FtsToken {
|
|
3
|
+
/** Normalized token text stored in the index. */
|
|
4
|
+
term: string;
|
|
5
|
+
/** Byte offset of the token in the UTF-8 encoding of the source. */
|
|
6
|
+
start: number;
|
|
7
|
+
/** Byte length in UTF-8. */
|
|
8
|
+
length: number;
|
|
9
|
+
/** Token position (0-based) within the column. */
|
|
10
|
+
position: number;
|
|
11
|
+
/** Original end offset in JS string code units (for highlight). */
|
|
12
|
+
startUnit: number;
|
|
13
|
+
endUnit: number;
|
|
14
|
+
}
|
|
15
|
+
export type TokenizerFn = (text: string) => FtsToken[];
|
|
16
|
+
export declare function createTokenizer(config: FtsTokenizerConfig): TokenizerFn;
|
|
17
|
+
export declare function utf8Length(text: string): number;
|
|
18
|
+
export declare function utf8Offset(text: string, unitIndex: number): number;
|
|
19
|
+
/** Legacy helper used by older call sites — simple alphanum split. */
|
|
20
|
+
export declare function tokenizeFtsText(text: string): string[];
|
|
21
|
+
//# sourceMappingURL=tokenize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenize.d.ts","sourceRoot":"","sources":["../../../src/vtable/fts/tokenize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGvD,MAAM,WAAW,QAAQ;IACvB,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,KAAK,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;AAEvD,wBAAgB,eAAe,CAAC,MAAM,EAAE,kBAAkB,GAAG,WAAW,CAiBvE;AAgHD,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,sEAAsE;AACtE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAEtD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fts5.d.ts","sourceRoot":"","sources":["../../src/vtable/fts5.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vtable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { Rowid } from "../storage/row.ts";
|
|
2
|
+
import type { SqlValue } from "../types/value.ts";
|
|
3
|
+
export interface RTreeRow {
|
|
4
|
+
id: number | bigint;
|
|
5
|
+
coords: number[];
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Simplified R*Tree for SQLite rtree / rtree_i32 modules.
|
|
9
|
+
* Stores axis-aligned boxes; queries filter by bound inequalities in WHERE.
|
|
10
|
+
*/
|
|
11
|
+
export declare class RTreeVirtualTable {
|
|
12
|
+
readonly kind: "rtree";
|
|
13
|
+
readonly name: string;
|
|
14
|
+
readonly columns: string[];
|
|
15
|
+
readonly dimension: number;
|
|
16
|
+
readonly integerCoords: boolean;
|
|
17
|
+
readonly originalSql: string | null;
|
|
18
|
+
readonly rows: Map<string, RTreeRow>;
|
|
19
|
+
/** Shadow node table content for rtreenode/rtreedepth. */
|
|
20
|
+
readonly nodes: Map<number, Uint8Array<ArrayBufferLike>>;
|
|
21
|
+
constructor(name: string, columns: string[], integerCoords?: boolean, originalSql?: string | null);
|
|
22
|
+
scan(): Array<{
|
|
23
|
+
rowid: Rowid;
|
|
24
|
+
values: Map<string, SqlValue>;
|
|
25
|
+
}>;
|
|
26
|
+
insert(values: Map<string, SqlValue>): Rowid;
|
|
27
|
+
update(rowid: Rowid, updates: Map<string, SqlValue>): void;
|
|
28
|
+
delete(rowid: Rowid): void;
|
|
29
|
+
clone(): RTreeVirtualTable;
|
|
30
|
+
}
|
|
31
|
+
export declare class DbStatVirtualTable {
|
|
32
|
+
readonly kind: "dbstat";
|
|
33
|
+
readonly name: string;
|
|
34
|
+
readonly columns: string[];
|
|
35
|
+
readonly originalSql: string | null;
|
|
36
|
+
readonly schemaArg: string | null;
|
|
37
|
+
constructor(name: string, schemaArg?: string | null, originalSql?: string | null);
|
|
38
|
+
clone(): DbStatVirtualTable;
|
|
39
|
+
}
|
|
40
|
+
export declare class BytecodeVirtualTable {
|
|
41
|
+
readonly kind: "bytecode";
|
|
42
|
+
readonly name: string;
|
|
43
|
+
readonly columns: string[];
|
|
44
|
+
readonly originalSql: string | null;
|
|
45
|
+
constructor(name: string, originalSql?: string | null);
|
|
46
|
+
clone(): BytecodeVirtualTable;
|
|
47
|
+
}
|
|
48
|
+
export declare class TablesUsedVirtualTable {
|
|
49
|
+
readonly kind: "tables_used";
|
|
50
|
+
readonly name: string;
|
|
51
|
+
readonly columns: string[];
|
|
52
|
+
readonly originalSql: string | null;
|
|
53
|
+
constructor(name: string, originalSql?: string | null);
|
|
54
|
+
clone(): TablesUsedVirtualTable;
|
|
55
|
+
}
|
|
56
|
+
export declare class FtsVocabVirtualTable {
|
|
57
|
+
readonly kind: "fts5vocab";
|
|
58
|
+
readonly name: string;
|
|
59
|
+
readonly columns: string[];
|
|
60
|
+
readonly ftsTable: string;
|
|
61
|
+
readonly vocabType: string;
|
|
62
|
+
readonly originalSql: string | null;
|
|
63
|
+
constructor(name: string, args: string[], originalSql?: string | null);
|
|
64
|
+
clone(): FtsVocabVirtualTable;
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=modules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../../src/vtable/modules.ts"],"names":[],"mappings":"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"}
|