uql-orm 0.20.0 → 0.20.2
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/CHANGELOG.md +19 -0
- package/dist/dialect/abstractSqlDialect.d.ts +34 -25
- package/dist/dialect/abstractSqlDialect.d.ts.map +1 -1
- package/dist/dialect/abstractSqlDialect.js +58 -76
- package/dist/dialect/abstractSqlDialect.js.map +1 -1
- package/dist/dialect/jsonSql.d.ts +20 -0
- package/dist/dialect/jsonSql.d.ts.map +1 -1
- package/dist/dialect/jsonSql.js +20 -0
- package/dist/dialect/jsonSql.js.map +1 -1
- package/dist/dialect/mysqlLikeSqlDialect.d.ts +11 -3
- package/dist/dialect/mysqlLikeSqlDialect.d.ts.map +1 -1
- package/dist/dialect/mysqlLikeSqlDialect.js +18 -13
- package/dist/dialect/mysqlLikeSqlDialect.js.map +1 -1
- package/dist/dialect/pgLikeSqlDialect.d.ts +7 -8
- package/dist/dialect/pgLikeSqlDialect.d.ts.map +1 -1
- package/dist/dialect/pgLikeSqlDialect.js +14 -20
- package/dist/dialect/pgLikeSqlDialect.js.map +1 -1
- package/dist/dialect/queryContext.d.ts +13 -1
- package/dist/dialect/queryContext.d.ts.map +1 -1
- package/dist/dialect/queryContext.js +17 -2
- package/dist/dialect/queryContext.js.map +1 -1
- package/dist/dialect/vectorSqlDialect.d.ts +1 -1
- package/dist/dialect/vectorSqlDialect.d.ts.map +1 -1
- package/dist/dialect/vectorSqlDialect.js +4 -7
- package/dist/dialect/vectorSqlDialect.js.map +1 -1
- package/dist/http/handler.d.ts +5 -1
- package/dist/http/handler.d.ts.map +1 -1
- package/dist/http/handler.js.map +1 -1
- package/dist/maria/mariaDialect.d.ts +0 -1
- package/dist/maria/mariaDialect.d.ts.map +1 -1
- package/dist/maria/mariaDialect.js +0 -1
- package/dist/maria/mariaDialect.js.map +1 -1
- package/dist/migrate/cli.d.ts.map +1 -1
- package/dist/migrate/cli.js +3 -2
- package/dist/migrate/cli.js.map +1 -1
- package/dist/mongo/mongoDialect.d.ts +1 -1
- package/dist/mongo/mongoDialect.d.ts.map +1 -1
- package/dist/mongo/mongoDialect.js +10 -3
- package/dist/mongo/mongoDialect.js.map +1 -1
- package/dist/mongo/mongodbQuerier.d.ts.map +1 -1
- package/dist/mongo/mongodbQuerier.js +3 -3
- package/dist/mongo/mongodbQuerier.js.map +1 -1
- package/dist/mysql/mysqlDialect.d.ts +0 -1
- package/dist/mysql/mysqlDialect.d.ts.map +1 -1
- package/dist/mysql/mysqlDialect.js +0 -1
- package/dist/mysql/mysqlDialect.js.map +1 -1
- package/dist/sqlite/sqliteDialect.d.ts +2 -3
- package/dist/sqlite/sqliteDialect.d.ts.map +1 -1
- package/dist/sqlite/sqliteDialect.js +22 -22
- package/dist/sqlite/sqliteDialect.js.map +1 -1
- package/dist/type/dialect.d.ts +7 -0
- package/dist/type/dialect.d.ts.map +1 -1
- package/dist/type/entity.d.ts +2 -2
- package/dist/type/entity.d.ts.map +1 -1
- package/dist/type/querier.d.ts +0 -3
- package/dist/type/querier.d.ts.map +1 -1
- package/dist/type/querier.js.map +1 -1
- package/dist/type/query.d.ts +0 -4
- package/dist/type/query.d.ts.map +1 -1
- package/dist/util/dialect.util.d.ts +2 -4
- package/dist/util/dialect.util.d.ts.map +1 -1
- package/dist/util/dialect.util.js +4 -10
- package/dist/util/dialect.util.js.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,25 @@ All notable changes to this project will be documented in this file. Please add
|
|
|
4
4
|
|
|
5
5
|
date format is [yyyy-mm-dd]
|
|
6
6
|
|
|
7
|
+
## [0.20.2] - 2026-07-29
|
|
8
|
+
|
|
9
|
+
### Fixes
|
|
10
|
+
|
|
11
|
+
- **`uql drift:check` reported column type drift as "in sync".** The report compares each type rendered as the dialect's SQL, but the CLI built it without passing the dialect, so every type formatted as `unknown` and compared equal to every other one. A column that is `VARCHAR(50)` in the entity and `INTEGER` in the database now reports a critical type mismatch and exits `1`, instead of passing silently.
|
|
12
|
+
|
|
13
|
+
### Internal
|
|
14
|
+
|
|
15
|
+
- Test coverage raised to 98.5% statements / 93.7% branches (thresholds bumped to match), covering behaviors that previously had none: entity lifecycle hooks (`@BeforeInsert` and friends) executing through a querier, JSON column hydration through populated relations, safe-mode sync never dropping a column or index, `generate:from-db` entity emission, and the introspector's foreign-key/index AST building.
|
|
16
|
+
|
|
17
|
+
## [0.20.1] - 2026-07-27
|
|
18
|
+
|
|
19
|
+
### Fixes
|
|
20
|
+
|
|
21
|
+
- **A `security: true` filter on a joined (m1/11) relation was skipped by `$populate` with no explicit `$where` on it, on every driver. ** Now we enforced unconditionally, same as an explicit `$where` already was.
|
|
22
|
+
- **PostgreSQL/CockroachDB: `$size` misbound its value when it wasn't the first condition in `$where`.** `{ name: 'Acme', tags: { $size: 3 } }` reused placeholder `$1` for both conditions.
|
|
23
|
+
- **PostgreSQL/CockroachDB: `upsertOne`/`upsertMany` bound the wrong value to the 2nd+ auto-filled `onUpdate` column omitted from the payload.**
|
|
24
|
+
- **SQLite/MySQL/MariaDB: a nested `$elemMatch` on an array-of-arrays field could return zero rows instead of the matching ones** (only reachable by bypassing the type system - no typed query is affected).
|
|
25
|
+
|
|
7
26
|
## [0.20.0] - 2026-07-26
|
|
8
27
|
|
|
9
28
|
### `$merge` renamed to `$set` (breaking)
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { type EntityMeta, type FieldKey, type FieldOptions, type IsolationLevel, type JsonUpdateOp, type Query, type QueryAggMap, type QueryAggregate, type QueryComparisonOptions, type QueryConflictPaths, type QueryContext, type QueryDialect, type QueryExclude, type QueryGroupMap, type QueryHavingMap, type QueryOptions, type QueryPager, type QueryPopulate, QueryRaw, type QueryRawFnOptions, type QuerySearch, type QuerySelect, type QuerySelectOptions, type QuerySelectValue, type QuerySizeComparisonOps, type QuerySortMap, type QueryWhere, type QueryWhereArray, type QueryWhereFieldOperatorMap, type QueryWhereMap, type QueryWhereOptions, type RelationOptions, type SqlDialectName, type SqlQueryDialect, type Type, type UpdatePayload } from '../type/index.js';
|
|
2
|
-
import { type CallbackKey } from '../util/index.js';
|
|
3
2
|
import { VectorSqlDialect } from './vectorSqlDialect.js';
|
|
4
3
|
export declare abstract class AbstractSqlDialect extends VectorSqlDialect implements QueryDialect, SqlQueryDialect {
|
|
5
4
|
abstract readonly dialectName: SqlDialectName;
|
|
@@ -23,6 +22,15 @@ export declare abstract class AbstractSqlDialect extends VectorSqlDialect implem
|
|
|
23
22
|
readonly maxBindValues: number;
|
|
24
23
|
getBeginTransactionStatements(isolationLevel?: IsolationLevel): string[];
|
|
25
24
|
createContext(): QueryContext;
|
|
25
|
+
/**
|
|
26
|
+
* Builds SQL text in isolation via `build`, so the caller can embed it inline (e.g.
|
|
27
|
+
* `"col" = <text>`) instead of appending it at the end of `ctx`. The fragment binds any value
|
|
28
|
+
* straight into `ctx`'s own values array - shared by reference, not copied - so `addValue` numbers
|
|
29
|
+
* its placeholder correctly against the real query from the start; a fresh, empty array would
|
|
30
|
+
* instead number from `1` regardless of how many values `ctx` already has, misnumbering every
|
|
31
|
+
* bound value on `$n`-placeholder dialects once `ctx` isn't otherwise empty.
|
|
32
|
+
*/
|
|
33
|
+
protected buildFragment(ctx: QueryContext, build: (fragmentCtx: QueryContext) => void): string;
|
|
26
34
|
addValue(values: unknown[], value: unknown): string;
|
|
27
35
|
/**
|
|
28
36
|
* Normalizes a parameter value for the database driver.
|
|
@@ -111,17 +119,21 @@ export declare abstract class AbstractSqlDialect extends VectorSqlDialect implem
|
|
|
111
119
|
/** `$size`: the length of the JSON array at `jsonField`, compared against `value`. */
|
|
112
120
|
protected abstract jsonSize(ctx: QueryContext, jsonField: string, value: number | QuerySizeComparisonOps): string;
|
|
113
121
|
/**
|
|
114
|
-
* Explodes the JSON array at `jsonField` into rows, as the `FROM` of an `EXISTS` subquery
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
122
|
+
* Explodes the JSON array at `jsonField` into rows, as the `FROM` of an `EXISTS` subquery, under
|
|
123
|
+
* `alias` (from {@link QueryContext.nextAlias} - a fresh name per call, since `$elemMatch`/`$all`
|
|
124
|
+
* can recurse into this on a nested array and a fixed, reused alias would let the inner occurrence
|
|
125
|
+
* shadow the outer one it needs to correlate against). An empty `fields` means the elements are
|
|
126
|
+
* scalars, in which case `asJson` says whether they are read as JSON or as text; otherwise they
|
|
127
|
+
* are objects and `fields` are the keys the conditions will read (MySQL needs them upfront for its
|
|
128
|
+
* `JSON_TABLE` column list).
|
|
118
129
|
*/
|
|
119
|
-
protected abstract jsonElemFrom(jsonField: string, fields: readonly string[], asJson?: boolean): string;
|
|
130
|
+
protected abstract jsonElemFrom(jsonField: string, fields: readonly string[], alias: string, asJson?: boolean): string;
|
|
120
131
|
/**
|
|
121
|
-
* References an exploded element
|
|
122
|
-
*
|
|
132
|
+
* References an exploded element under `alias` (the same one passed to the {@link jsonElemFrom}
|
|
133
|
+
* call it explodes): the element itself, or one `field` of it. `asJson` asks for the JSON-valued
|
|
134
|
+
* form instead of the text one - see {@link isJsonbOp} for when that matters.
|
|
123
135
|
*/
|
|
124
|
-
protected abstract jsonElemRef(field?: string, asJson?: boolean): string;
|
|
136
|
+
protected abstract jsonElemRef(alias: string, field?: string, asJson?: boolean): string;
|
|
125
137
|
/**
|
|
126
138
|
* Whether the dialect's array containment ({@link jsonAll}) matches an object element that merely
|
|
127
139
|
* *includes* the given keys, as PostgreSQL's `@>` and MySQL's `JSON_CONTAINS` do. SQLite compares
|
|
@@ -155,7 +167,10 @@ export declare abstract class AbstractSqlDialect extends VectorSqlDialect implem
|
|
|
155
167
|
* `1` equal to `1.0` - JSON equality would not.
|
|
156
168
|
*/
|
|
157
169
|
protected isJsonbOp(op: string, value?: unknown): boolean;
|
|
158
|
-
/**
|
|
170
|
+
/**
|
|
171
|
+
* A JSON-encoded bound parameter, cast to the dialect's JSON type. Only the positional-placeholder
|
|
172
|
+
* dialects use this - PostgreSQL binds JSON through {@link PgLikeSqlDialect.jsonScalarParam} instead.
|
|
173
|
+
*/
|
|
159
174
|
protected jsonScalarParam(ctx: QueryContext, value: unknown): string;
|
|
160
175
|
getComparisonKey<E>(ctx: QueryContext, entity: Type<E>, key: FieldKey<E>, { prefix }?: QueryOptions): void;
|
|
161
176
|
sort<E>(ctx: QueryContext, entity: Type<E>, sort: QuerySortMap<E> | undefined, { prefix }: QueryOptions): void;
|
|
@@ -186,17 +201,9 @@ export declare abstract class AbstractSqlDialect extends VectorSqlDialect implem
|
|
|
186
201
|
update<E>(ctx: QueryContext, entity: Type<E>, q: QuerySearch<E>, payload: UpdatePayload<E>, opts?: QueryOptions): void;
|
|
187
202
|
upsert<E>(ctx: QueryContext, entity: Type<E>, conflictPaths: QueryConflictPaths<E>, payload: E | E[]): void;
|
|
188
203
|
protected getUpsertUpdateAssignments<E>(ctx: QueryContext, meta: EntityMeta<E>, conflictPaths: QueryConflictPaths<E>, payload: E | E[], callback?: (columnName: string) => string): string;
|
|
189
|
-
/**
|
|
190
|
-
* Shared ON CONFLICT ... DO UPDATE / DO NOTHING ... RETURNING logic for positional-placeholder
|
|
191
|
-
* dialects (SQLite). Uses a deferred context for update params so they follow INSERT params.
|
|
192
|
-
* PG uses its own implementation since `$N` numbered placeholders handle param ordering natively.
|
|
193
|
-
*/
|
|
194
|
-
protected onConflictUpsert<E>(ctx: QueryContext, entity: Type<E>, conflictPaths: QueryConflictPaths<E>, payload: E | E[], insertFn: (ctx: QueryContext, entity: Type<E>, payload: E | E[]) => void): void;
|
|
195
204
|
protected getUpsertConflictPathsStr<E>(meta: EntityMeta<E>, conflictPaths: QueryConflictPaths<E>): string;
|
|
196
205
|
delete<E>(ctx: QueryContext, entity: Type<E>, q: QuerySearch<E>, opts?: QueryOptions): void;
|
|
197
206
|
escapeId(val: string, forbidQualified?: boolean, addDot?: boolean): string;
|
|
198
|
-
protected getPersistables<E>(ctx: QueryContext, meta: EntityMeta<E>, payload: E | E[], callbackKey: CallbackKey): Record<string, unknown>[];
|
|
199
|
-
protected getPersistable<E>(ctx: QueryContext, meta: EntityMeta<E>, payload: E, callbackKey: CallbackKey): Record<string, unknown>;
|
|
200
207
|
protected formatPersistableValue<E>(ctx: QueryContext, field: FieldOptions | undefined, value: unknown): void;
|
|
201
208
|
/**
|
|
202
209
|
* Reads `operand` as a JSON value. Passing the `?` placeholder yields the cast for a bound
|
|
@@ -204,11 +211,6 @@ export declare abstract class AbstractSqlDialect extends VectorSqlDialect implem
|
|
|
204
211
|
* why this is one hook rather than a placeholder variant plus an expression variant.
|
|
205
212
|
*/
|
|
206
213
|
protected jsonCast(operand: string): string;
|
|
207
|
-
/**
|
|
208
|
-
* The JSON cast applied to a bound placeholder. Only the positional-placeholder dialects use it -
|
|
209
|
-
* PostgreSQL binds JSON through {@link PgLikeSqlDialect.jsonScalarParam} instead.
|
|
210
|
-
*/
|
|
211
|
-
protected getJsonCastExpr(): string;
|
|
212
214
|
/**
|
|
213
215
|
* Generate the full `"col" = <expression>` assignment for a JSON update operator payload.
|
|
214
216
|
* Called from `update()` when a field value is a {@link JsonUpdateOp}.
|
|
@@ -248,7 +250,6 @@ export declare abstract class AbstractSqlDialect extends VectorSqlDialect implem
|
|
|
248
250
|
* @returns resolved metadata or `undefined` if the key is not a JSON dot-notation path
|
|
249
251
|
*/
|
|
250
252
|
protected resolveJsonDotPath<E>(meta: EntityMeta<E>, key: string, prefix?: string): {
|
|
251
|
-
root: string;
|
|
252
253
|
jsonPath: string;
|
|
253
254
|
accessor: (asJsonb?: boolean) => string;
|
|
254
255
|
} | undefined;
|
|
@@ -276,6 +277,13 @@ export declare abstract class AbstractSqlDialect extends VectorSqlDialect implem
|
|
|
276
277
|
* Filter by relation using an EXISTS subquery.
|
|
277
278
|
* Supports all cardinalities: mm (via junction), 1m, m1, and 11.
|
|
278
279
|
*/
|
|
280
|
+
/**
|
|
281
|
+
* The parent side of a relation-filtering subquery: its table name, escaped id reference, and a
|
|
282
|
+
* guard against a relation with no configured references. Shared by
|
|
283
|
+
* `compareRelation`/`compareRelationSize`. `rel.references` is asserted non-null at call sites
|
|
284
|
+
* relying on this guard, since the check lives here instead of in the caller's own scope.
|
|
285
|
+
*/
|
|
286
|
+
private resolveRelationParent;
|
|
279
287
|
protected compareRelation<E>(ctx: QueryContext, entity: Type<E>, key: string, val: QueryWhereMap<unknown>, rel: RelationOptions, opts: QueryComparisonOptions): void;
|
|
280
288
|
/**
|
|
281
289
|
* Filter by relation size using a `COUNT(*)` subquery.
|
|
@@ -292,7 +300,8 @@ export declare abstract class AbstractSqlDialect extends VectorSqlDialect implem
|
|
|
292
300
|
* Append a single size comparison operator and value to the context.
|
|
293
301
|
*/
|
|
294
302
|
private appendSizeOp;
|
|
295
|
-
|
|
303
|
+
/** ANSI-style single-quote escaping. MySQL-family dialects override this for backslash escaping. */
|
|
304
|
+
escape(value: unknown): string;
|
|
296
305
|
protected get regexpOp(): string;
|
|
297
306
|
protected get likeFn(): string;
|
|
298
307
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"abstractSqlDialect.d.ts","sourceRoot":"","sources":["../../src/dialect/abstractSqlDialect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"abstractSqlDialect.d.ts","sourceRoot":"","sources":["../../src/dialect/abstractSqlDialect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { getMeta } from '../entity/index.js';
|
|
2
2
|
import { QueryRaw, RAW_ALIAS, RAW_VALUE, } from '../type/index.js';
|
|
3
|
-
import { escapeSingleQuotes } from '../util/ansiSqlLiteral.js';
|
|
3
|
+
import { escapeAnsiSqlLiteral, escapeSingleQuotes } from '../util/ansiSqlLiteral.js';
|
|
4
4
|
import { applyFilters, asSelectMap, buildQueryWhereAsMap, buildSortMap, escapeSqlId, fillOnFields, filterFieldKeys, flatObject, getFieldKeys, getInsertFieldKeys, getKeys, getRelationRequestSummary, getSoftDeleteValue, hasKeys, hasMultipleKeys, isJsonType, isJsonUpdateOp, isOperatorObject, isOperatorOnlyObject, isPopulatingRelations, isVectorSearch, normalizeScalarFieldSelection, parseGroupMap, parseRelationAtKey, raw, someValue, withoutSoftDeleteFilter, } from '../util/index.js';
|
|
5
5
|
import { buildElemMatchConditions } from './jsonArrayElemMatchUtils.js';
|
|
6
|
-
import { jsonElemExists } from './jsonSql.js';
|
|
6
|
+
import { JSON_ELEM_ALIAS_PREFIX, jsonElemExists } from './jsonSql.js';
|
|
7
7
|
import { SqlQueryContext } from './queryContext.js';
|
|
8
8
|
import { VectorSqlDialect } from './vectorSqlDialect.js';
|
|
9
9
|
export class AbstractSqlDialect extends VectorSqlDialect {
|
|
@@ -34,6 +34,19 @@ export class AbstractSqlDialect extends VectorSqlDialect {
|
|
|
34
34
|
createContext() {
|
|
35
35
|
return new SqlQueryContext(this);
|
|
36
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Builds SQL text in isolation via `build`, so the caller can embed it inline (e.g.
|
|
39
|
+
* `"col" = <text>`) instead of appending it at the end of `ctx`. The fragment binds any value
|
|
40
|
+
* straight into `ctx`'s own values array - shared by reference, not copied - so `addValue` numbers
|
|
41
|
+
* its placeholder correctly against the real query from the start; a fresh, empty array would
|
|
42
|
+
* instead number from `1` regardless of how many values `ctx` already has, misnumbering every
|
|
43
|
+
* bound value on `$n`-placeholder dialects once `ctx` isn't otherwise empty.
|
|
44
|
+
*/
|
|
45
|
+
buildFragment(ctx, build) {
|
|
46
|
+
const fragmentCtx = new SqlQueryContext(this, ctx.values);
|
|
47
|
+
build(fragmentCtx);
|
|
48
|
+
return fragmentCtx.sql;
|
|
49
|
+
}
|
|
37
50
|
addValue(values, value) {
|
|
38
51
|
values.push(this.normalizeValue(value));
|
|
39
52
|
return this.placeholder(values.length);
|
|
@@ -194,10 +207,11 @@ export class AbstractSqlDialect extends VectorSqlDialect {
|
|
|
194
207
|
ctx.append(`${joinAlias}.${this.escapeId(foreignColumnName)} = ${relPath}.${this.escapeId(localColumnName)}`);
|
|
195
208
|
refAppended = true;
|
|
196
209
|
}
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
210
|
+
// Unconditional, not gated by `relQuery.$where`: a joined relation's own filters (in
|
|
211
|
+
// particular `security: true` ones) must apply even to a bare `$populate: { rel: true }`
|
|
212
|
+
// with no explicit `$where`. `where()` -> `renderWhere()` no-ops cleanly (appends nothing)
|
|
213
|
+
// when there is truly nothing to add, so this is a pure superset of the old behavior.
|
|
214
|
+
this.where(ctx, relEntity, relQuery.$where ?? {}, { prefix: joinRelAlias, clause: 'AND' });
|
|
201
215
|
this.selectRelationJoins(ctx, relEntity, relQuery.$select, relQuery.$populate, { prefix: joinRelAlias });
|
|
202
216
|
});
|
|
203
217
|
}
|
|
@@ -412,11 +426,8 @@ export class AbstractSqlDialect extends VectorSqlDialect {
|
|
|
412
426
|
resolveOperandField(ctx, entity, key, opts) {
|
|
413
427
|
const col = getMeta(entity).fields[key];
|
|
414
428
|
if (col?.virtual) {
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
return undefined;
|
|
418
|
-
}
|
|
419
|
-
return `(${col.virtual})`;
|
|
429
|
+
this.getComparisonKey(ctx, entity, key, opts);
|
|
430
|
+
return undefined;
|
|
420
431
|
}
|
|
421
432
|
return this.columnWithPrefix(key, col, opts.prefix);
|
|
422
433
|
}
|
|
@@ -631,8 +642,9 @@ export class AbstractSqlDialect extends VectorSqlDialect {
|
|
|
631
642
|
if (isOperatorOnlyObject(match)) {
|
|
632
643
|
const entries = Object.entries(match);
|
|
633
644
|
const asJson = !this.jsonScalarElemKeepsType && entries.every(([op, val]) => this.isJsonbOp(op, val));
|
|
634
|
-
const
|
|
635
|
-
|
|
645
|
+
const alias = ctx.nextAlias(JSON_ELEM_ALIAS_PREFIX);
|
|
646
|
+
const conditions = entries.map(([op, val]) => this.buildJsonFieldCondition(ctx, () => this.jsonElemRef(alias, undefined, asJson), '', op, val, asJson));
|
|
647
|
+
return jsonElemExists(this.jsonElemFrom(jsonField, [], alias, asJson), conditions);
|
|
636
648
|
}
|
|
637
649
|
if (isOperatorObject(match)) {
|
|
638
650
|
throw TypeError(`$elemMatch cannot mix operators with field names: ${Object.keys(match).join(', ')}`);
|
|
@@ -642,11 +654,12 @@ export class AbstractSqlDialect extends VectorSqlDialect {
|
|
|
642
654
|
if (this.jsonContainmentIsPartial && !someValue(match, isOperatorObject)) {
|
|
643
655
|
return this.jsonAll(ctx, jsonField, [match]);
|
|
644
656
|
}
|
|
657
|
+
const alias = ctx.nextAlias(JSON_ELEM_ALIAS_PREFIX);
|
|
645
658
|
const conditions = buildElemMatchConditions(match, (field, op, opVal) => {
|
|
646
659
|
const asJson = this.isJsonbOp(op, opVal);
|
|
647
|
-
return this.buildJsonFieldCondition(ctx, (f) => this.jsonElemRef(f, asJson), field, op, opVal, asJson);
|
|
660
|
+
return this.buildJsonFieldCondition(ctx, (f) => this.jsonElemRef(alias, f, asJson), field, op, opVal, asJson);
|
|
648
661
|
});
|
|
649
|
-
return jsonElemExists(this.jsonElemFrom(jsonField, Object.keys(match)), conditions);
|
|
662
|
+
return jsonElemExists(this.jsonElemFrom(jsonField, Object.keys(match), alias), conditions);
|
|
650
663
|
}
|
|
651
664
|
/**
|
|
652
665
|
* Whether the operator reads the JSON *value* instead of its text form. The array operators always
|
|
@@ -665,13 +678,16 @@ export class AbstractSqlDialect extends VectorSqlDialect {
|
|
|
665
678
|
const comparesValue = op === '$eq' || op === '$ne' || op === '$in' || op === '$nin';
|
|
666
679
|
return comparesValue && this.jsonCompareMode(value) === 'json';
|
|
667
680
|
}
|
|
668
|
-
/**
|
|
681
|
+
/**
|
|
682
|
+
* A JSON-encoded bound parameter, cast to the dialect's JSON type. Only the positional-placeholder
|
|
683
|
+
* dialects use this - PostgreSQL binds JSON through {@link PgLikeSqlDialect.jsonScalarParam} instead.
|
|
684
|
+
*/
|
|
669
685
|
jsonScalarParam(ctx, value) {
|
|
670
686
|
if (value instanceof QueryRaw) {
|
|
671
687
|
return this.addValue(ctx.values, value);
|
|
672
688
|
}
|
|
673
689
|
ctx.pushValue(JSON.stringify(value));
|
|
674
|
-
return this.
|
|
690
|
+
return this.jsonCast('?');
|
|
675
691
|
}
|
|
676
692
|
getComparisonKey(ctx, entity, key, { prefix } = {}) {
|
|
677
693
|
const meta = getMeta(entity);
|
|
@@ -986,28 +1002,11 @@ export class AbstractSqlDialect extends VectorSqlDialect {
|
|
|
986
1002
|
if (callback && Object.hasOwn(sample, col)) {
|
|
987
1003
|
return `${this.escapeId(columnName)} = ${callback(this.escapeId(columnName))}`;
|
|
988
1004
|
}
|
|
989
|
-
const
|
|
990
|
-
this.
|
|
991
|
-
ctx.pushValue(...valCtx.values);
|
|
992
|
-
return `${this.escapeId(columnName)} = ${valCtx.sql}`;
|
|
1005
|
+
const text = this.buildFragment(ctx, (fragmentCtx) => this.formatPersistableValue(fragmentCtx, field, filledPayload[col]));
|
|
1006
|
+
return `${this.escapeId(columnName)} = ${text}`;
|
|
993
1007
|
})
|
|
994
1008
|
.join(', ');
|
|
995
1009
|
}
|
|
996
|
-
/**
|
|
997
|
-
* Shared ON CONFLICT ... DO UPDATE / DO NOTHING ... RETURNING logic for positional-placeholder
|
|
998
|
-
* dialects (SQLite). Uses a deferred context for update params so they follow INSERT params.
|
|
999
|
-
* PG uses its own implementation since `$N` numbered placeholders handle param ordering natively.
|
|
1000
|
-
*/
|
|
1001
|
-
onConflictUpsert(ctx, entity, conflictPaths, payload, insertFn) {
|
|
1002
|
-
const meta = getMeta(entity);
|
|
1003
|
-
const updateCtx = this.createContext();
|
|
1004
|
-
const update = this.getUpsertUpdateAssignments(updateCtx, meta, conflictPaths, payload, (name) => `EXCLUDED.${name}`);
|
|
1005
|
-
const keysStr = this.getUpsertConflictPathsStr(meta, conflictPaths);
|
|
1006
|
-
const onConflict = update ? `DO UPDATE SET ${update}` : 'DO NOTHING';
|
|
1007
|
-
insertFn(ctx, entity, payload);
|
|
1008
|
-
ctx.append(` ON CONFLICT (${keysStr}) ${onConflict} ${this.returningId(entity)}`);
|
|
1009
|
-
ctx.pushValue(...updateCtx.values);
|
|
1010
|
-
}
|
|
1011
1010
|
getUpsertConflictPathsStr(meta, conflictPaths) {
|
|
1012
1011
|
return getKeys(conflictPaths)
|
|
1013
1012
|
.map((key) => {
|
|
@@ -1040,22 +1039,6 @@ export class AbstractSqlDialect extends VectorSqlDialect {
|
|
|
1040
1039
|
escapeId(val, forbidQualified, addDot) {
|
|
1041
1040
|
return escapeSqlId(val, this.escapeIdChar, forbidQualified, addDot);
|
|
1042
1041
|
}
|
|
1043
|
-
getPersistables(ctx, meta, payload, callbackKey) {
|
|
1044
|
-
const payloads = fillOnFields(meta, payload, callbackKey);
|
|
1045
|
-
return payloads.map((it) => this.getPersistable(ctx, meta, it, callbackKey));
|
|
1046
|
-
}
|
|
1047
|
-
getPersistable(ctx, meta, payload, callbackKey) {
|
|
1048
|
-
const filledPayload = fillOnFields(meta, payload, callbackKey)[0];
|
|
1049
|
-
const keys = filterFieldKeys(meta, filledPayload, callbackKey);
|
|
1050
|
-
return keys.reduce((acc, key) => {
|
|
1051
|
-
const field = meta.fields[key];
|
|
1052
|
-
const valCtx = this.createContext();
|
|
1053
|
-
this.formatPersistableValue(valCtx, field, filledPayload[key]);
|
|
1054
|
-
ctx.pushValue(...valCtx.values);
|
|
1055
|
-
acc[key] = valCtx.sql;
|
|
1056
|
-
return acc;
|
|
1057
|
-
}, {});
|
|
1058
|
-
}
|
|
1059
1042
|
formatPersistableValue(ctx, field, value) {
|
|
1060
1043
|
if (value instanceof QueryRaw) {
|
|
1061
1044
|
this.getRawValue(ctx, { value });
|
|
@@ -1079,13 +1062,6 @@ export class AbstractSqlDialect extends VectorSqlDialect {
|
|
|
1079
1062
|
jsonCast(operand) {
|
|
1080
1063
|
return `CAST(${operand} AS JSON)`;
|
|
1081
1064
|
}
|
|
1082
|
-
/**
|
|
1083
|
-
* The JSON cast applied to a bound placeholder. Only the positional-placeholder dialects use it -
|
|
1084
|
-
* PostgreSQL binds JSON through {@link PgLikeSqlDialect.jsonScalarParam} instead.
|
|
1085
|
-
*/
|
|
1086
|
-
getJsonCastExpr() {
|
|
1087
|
-
return this.jsonCast('?');
|
|
1088
|
-
}
|
|
1089
1065
|
/**
|
|
1090
1066
|
* Generate the full `"col" = <expression>` assignment for a JSON update operator payload.
|
|
1091
1067
|
* Called from `update()` when a field value is a {@link JsonUpdateOp}.
|
|
@@ -1170,7 +1146,6 @@ export class AbstractSqlDialect extends VectorSqlDialect {
|
|
|
1170
1146
|
const colName = this.resolveColumnName(root, field);
|
|
1171
1147
|
const escapedCol = (prefix ? this.escapeId(prefix, true, true) : '') + this.escapeId(colName);
|
|
1172
1148
|
return {
|
|
1173
|
-
root,
|
|
1174
1149
|
jsonPath,
|
|
1175
1150
|
accessor: (asJsonb) => asJsonb ? this.getJsonPathJsonbExpr(escapedCol, jsonPath) : this.getJsonPathScalarExpr(escapedCol, jsonPath),
|
|
1176
1151
|
};
|
|
@@ -1236,15 +1211,25 @@ export class AbstractSqlDialect extends VectorSqlDialect {
|
|
|
1236
1211
|
* Filter by relation using an EXISTS subquery.
|
|
1237
1212
|
* Supports all cardinalities: mm (via junction), 1m, m1, and 11.
|
|
1238
1213
|
*/
|
|
1239
|
-
|
|
1214
|
+
/**
|
|
1215
|
+
* The parent side of a relation-filtering subquery: its table name, escaped id reference, and a
|
|
1216
|
+
* guard against a relation with no configured references. Shared by
|
|
1217
|
+
* `compareRelation`/`compareRelationSize`. `rel.references` is asserted non-null at call sites
|
|
1218
|
+
* relying on this guard, since the check lives here instead of in the caller's own scope.
|
|
1219
|
+
*/
|
|
1220
|
+
resolveRelationParent(entity, key, rel, opts) {
|
|
1240
1221
|
const meta = getMeta(entity);
|
|
1241
1222
|
const parentTable = this.resolveTableName(entity, meta);
|
|
1242
|
-
const parentId = meta.id;
|
|
1243
|
-
const escapedParentId = (opts.prefix ? this.escapeId(opts.prefix, true, true) : this.escapeId(parentTable, false, true)) +
|
|
1244
|
-
this.escapeId(parentId);
|
|
1245
1223
|
if (!rel.references?.length) {
|
|
1246
1224
|
throw new TypeError(`Relation '${key}' on '${parentTable}' has no references defined`);
|
|
1247
1225
|
}
|
|
1226
|
+
const escapedParentId = (opts.prefix ? this.escapeId(opts.prefix, true, true) : this.escapeId(parentTable, false, true)) +
|
|
1227
|
+
this.escapeId(meta.id);
|
|
1228
|
+
return { parentTable, escapedParentId };
|
|
1229
|
+
}
|
|
1230
|
+
compareRelation(ctx, entity, key, val, rel, opts) {
|
|
1231
|
+
const { parentTable, escapedParentId } = this.resolveRelationParent(entity, key, rel, opts);
|
|
1232
|
+
const references = rel.references;
|
|
1248
1233
|
const relatedEntity = rel.entity();
|
|
1249
1234
|
const relatedMeta = getMeta(relatedEntity);
|
|
1250
1235
|
const relatedTable = this.resolveTableName(relatedEntity, relatedMeta);
|
|
@@ -1254,8 +1239,8 @@ export class AbstractSqlDialect extends VectorSqlDialect {
|
|
|
1254
1239
|
const throughEntity = rel.through();
|
|
1255
1240
|
const throughMeta = getMeta(throughEntity);
|
|
1256
1241
|
const throughTable = this.resolveTableName(throughEntity, throughMeta);
|
|
1257
|
-
const localFk =
|
|
1258
|
-
const foreignFk =
|
|
1242
|
+
const localFk = references[0].local;
|
|
1243
|
+
const foreignFk = references[1].local;
|
|
1259
1244
|
const relatedId = relatedMeta.id;
|
|
1260
1245
|
ctx.append(this.escapeId(throughTable));
|
|
1261
1246
|
ctx.append(` WHERE ${this.escapeId(throughTable, false, true)}${this.escapeId(localFk)} = ${escapedParentId}`);
|
|
@@ -1272,11 +1257,11 @@ export class AbstractSqlDialect extends VectorSqlDialect {
|
|
|
1272
1257
|
// 1m / m1 / 11: EXISTS (SELECT 1 FROM Related WHERE related.fk_or_pk = parent.pk_or_fk AND ...)
|
|
1273
1258
|
// Left side is always relatedTable.references[0].foreign
|
|
1274
1259
|
// Right side is the parent's PK (1m) or the parent's FK (m1/11)
|
|
1275
|
-
const joinLeft = `${this.escapeId(relatedTable, false, true)}${this.escapeId(
|
|
1260
|
+
const joinLeft = `${this.escapeId(relatedTable, false, true)}${this.escapeId(references[0].foreign)}`;
|
|
1276
1261
|
const joinRight = rel.cardinality === '1m'
|
|
1277
1262
|
? escapedParentId
|
|
1278
1263
|
: (opts.prefix ? this.escapeId(opts.prefix, true, true) : this.escapeId(parentTable, false, true)) +
|
|
1279
|
-
this.escapeId(
|
|
1264
|
+
this.escapeId(references[0].local);
|
|
1280
1265
|
ctx.append(this.escapeId(relatedTable));
|
|
1281
1266
|
ctx.append(` WHERE ${joinLeft} = ${joinRight}`);
|
|
1282
1267
|
this.where(ctx, relatedEntity, val, {
|
|
@@ -1292,14 +1277,7 @@ export class AbstractSqlDialect extends VectorSqlDialect {
|
|
|
1292
1277
|
* Supports all cardinalities: mm (via junction), 1m.
|
|
1293
1278
|
*/
|
|
1294
1279
|
compareRelationSize(ctx, entity, key, sizeVal, rel, opts) {
|
|
1295
|
-
const
|
|
1296
|
-
const parentTable = this.resolveTableName(entity, meta);
|
|
1297
|
-
const parentId = meta.id;
|
|
1298
|
-
const escapedParentId = (opts.prefix ? this.escapeId(opts.prefix, true, true) : this.escapeId(parentTable, false, true)) +
|
|
1299
|
-
this.escapeId(parentId);
|
|
1300
|
-
if (!rel.references?.length) {
|
|
1301
|
-
throw new TypeError(`Relation '${key}' on '${parentTable}' has no references defined`);
|
|
1302
|
-
}
|
|
1280
|
+
const { escapedParentId } = this.resolveRelationParent(entity, key, rel, opts);
|
|
1303
1281
|
const appendSubquery = () => {
|
|
1304
1282
|
ctx.append('(SELECT COUNT(*) FROM ');
|
|
1305
1283
|
if (rel.cardinality === 'mm' && rel.through) {
|
|
@@ -1390,6 +1368,10 @@ export class AbstractSqlDialect extends VectorSqlDialect {
|
|
|
1390
1368
|
throw TypeError(`unsupported $size comparison operator: ${op}`);
|
|
1391
1369
|
}
|
|
1392
1370
|
}
|
|
1371
|
+
/** ANSI-style single-quote escaping. MySQL-family dialects override this for backslash escaping. */
|
|
1372
|
+
escape(value) {
|
|
1373
|
+
return escapeAnsiSqlLiteral(value);
|
|
1374
|
+
}
|
|
1393
1375
|
get regexpOp() {
|
|
1394
1376
|
return 'REGEXP';
|
|
1395
1377
|
}
|