@minnowdb/core 0.1.0 → 0.1.1
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/README.md +29 -18
- package/package.json +1 -1
- package/dist/engine/dsl/db.d.ts +0 -137
- package/dist/engine/dsl/db.d.ts.map +0 -1
- package/dist/engine/dsl/db.js +0 -161
- package/dist/engine/dsl/db.js.map +0 -1
- package/dist/engine/dsl/expression.d.ts +0 -172
- package/dist/engine/dsl/expression.d.ts.map +0 -1
- package/dist/engine/dsl/expression.js +0 -397
- package/dist/engine/dsl/expression.js.map +0 -1
- package/dist/engine/dsl/index.d.ts +0 -8
- package/dist/engine/dsl/index.d.ts.map +0 -1
- package/dist/engine/dsl/index.js +0 -7
- package/dist/engine/dsl/index.js.map +0 -1
- package/dist/engine/dsl/live-query.d.ts +0 -45
- package/dist/engine/dsl/live-query.d.ts.map +0 -1
- package/dist/engine/dsl/live-query.js +0 -116
- package/dist/engine/dsl/live-query.js.map +0 -1
- package/dist/engine/dsl/mutations.d.ts +0 -123
- package/dist/engine/dsl/mutations.d.ts.map +0 -1
- package/dist/engine/dsl/mutations.js +0 -241
- package/dist/engine/dsl/mutations.js.map +0 -1
- package/dist/engine/dsl/select-query-builder.d.ts +0 -148
- package/dist/engine/dsl/select-query-builder.d.ts.map +0 -1
- package/dist/engine/dsl/select-query-builder.js +0 -377
- package/dist/engine/dsl/select-query-builder.js.map +0 -1
- package/dist/engine/dsl/sql-tag.d.ts +0 -46
- package/dist/engine/dsl/sql-tag.d.ts.map +0 -1
- package/dist/engine/dsl/sql-tag.js +0 -85
- package/dist/engine/dsl/sql-tag.js.map +0 -1
- package/dist/engine/dsl/types.d.ts +0 -133
- package/dist/engine/dsl/types.d.ts.map +0 -1
- package/dist/engine/dsl/types.js +0 -9
- package/dist/engine/dsl/types.js.map +0 -1
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
import { type CompiledStatement, type QueryRow, type QueryValue } from "../query.js";
|
|
2
|
-
import { type ComparisonOperatorToken, type ExpressionBuilder, type ExpressionWrapper, type InOperatorToken, type IsOperatorToken, type LikeOperatorToken, type SqlBool, type ValueOperand } from "./expression.js";
|
|
3
|
-
import { type ColumnReference, type ExpressionSource, type InsertRowFor, type ReferencedValue, type Simplify, type UpdateChangesFor } from "./types.js";
|
|
4
|
-
/**
|
|
5
|
-
* Kysely-style mutation builders. `execute()` returns an array (one result object, or the
|
|
6
|
-
* `returning(...)` rows); the idiomatic call is `executeTakeFirst()` / `executeTakeFirstOrThrow()`.
|
|
7
|
-
* Inserts pad their rows against the schema and hand them to the engine's batch APIs
|
|
8
|
-
* (`orReplace()` routes to the upsert path)
|
|
9
|
-
* and `returning` echoes the written rows: the padded inputs overlaid with the engine's
|
|
10
|
-
* generated columns (defaults and auto-increment keys), so callers get generated ids back.
|
|
11
|
-
* Updates and deletes compile to the same mutation statements SQL produces and
|
|
12
|
-
* run through the engine's read-keys-then-apply pipeline; their `returning` rows come back from
|
|
13
|
-
* the statement's own snapshot (post-update values for updates, the deleted rows for deletes).
|
|
14
|
-
*/
|
|
15
|
-
export interface InsertResult {
|
|
16
|
-
readonly numInsertedRows: number;
|
|
17
|
-
}
|
|
18
|
-
export interface UpdateResult {
|
|
19
|
-
readonly numUpdatedRows: number;
|
|
20
|
-
}
|
|
21
|
-
export interface DeleteResult {
|
|
22
|
-
readonly numDeletedRows: number;
|
|
23
|
-
}
|
|
24
|
-
export interface MutationServices {
|
|
25
|
-
insertBatch(tableName: string, rows: ReadonlyArray<Readonly<Record<string, QueryValue>>>): Promise<{
|
|
26
|
-
rowCount: number;
|
|
27
|
-
generatedColumns?: Record<string, QueryValue[]>;
|
|
28
|
-
}>;
|
|
29
|
-
upsertBatch(tableName: string, rows: ReadonlyArray<Readonly<Record<string, QueryValue>>>): Promise<{
|
|
30
|
-
rowCount: number;
|
|
31
|
-
generatedColumns?: Record<string, QueryValue[]>;
|
|
32
|
-
}>;
|
|
33
|
-
runStatement(statement: CompiledStatement, options?: {
|
|
34
|
-
returning?: readonly string[] | "*";
|
|
35
|
-
}): Promise<{
|
|
36
|
-
kind: string;
|
|
37
|
-
rowCount?: number;
|
|
38
|
-
returnedRows?: QueryRow[];
|
|
39
|
-
}>;
|
|
40
|
-
/** The table's full column list when the facade knows the schema; inserts pad from it. */
|
|
41
|
-
tableColumns?(tableName: string): readonly string[] | undefined;
|
|
42
|
-
/**
|
|
43
|
-
* Userland default generators by column name, when the facade knows the schema. Inserts call
|
|
44
|
-
* them for omitted-or-null slots before the batch is sent — the engine never sees the
|
|
45
|
-
* functions, only the generated values.
|
|
46
|
-
*/
|
|
47
|
-
columnDefaultFns?(tableName: string): Readonly<Record<string, () => QueryValue>> | undefined;
|
|
48
|
-
}
|
|
49
|
-
type ReturningState = readonly string[] | "*" | undefined;
|
|
50
|
-
export declare class InsertQueryBuilder<in out DB, in out TTable extends keyof DB & string, out TReturn = InsertResult> {
|
|
51
|
-
private readonly services;
|
|
52
|
-
private readonly table;
|
|
53
|
-
private readonly rows;
|
|
54
|
-
private readonly replaceOnConflict;
|
|
55
|
-
private readonly returningColumns?;
|
|
56
|
-
/** Type-only: the execute() element, e.g. `typeof q.$inferResult`. Undefined at runtime. */
|
|
57
|
-
readonly $inferResult: TReturn;
|
|
58
|
-
constructor(services: MutationServices, table: TTable, rows?: ReadonlyArray<Readonly<Record<string, unknown>>>, replaceOnConflict?: boolean, returningColumns?: ReturningState);
|
|
59
|
-
values(rows: InsertRowFor<DB[TTable]> | ReadonlyArray<InsertRowFor<DB[TTable]>>): InsertQueryBuilder<DB, TTable, TReturn>;
|
|
60
|
-
/** Replaces the whole row when the unique key already exists (the engine's upsert). */
|
|
61
|
-
orReplace(): InsertQueryBuilder<DB, TTable, TReturn>;
|
|
62
|
-
/** Returns the written rows projected to these columns instead of an InsertResult. */
|
|
63
|
-
returning<TCol extends keyof DB[TTable] & string>(columns: readonly TCol[]): InsertQueryBuilder<DB, TTable, Simplify<Pick<DB[TTable], TCol>>>;
|
|
64
|
-
/** Returns the complete written rows instead of an InsertResult. */
|
|
65
|
-
returningAll(): InsertQueryBuilder<DB, TTable, Simplify<DB[TTable]>>;
|
|
66
|
-
execute(): Promise<TReturn[]>;
|
|
67
|
-
executeTakeFirst(): Promise<TReturn | undefined>;
|
|
68
|
-
executeTakeFirstOrThrow(): Promise<TReturn>;
|
|
69
|
-
}
|
|
70
|
-
type Ctx<DB, TTable extends keyof DB & string> = Record<TTable, DB[TTable]>;
|
|
71
|
-
type MutationWhereFactory<DB, TTable extends keyof DB & string> = (eb: ExpressionBuilder<DB, Ctx<DB, TTable>>) => ExpressionWrapper<SqlBool>;
|
|
72
|
-
export declare class UpdateQueryBuilder<in out DB, in out TTable extends keyof DB & string, out TReturn = UpdateResult> {
|
|
73
|
-
private readonly services;
|
|
74
|
-
private readonly table;
|
|
75
|
-
private readonly wheres;
|
|
76
|
-
private readonly assignments;
|
|
77
|
-
private readonly returningColumns?;
|
|
78
|
-
/** Type-only: the execute() element, e.g. `typeof q.$inferResult`. Undefined at runtime. */
|
|
79
|
-
readonly $inferResult: TReturn;
|
|
80
|
-
constructor(services: MutationServices, table: TTable, wheres?: readonly ExpressionSource[], assignments?: ReadonlyArray<{
|
|
81
|
-
column: string;
|
|
82
|
-
source: ExpressionSource;
|
|
83
|
-
}>, returningColumns?: ReturningState);
|
|
84
|
-
set<TCol extends keyof DB[TTable] & string>(column: TCol, value: DB[TTable][TCol] | ExpressionWrapper<DB[TTable][TCol]>): UpdateQueryBuilder<DB, TTable, TReturn>;
|
|
85
|
-
set(changes: UpdateChangesFor<DB[TTable]> | ((eb: ExpressionBuilder<DB, Ctx<DB, TTable>>) => {
|
|
86
|
-
[K in keyof DB[TTable]]?: DB[TTable][K] | ExpressionWrapper<DB[TTable][K]> | undefined;
|
|
87
|
-
})): UpdateQueryBuilder<DB, TTable, TReturn>;
|
|
88
|
-
where<TRef extends ColumnReference<Ctx<DB, TTable>> & string>(lhs: TRef, operator: ComparisonOperatorToken | LikeOperatorToken, rhs: ValueOperand<ReferencedValue<Ctx<DB, TTable>, TRef>>): UpdateQueryBuilder<DB, TTable, TReturn>;
|
|
89
|
-
where<TRef extends ColumnReference<Ctx<DB, TTable>> & string>(lhs: TRef, operator: InOperatorToken, rhs: ReadonlyArray<ReferencedValue<Ctx<DB, TTable>, TRef>>): UpdateQueryBuilder<DB, TTable, TReturn>;
|
|
90
|
-
where(lhs: ColumnReference<Ctx<DB, TTable>>, operator: IsOperatorToken, rhs: null): UpdateQueryBuilder<DB, TTable, TReturn>;
|
|
91
|
-
where(factory: MutationWhereFactory<DB, TTable>): UpdateQueryBuilder<DB, TTable, TReturn>;
|
|
92
|
-
/** Returns the affected rows (post-update values) projected to these columns. */
|
|
93
|
-
returning<TCol extends keyof DB[TTable] & string>(columns: readonly TCol[]): UpdateQueryBuilder<DB, TTable, Simplify<Pick<DB[TTable], TCol>>>;
|
|
94
|
-
/** Returns the complete affected rows (post-update values). */
|
|
95
|
-
returningAll(): UpdateQueryBuilder<DB, TTable, Simplify<DB[TTable]>>;
|
|
96
|
-
compile(): CompiledStatement;
|
|
97
|
-
execute(): Promise<TReturn[]>;
|
|
98
|
-
executeTakeFirst(): Promise<TReturn | undefined>;
|
|
99
|
-
executeTakeFirstOrThrow(): Promise<TReturn>;
|
|
100
|
-
}
|
|
101
|
-
export declare class DeleteQueryBuilder<in out DB, in out TTable extends keyof DB & string, out TReturn = DeleteResult> {
|
|
102
|
-
private readonly services;
|
|
103
|
-
private readonly table;
|
|
104
|
-
private readonly wheres;
|
|
105
|
-
private readonly returningColumns?;
|
|
106
|
-
/** Type-only: the execute() element, e.g. `typeof q.$inferResult`. Undefined at runtime. */
|
|
107
|
-
readonly $inferResult: TReturn;
|
|
108
|
-
constructor(services: MutationServices, table: TTable, wheres?: readonly ExpressionSource[], returningColumns?: ReturningState);
|
|
109
|
-
where<TRef extends ColumnReference<Ctx<DB, TTable>> & string>(lhs: TRef, operator: ComparisonOperatorToken | LikeOperatorToken, rhs: ValueOperand<ReferencedValue<Ctx<DB, TTable>, TRef>>): DeleteQueryBuilder<DB, TTable, TReturn>;
|
|
110
|
-
where<TRef extends ColumnReference<Ctx<DB, TTable>> & string>(lhs: TRef, operator: InOperatorToken, rhs: ReadonlyArray<ReferencedValue<Ctx<DB, TTable>, TRef>>): DeleteQueryBuilder<DB, TTable, TReturn>;
|
|
111
|
-
where(lhs: ColumnReference<Ctx<DB, TTable>>, operator: IsOperatorToken, rhs: null): DeleteQueryBuilder<DB, TTable, TReturn>;
|
|
112
|
-
where(factory: MutationWhereFactory<DB, TTable>): DeleteQueryBuilder<DB, TTable, TReturn>;
|
|
113
|
-
/** Returns the deleted rows projected to these columns. */
|
|
114
|
-
returning<TCol extends keyof DB[TTable] & string>(columns: readonly TCol[]): DeleteQueryBuilder<DB, TTable, Simplify<Pick<DB[TTable], TCol>>>;
|
|
115
|
-
/** Returns the complete deleted rows. */
|
|
116
|
-
returningAll(): DeleteQueryBuilder<DB, TTable, Simplify<DB[TTable]>>;
|
|
117
|
-
compile(): CompiledStatement;
|
|
118
|
-
execute(): Promise<TReturn[]>;
|
|
119
|
-
executeTakeFirst(): Promise<TReturn | undefined>;
|
|
120
|
-
executeTakeFirstOrThrow(): Promise<TReturn>;
|
|
121
|
-
}
|
|
122
|
-
export {};
|
|
123
|
-
//# sourceMappingURL=mutations.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../../../src/engine/dsl/mutations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,241 +0,0 @@
|
|
|
1
|
-
import { hasAggregate, splitCondition, } from "../query.js";
|
|
2
|
-
import { buildBinaryCondition, createExpressionBuilder, isExpressionWrapper, literalExpression, } from "./expression.js";
|
|
3
|
-
import { NoResultError } from "./select-query-builder.js";
|
|
4
|
-
import { materialize, } from "./types.js";
|
|
5
|
-
const mutationCompileContext = {
|
|
6
|
-
nextSequence: () => {
|
|
7
|
-
throw new TypeError("Derived tables are not supported in mutations");
|
|
8
|
-
},
|
|
9
|
-
cteFor: () => undefined,
|
|
10
|
-
};
|
|
11
|
-
async function takeFirst(results) {
|
|
12
|
-
return (await results)[0];
|
|
13
|
-
}
|
|
14
|
-
async function takeFirstOrThrow(results) {
|
|
15
|
-
const first = await takeFirst(results);
|
|
16
|
-
if (first === undefined)
|
|
17
|
-
throw new NoResultError();
|
|
18
|
-
return first;
|
|
19
|
-
}
|
|
20
|
-
// --- INSERT -------------------------------------------------------------------------------------
|
|
21
|
-
export class InsertQueryBuilder {
|
|
22
|
-
services;
|
|
23
|
-
table;
|
|
24
|
-
rows;
|
|
25
|
-
replaceOnConflict;
|
|
26
|
-
returningColumns;
|
|
27
|
-
constructor(services, table, rows = [], replaceOnConflict = false, returningColumns) {
|
|
28
|
-
this.services = services;
|
|
29
|
-
this.table = table;
|
|
30
|
-
this.rows = rows;
|
|
31
|
-
this.replaceOnConflict = replaceOnConflict;
|
|
32
|
-
this.returningColumns = returningColumns;
|
|
33
|
-
}
|
|
34
|
-
values(rows) {
|
|
35
|
-
const additions = (Array.isArray(rows) ? rows : [rows]);
|
|
36
|
-
return new InsertQueryBuilder(this.services, this.table, [...this.rows, ...additions], this.replaceOnConflict, this.returningColumns);
|
|
37
|
-
}
|
|
38
|
-
/** Replaces the whole row when the unique key already exists (the engine's upsert). */
|
|
39
|
-
orReplace() {
|
|
40
|
-
return new InsertQueryBuilder(this.services, this.table, this.rows, true, this.returningColumns);
|
|
41
|
-
}
|
|
42
|
-
/** Returns the written rows projected to these columns instead of an InsertResult. */
|
|
43
|
-
returning(columns) {
|
|
44
|
-
return new InsertQueryBuilder(this.services, this.table, this.rows, this.replaceOnConflict, columns);
|
|
45
|
-
}
|
|
46
|
-
/** Returns the complete written rows instead of an InsertResult. */
|
|
47
|
-
returningAll() {
|
|
48
|
-
return new InsertQueryBuilder(this.services, this.table, this.rows, this.replaceOnConflict, "*");
|
|
49
|
-
}
|
|
50
|
-
async execute() {
|
|
51
|
-
if (this.rows.length === 0)
|
|
52
|
-
throw new TypeError("insertInto() requires values()");
|
|
53
|
-
// With the schema known, omitted nullable columns pad with null (the batch API takes every
|
|
54
|
-
// column) and function defaults fill their omitted-or-null slots; unknown extra keys still
|
|
55
|
-
// surface as engine errors.
|
|
56
|
-
const columns = new Set(this.services.tableColumns?.(this.table) ?? []);
|
|
57
|
-
for (const row of this.rows) {
|
|
58
|
-
for (const key of Object.keys(row))
|
|
59
|
-
columns.add(key);
|
|
60
|
-
}
|
|
61
|
-
const names = [...columns];
|
|
62
|
-
const defaults = this.services.columnDefaultFns?.(this.table);
|
|
63
|
-
const padded = this.rows.map((row) => Object.fromEntries(names.map((name) => {
|
|
64
|
-
const value = (row[name] ?? null);
|
|
65
|
-
const fill = defaults?.[name];
|
|
66
|
-
return [name, value === null && fill !== undefined ? fill() : value];
|
|
67
|
-
})));
|
|
68
|
-
const result = this.replaceOnConflict
|
|
69
|
-
? await this.services.upsertBatch(this.table, padded)
|
|
70
|
-
: await this.services.insertBatch(this.table, padded);
|
|
71
|
-
if (this.returningColumns === undefined) {
|
|
72
|
-
return [{ numInsertedRows: result.rowCount }];
|
|
73
|
-
}
|
|
74
|
-
// The written rows are the padded inputs overlaid with the engine's generated columns
|
|
75
|
-
// (defaults and auto-increment keys), in insertion order.
|
|
76
|
-
const generated = result.generatedColumns ?? {};
|
|
77
|
-
const written = padded.map((row, index) => {
|
|
78
|
-
const overlay = { ...row };
|
|
79
|
-
for (const [name, values] of Object.entries(generated)) {
|
|
80
|
-
overlay[name] = values[index] ?? null;
|
|
81
|
-
}
|
|
82
|
-
return overlay;
|
|
83
|
-
});
|
|
84
|
-
const projected = this.returningColumns === "*"
|
|
85
|
-
? written
|
|
86
|
-
: written.map((row) => Object.fromEntries(this.returningColumns.map((name) => [name, row[name] ?? null])));
|
|
87
|
-
return projected;
|
|
88
|
-
}
|
|
89
|
-
async executeTakeFirst() {
|
|
90
|
-
return takeFirst(this.execute());
|
|
91
|
-
}
|
|
92
|
-
async executeTakeFirstOrThrow() {
|
|
93
|
-
return takeFirstOrThrow(this.execute());
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
function mutationWhereSource(lhs, operator, rhs) {
|
|
97
|
-
if (typeof lhs === "function" && operator === undefined) {
|
|
98
|
-
const eb = createExpressionBuilder(() => {
|
|
99
|
-
throw new TypeError("Subqueries are not supported in mutation predicates");
|
|
100
|
-
});
|
|
101
|
-
return lhs(eb).source;
|
|
102
|
-
}
|
|
103
|
-
if (operator === undefined)
|
|
104
|
-
throw new TypeError("where() requires an operator");
|
|
105
|
-
return buildBinaryCondition(lhs, operator, rhs);
|
|
106
|
-
}
|
|
107
|
-
function compileMutationPredicates(wheres) {
|
|
108
|
-
const predicates = wheres.flatMap((where) => splitCondition(materialize(where, mutationCompileContext)));
|
|
109
|
-
for (const predicate of predicates) {
|
|
110
|
-
if (hasAggregate(predicate.left) || hasAggregate(predicate.right)) {
|
|
111
|
-
throw new TypeError("Aggregate functions are not allowed in mutation predicates");
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
return predicates;
|
|
115
|
-
}
|
|
116
|
-
async function runReturning(services, statement, returning) {
|
|
117
|
-
const result = await services.runStatement(statement, { returning });
|
|
118
|
-
return (result.returnedRows ?? []);
|
|
119
|
-
}
|
|
120
|
-
// --- UPDATE -------------------------------------------------------------------------------------
|
|
121
|
-
export class UpdateQueryBuilder {
|
|
122
|
-
services;
|
|
123
|
-
table;
|
|
124
|
-
wheres;
|
|
125
|
-
assignments;
|
|
126
|
-
returningColumns;
|
|
127
|
-
constructor(services, table, wheres = [], assignments = [], returningColumns) {
|
|
128
|
-
this.services = services;
|
|
129
|
-
this.table = table;
|
|
130
|
-
this.wheres = wheres;
|
|
131
|
-
this.assignments = assignments;
|
|
132
|
-
this.returningColumns = returningColumns;
|
|
133
|
-
}
|
|
134
|
-
set(changes, value) {
|
|
135
|
-
const resolved = typeof changes === "string"
|
|
136
|
-
? { [changes]: value }
|
|
137
|
-
: typeof changes === "function"
|
|
138
|
-
? changes(createExpressionBuilder(() => {
|
|
139
|
-
throw new TypeError("Subqueries are not supported in UPDATE assignments");
|
|
140
|
-
}))
|
|
141
|
-
: changes;
|
|
142
|
-
const additions = Object.entries(resolved)
|
|
143
|
-
// Kysely convention: an undefined value means "leave this column untouched", so
|
|
144
|
-
// `set({ ...partialPatch })` is safe. An explicit null still writes NULL.
|
|
145
|
-
.filter(([, entry]) => entry !== undefined)
|
|
146
|
-
.map(([column, entry]) => ({
|
|
147
|
-
column,
|
|
148
|
-
source: isExpressionWrapper(entry) ? entry.source : literalExpression(entry),
|
|
149
|
-
}));
|
|
150
|
-
return new UpdateQueryBuilder(this.services, this.table, this.wheres, [...this.assignments, ...additions], this.returningColumns);
|
|
151
|
-
}
|
|
152
|
-
where(lhs, operator, rhs) {
|
|
153
|
-
return new UpdateQueryBuilder(this.services, this.table, [...this.wheres, mutationWhereSource(lhs, operator, rhs)], this.assignments, this.returningColumns);
|
|
154
|
-
}
|
|
155
|
-
/** Returns the affected rows (post-update values) projected to these columns. */
|
|
156
|
-
returning(columns) {
|
|
157
|
-
return new UpdateQueryBuilder(this.services, this.table, this.wheres, this.assignments, columns);
|
|
158
|
-
}
|
|
159
|
-
/** Returns the complete affected rows (post-update values). */
|
|
160
|
-
returningAll() {
|
|
161
|
-
return new UpdateQueryBuilder(this.services, this.table, this.wheres, this.assignments, "*");
|
|
162
|
-
}
|
|
163
|
-
compile() {
|
|
164
|
-
if (this.assignments.length === 0)
|
|
165
|
-
throw new TypeError("updateTable() requires set()");
|
|
166
|
-
const compiled = this.assignments.map(({ column, source }) => {
|
|
167
|
-
const expression = materialize(source, mutationCompileContext);
|
|
168
|
-
if (hasAggregate(expression)) {
|
|
169
|
-
throw new TypeError("Aggregate functions are not allowed in UPDATE assignments");
|
|
170
|
-
}
|
|
171
|
-
return { column, expression };
|
|
172
|
-
});
|
|
173
|
-
if (new Set(compiled.map(({ column }) => column)).size !== compiled.length) {
|
|
174
|
-
throw new TypeError("UPDATE assignments must set each column once");
|
|
175
|
-
}
|
|
176
|
-
return {
|
|
177
|
-
kind: "update",
|
|
178
|
-
table: this.table,
|
|
179
|
-
assignments: compiled,
|
|
180
|
-
predicates: compileMutationPredicates(this.wheres),
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
async execute() {
|
|
184
|
-
if (this.returningColumns !== undefined) {
|
|
185
|
-
return runReturning(this.services, this.compile(), this.returningColumns);
|
|
186
|
-
}
|
|
187
|
-
const result = await this.services.runStatement(this.compile());
|
|
188
|
-
return [{ numUpdatedRows: result.rowCount ?? 0 }];
|
|
189
|
-
}
|
|
190
|
-
async executeTakeFirst() {
|
|
191
|
-
return takeFirst(this.execute());
|
|
192
|
-
}
|
|
193
|
-
async executeTakeFirstOrThrow() {
|
|
194
|
-
return takeFirstOrThrow(this.execute());
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
// --- DELETE -------------------------------------------------------------------------------------
|
|
198
|
-
export class DeleteQueryBuilder {
|
|
199
|
-
services;
|
|
200
|
-
table;
|
|
201
|
-
wheres;
|
|
202
|
-
returningColumns;
|
|
203
|
-
constructor(services, table, wheres = [], returningColumns) {
|
|
204
|
-
this.services = services;
|
|
205
|
-
this.table = table;
|
|
206
|
-
this.wheres = wheres;
|
|
207
|
-
this.returningColumns = returningColumns;
|
|
208
|
-
}
|
|
209
|
-
where(lhs, operator, rhs) {
|
|
210
|
-
return new DeleteQueryBuilder(this.services, this.table, [...this.wheres, mutationWhereSource(lhs, operator, rhs)], this.returningColumns);
|
|
211
|
-
}
|
|
212
|
-
/** Returns the deleted rows projected to these columns. */
|
|
213
|
-
returning(columns) {
|
|
214
|
-
return new DeleteQueryBuilder(this.services, this.table, this.wheres, columns);
|
|
215
|
-
}
|
|
216
|
-
/** Returns the complete deleted rows. */
|
|
217
|
-
returningAll() {
|
|
218
|
-
return new DeleteQueryBuilder(this.services, this.table, this.wheres, "*");
|
|
219
|
-
}
|
|
220
|
-
compile() {
|
|
221
|
-
return {
|
|
222
|
-
kind: "delete",
|
|
223
|
-
table: this.table,
|
|
224
|
-
predicates: compileMutationPredicates(this.wheres),
|
|
225
|
-
};
|
|
226
|
-
}
|
|
227
|
-
async execute() {
|
|
228
|
-
if (this.returningColumns !== undefined) {
|
|
229
|
-
return runReturning(this.services, this.compile(), this.returningColumns);
|
|
230
|
-
}
|
|
231
|
-
const result = await this.services.runStatement(this.compile());
|
|
232
|
-
return [{ numDeletedRows: result.rowCount ?? 0 }];
|
|
233
|
-
}
|
|
234
|
-
async executeTakeFirst() {
|
|
235
|
-
return takeFirst(this.execute());
|
|
236
|
-
}
|
|
237
|
-
async executeTakeFirstOrThrow() {
|
|
238
|
-
return takeFirstOrThrow(this.execute());
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
//# sourceMappingURL=mutations.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../../src/engine/dsl/mutations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import { type CompiledQuery, type SetOperator } from "../query.js";
|
|
2
|
-
import { ExpressionWrapper, type ComparisonOperatorToken, type ExpressionBuilder, type InOperatorToken, type IsOperatorToken, type LikeOperatorToken, type ScalarSubquery, type SqlBool, type ValueOperand } from "./expression.js";
|
|
3
|
-
import { LiveQuery, type LiveQueryServices } from "./live-query.js";
|
|
4
|
-
import { type AllColumnsRow, type BlockCompilable, type ColumnReference, type CompileContext, type ContextWithLeftTable, type ContextWithTable, type ExpressionSource, type JoinResult, type ReferencedValue, type RowFromSelections, type ColumnReferenceOf, type Selection, type Simplify, type TableExpression, type TypedQueryEnvelope } from "./types.js";
|
|
5
|
-
/**
|
|
6
|
-
* Kysely-style immutable select builder. Every method returns a new builder; `compile()` runs the
|
|
7
|
-
* exact assembly pipeline the SQL parser ends in (`assembleSelectBlock` and friends with a shared
|
|
8
|
-
* derived-source sequence), so a builder query and its equivalent SQL produce identical optimized
|
|
9
|
-
* plans — same validation errors, same desugars, same execution strategy.
|
|
10
|
-
*/
|
|
11
|
-
/** Thrown by `executeTakeFirstOrThrow` when the query returned no rows. */
|
|
12
|
-
export declare class NoResultError extends Error {
|
|
13
|
-
constructor();
|
|
14
|
-
}
|
|
15
|
-
export interface ExecuteServices {
|
|
16
|
-
run<TRow>(query: TypedQueryEnvelope<TRow>): Promise<TRow[]>;
|
|
17
|
-
live: LiveQueryServices | undefined;
|
|
18
|
-
}
|
|
19
|
-
/** A sub-select named for use as a derived table in `selectFrom`. */
|
|
20
|
-
export interface AliasedSelectQuery<out TRow, out TAlias extends string> {
|
|
21
|
-
readonly kind: "dsl-aliased-select";
|
|
22
|
-
readonly alias: TAlias;
|
|
23
|
-
readonly builder: BlockCompilable;
|
|
24
|
-
readonly __row?: TRow;
|
|
25
|
-
}
|
|
26
|
-
export declare function isAliasedSelectQuery(value: unknown): value is AliasedSelectQuery<unknown, string>;
|
|
27
|
-
export interface CteDefinition {
|
|
28
|
-
readonly name: string;
|
|
29
|
-
readonly builder: BlockCompilable;
|
|
30
|
-
}
|
|
31
|
-
type SourceState = {
|
|
32
|
-
kind: "table";
|
|
33
|
-
table: string;
|
|
34
|
-
alias: string;
|
|
35
|
-
} | {
|
|
36
|
-
kind: "derived";
|
|
37
|
-
builder: BlockCompilable;
|
|
38
|
-
alias: string;
|
|
39
|
-
};
|
|
40
|
-
interface JoinState {
|
|
41
|
-
join: "inner" | "left";
|
|
42
|
-
source: SourceState;
|
|
43
|
-
on: ExpressionSource;
|
|
44
|
-
}
|
|
45
|
-
interface SelectionState {
|
|
46
|
-
alias: string;
|
|
47
|
-
source: ExpressionSource;
|
|
48
|
-
}
|
|
49
|
-
interface SelectState {
|
|
50
|
-
ctes: readonly CteDefinition[];
|
|
51
|
-
base: SourceState;
|
|
52
|
-
joins: readonly JoinState[];
|
|
53
|
-
wheres: readonly ExpressionSource[];
|
|
54
|
-
groupBys: readonly ExpressionSource[];
|
|
55
|
-
havings: readonly ExpressionSource[];
|
|
56
|
-
orderBys: ReadonlyArray<{
|
|
57
|
-
source: ExpressionSource;
|
|
58
|
-
direction: "asc" | "desc";
|
|
59
|
-
}>;
|
|
60
|
-
selections: readonly SelectionState[] | "all" | undefined;
|
|
61
|
-
distinct: boolean;
|
|
62
|
-
limit?: number;
|
|
63
|
-
offset?: number;
|
|
64
|
-
setOps: ReadonlyArray<{
|
|
65
|
-
op: SetOperator;
|
|
66
|
-
builder: BlockCompilable;
|
|
67
|
-
}>;
|
|
68
|
-
}
|
|
69
|
-
export declare function parseTableExpression(expression: string): {
|
|
70
|
-
table: string;
|
|
71
|
-
alias: string;
|
|
72
|
-
};
|
|
73
|
-
type WhereFactory<DB, TCtx> = (eb: ExpressionBuilder<DB, TCtx>) => ExpressionWrapper<SqlBool>;
|
|
74
|
-
type SelectFactory<DB, TCtx, TSel> = (eb: ExpressionBuilder<DB, TCtx>) => readonly TSel[];
|
|
75
|
-
export declare class JoinBuilder<in out TCtx> {
|
|
76
|
-
readonly conditions: readonly ExpressionSource[];
|
|
77
|
-
constructor(conditions?: readonly ExpressionSource[]);
|
|
78
|
-
/** Joins on two columns; the usual `ON a.x = b.y`. */
|
|
79
|
-
onRef(lhs: ColumnReference<TCtx>, operator: ComparisonOperatorToken, rhs: ColumnReference<TCtx>): JoinBuilder<TCtx>;
|
|
80
|
-
/** Joins a column against a value. */
|
|
81
|
-
on<TRef extends ColumnReference<TCtx> & string>(lhs: TRef, operator: ComparisonOperatorToken | LikeOperatorToken, rhs: ValueOperand<ReferencedValue<TCtx, TRef>>): JoinBuilder<TCtx>;
|
|
82
|
-
/** @internal ANDs the accumulated conditions; a single condition stays an equi-join candidate. */
|
|
83
|
-
get onSource(): ExpressionSource;
|
|
84
|
-
}
|
|
85
|
-
type JoinCallback<TCtx> = (join: JoinBuilder<TCtx>) => JoinBuilder<TCtx>;
|
|
86
|
-
export declare class SelectQueryBuilder<in out DB, in out TCtx, out TRow> implements BlockCompilable {
|
|
87
|
-
#private;
|
|
88
|
-
private readonly state;
|
|
89
|
-
private readonly services;
|
|
90
|
-
readonly kind: "dsl-select-builder";
|
|
91
|
-
/** Type-only: the output row, e.g. `type Row = typeof query.$inferRow`. Undefined at runtime. */
|
|
92
|
-
readonly $inferRow: TRow;
|
|
93
|
-
constructor(state: SelectState, services: ExecuteServices | undefined);
|
|
94
|
-
static create<DB, TCtx, TRow>(source: SourceState, ctes: readonly CteDefinition[], services: ExecuteServices | undefined): SelectQueryBuilder<DB, TCtx, TRow>;
|
|
95
|
-
innerJoin<TE extends TableExpression<DB>>(table: TE, lhs: ColumnReference<ContextWithTable<DB, TCtx, TE>>, rhs: ColumnReference<ContextWithTable<DB, TCtx, TE>>): JoinResult<TCtx, TE, SelectQueryBuilder<DB, ContextWithTable<DB, TCtx, TE>, TRow>>;
|
|
96
|
-
innerJoin<TE extends TableExpression<DB>>(table: TE, callback: JoinCallback<ContextWithTable<DB, TCtx, TE>>): JoinResult<TCtx, TE, SelectQueryBuilder<DB, ContextWithTable<DB, TCtx, TE>, TRow>>;
|
|
97
|
-
leftJoin<TE extends TableExpression<DB>>(table: TE, lhs: ColumnReference<ContextWithTable<DB, TCtx, TE>>, rhs: ColumnReference<ContextWithTable<DB, TCtx, TE>>): JoinResult<TCtx, TE, SelectQueryBuilder<DB, ContextWithLeftTable<DB, TCtx, TE>, TRow>>;
|
|
98
|
-
leftJoin<TE extends TableExpression<DB>>(table: TE, callback: JoinCallback<ContextWithTable<DB, TCtx, TE>>): JoinResult<TCtx, TE, SelectQueryBuilder<DB, ContextWithLeftTable<DB, TCtx, TE>, TRow>>;
|
|
99
|
-
where<TRef extends ColumnReference<TCtx> & string>(lhs: TRef, operator: ComparisonOperatorToken | LikeOperatorToken, rhs: ValueOperand<ReferencedValue<TCtx, TRef>>): SelectQueryBuilder<DB, TCtx, TRow>;
|
|
100
|
-
where<TRef extends ColumnReference<TCtx> & string>(lhs: TRef, operator: InOperatorToken, rhs: ReadonlyArray<ReferencedValue<TCtx, TRef>> | ScalarSubquery<ReferencedValue<TCtx, TRef>>): SelectQueryBuilder<DB, TCtx, TRow>;
|
|
101
|
-
where(lhs: ColumnReference<TCtx>, operator: IsOperatorToken, rhs: null): SelectQueryBuilder<DB, TCtx, TRow>;
|
|
102
|
-
where(factory: WhereFactory<DB, TCtx>): SelectQueryBuilder<DB, TCtx, TRow>;
|
|
103
|
-
/**
|
|
104
|
-
* Typeahead-friendly document search: filters to rows matching every query term and orders
|
|
105
|
-
* by BM25 relevance, descending. Pure sugar for
|
|
106
|
-
* `.where(eb.match(columns, query)).orderBy(fn.bm25(columns, query), "desc")` — the ordering
|
|
107
|
-
* expression rides as a hidden select item, so the row shape is exactly what you selected
|
|
108
|
-
* and repeated `.search()` calls compose. Wanting the score value is the only reason to also
|
|
109
|
-
* select `fn.bm25(...)`; execution (index pruning, streaming under a budget) is identical
|
|
110
|
-
* either way. Columns default to "*" (every non-boolean column of the scanned table); a
|
|
111
|
-
* named select list is required, since hidden ordering columns cannot ride along a wildcard.
|
|
112
|
-
*/
|
|
113
|
-
search(query: string, options?: {
|
|
114
|
-
columns?: "*" | ReadonlyArray<ColumnReferenceOf<TCtx, string | number | Date> & string>;
|
|
115
|
-
}): SelectQueryBuilder<DB, TCtx, TRow>;
|
|
116
|
-
having<TRef extends ColumnReference<TCtx> & string>(lhs: TRef, operator: ComparisonOperatorToken | LikeOperatorToken, rhs: ValueOperand<ReferencedValue<TCtx, TRef>>): SelectQueryBuilder<DB, TCtx, TRow>;
|
|
117
|
-
having<TRef extends ColumnReference<TCtx> & string>(lhs: TRef, operator: InOperatorToken, rhs: ReadonlyArray<ReferencedValue<TCtx, TRef>> | ScalarSubquery<ReferencedValue<TCtx, TRef>>): SelectQueryBuilder<DB, TCtx, TRow>;
|
|
118
|
-
having(lhs: ColumnReference<TCtx>, operator: IsOperatorToken, rhs: null): SelectQueryBuilder<DB, TCtx, TRow>;
|
|
119
|
-
having(factory: WhereFactory<DB, TCtx>): SelectQueryBuilder<DB, TCtx, TRow>;
|
|
120
|
-
groupBy(references: ColumnReference<TCtx> | ExpressionWrapper<unknown> | ReadonlyArray<ColumnReference<TCtx> | ExpressionWrapper<unknown>> | ((eb: ExpressionBuilder<DB, TCtx>) => ExpressionWrapper<unknown> | ReadonlyArray<ExpressionWrapper<unknown>>)): SelectQueryBuilder<DB, TCtx, TRow>;
|
|
121
|
-
orderBy(reference: ColumnReference<TCtx> | (keyof TRow & string) | ExpressionWrapper<unknown> | ((eb: ExpressionBuilder<DB, TCtx>) => ExpressionWrapper<unknown>), direction?: "asc" | "desc"): SelectQueryBuilder<DB, TCtx, TRow>;
|
|
122
|
-
limit(limit: number): SelectQueryBuilder<DB, TCtx, TRow>;
|
|
123
|
-
offset(offset: number): SelectQueryBuilder<DB, TCtx, TRow>;
|
|
124
|
-
distinct(): SelectQueryBuilder<DB, TCtx, TRow>;
|
|
125
|
-
select<TSel extends Selection<TCtx>>(selections: readonly TSel[] | SelectFactory<DB, TCtx, TSel>): SelectQueryBuilder<DB, TCtx, Simplify<TRow & RowFromSelections<TCtx, TSel>>>;
|
|
126
|
-
select<TSel extends Selection<TCtx>>(selection: TSel | ((eb: ExpressionBuilder<DB, TCtx>) => TSel)): SelectQueryBuilder<DB, TCtx, Simplify<TRow & RowFromSelections<TCtx, TSel>>>;
|
|
127
|
-
selectAll(): SelectQueryBuilder<DB, TCtx, Simplify<TRow & AllColumnsRow<TCtx>>>;
|
|
128
|
-
union<TOtherCtx>(other: SelectQueryBuilder<DB, TOtherCtx, TRow>): SelectQueryBuilder<DB, TCtx, TRow>;
|
|
129
|
-
unionAll<TOtherCtx>(other: SelectQueryBuilder<DB, TOtherCtx, TRow>): SelectQueryBuilder<DB, TCtx, TRow>;
|
|
130
|
-
intersect<TOtherCtx>(other: SelectQueryBuilder<DB, TOtherCtx, TRow>): SelectQueryBuilder<DB, TCtx, TRow>;
|
|
131
|
-
except<TOtherCtx>(other: SelectQueryBuilder<DB, TOtherCtx, TRow>): SelectQueryBuilder<DB, TCtx, TRow>;
|
|
132
|
-
/** Names this query for use as a derived table in `selectFrom`. */
|
|
133
|
-
as<TAlias extends string>(alias: TAlias): AliasedSelectQuery<TRow, TAlias>;
|
|
134
|
-
/** Compiles to the optimized plan envelope `run()` executes. */
|
|
135
|
-
compile(): TypedQueryEnvelope<TRow>;
|
|
136
|
-
/** @internal Compiles this builder as one block under the caller's compile context. */
|
|
137
|
-
compileBlock(context: CompileContext, label: string): CompiledQuery;
|
|
138
|
-
execute(): Promise<TRow[]>;
|
|
139
|
-
executeTakeFirst(): Promise<TRow | undefined>;
|
|
140
|
-
executeTakeFirstOrThrow(): Promise<TRow>;
|
|
141
|
-
/**
|
|
142
|
-
* Turns the query into a live query: subscribers get the current result immediately and a
|
|
143
|
-
* fresh result after any commit that may have changed it (digest-suppressed when identical).
|
|
144
|
-
*/
|
|
145
|
-
live(): LiveQuery<TRow>;
|
|
146
|
-
}
|
|
147
|
-
export {};
|
|
148
|
-
//# sourceMappingURL=select-query-builder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select-query-builder.d.ts","sourceRoot":"","sources":["../../../src/engine/dsl/select-query-builder.ts"],"names":[],"mappings":"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"}
|