linkgress-orm 0.4.24 → 0.4.26
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/dist/query/query-builder.d.ts +28 -0
- package/dist/query/query-builder.d.ts.map +1 -1
- package/dist/query/query-builder.js +142 -4
- package/dist/query/query-builder.js.map +1 -1
- package/dist/query/union-builder.d.ts +63 -9
- package/dist/query/union-builder.d.ts.map +1 -1
- package/dist/query/union-builder.js +86 -9
- package/dist/query/union-builder.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,31 @@
|
|
|
1
1
|
import { SqlBuildContext } from './conditions';
|
|
2
2
|
import type { QueryExecutor, OrderDirection } from '../entity/db-context';
|
|
3
3
|
import type { DatabaseClient } from '../database/database-client.interface';
|
|
4
|
+
import { Subquery } from './subquery';
|
|
4
5
|
/**
|
|
5
6
|
* Union type: UNION removes duplicates, UNION ALL keeps all rows
|
|
6
7
|
*/
|
|
7
8
|
export type UnionType = 'UNION' | 'UNION ALL';
|
|
9
|
+
/**
|
|
10
|
+
* Minimal contract a union component must satisfy. SelectQueryBuilder provides
|
|
11
|
+
* the optional `_consumeUnionMetadata` and `_applyUnionPostProcessing` hooks
|
|
12
|
+
* so the union can reconstruct nested-object projections and apply collection
|
|
13
|
+
* mappers; non-SelectQueryBuilder components (rare; e.g. ad-hoc objects used
|
|
14
|
+
* in tests) skip those steps.
|
|
15
|
+
*/
|
|
16
|
+
export interface UnionLegBuilder {
|
|
17
|
+
buildUnionSql: (context: SqlBuildContext) => string;
|
|
18
|
+
/** @internal */
|
|
19
|
+
_consumeUnionMetadata?(): {
|
|
20
|
+
nestedPaths: Set<string>;
|
|
21
|
+
selectionResult: any;
|
|
22
|
+
} | undefined;
|
|
23
|
+
/** @internal */
|
|
24
|
+
_applyUnionPostProcessing?(rows: any[], meta: {
|
|
25
|
+
nestedPaths: Set<string>;
|
|
26
|
+
selectionResult: any;
|
|
27
|
+
}): any[];
|
|
28
|
+
}
|
|
8
29
|
/**
|
|
9
30
|
* Builder for UNION and UNION ALL queries.
|
|
10
31
|
* Combines multiple SELECT queries into a single result set.
|
|
@@ -47,9 +68,7 @@ export declare class UnionQueryBuilder<TSelection> {
|
|
|
47
68
|
/**
|
|
48
69
|
* Internal constructor - use SelectQueryBuilder.union() or unionAll() to create instances
|
|
49
70
|
*/
|
|
50
|
-
constructor(firstQuery:
|
|
51
|
-
buildUnionSql: (context: SqlBuildContext) => string;
|
|
52
|
-
}, client: DatabaseClient, executor?: QueryExecutor);
|
|
71
|
+
constructor(firstQuery: UnionLegBuilder, client: DatabaseClient, executor?: QueryExecutor);
|
|
53
72
|
/**
|
|
54
73
|
* Add a query with UNION (removes duplicate rows)
|
|
55
74
|
*
|
|
@@ -64,9 +83,7 @@ export declare class UnionQueryBuilder<TSelection> {
|
|
|
64
83
|
* .toList();
|
|
65
84
|
* ```
|
|
66
85
|
*/
|
|
67
|
-
union(query:
|
|
68
|
-
buildUnionSql: (context: SqlBuildContext) => string;
|
|
69
|
-
}): UnionQueryBuilder<TSelection>;
|
|
86
|
+
union(query: UnionLegBuilder): UnionQueryBuilder<TSelection>;
|
|
70
87
|
/**
|
|
71
88
|
* Add a query with UNION ALL (keeps all rows including duplicates)
|
|
72
89
|
*
|
|
@@ -83,9 +100,7 @@ export declare class UnionQueryBuilder<TSelection> {
|
|
|
83
100
|
* .toList();
|
|
84
101
|
* ```
|
|
85
102
|
*/
|
|
86
|
-
unionAll(query:
|
|
87
|
-
buildUnionSql: (context: SqlBuildContext) => string;
|
|
88
|
-
}): UnionQueryBuilder<TSelection>;
|
|
103
|
+
unionAll(query: UnionLegBuilder): UnionQueryBuilder<TSelection>;
|
|
89
104
|
/**
|
|
90
105
|
* Order the combined result set
|
|
91
106
|
*
|
|
@@ -147,6 +162,45 @@ export declare class UnionQueryBuilder<TSelection> {
|
|
|
147
162
|
sql: string;
|
|
148
163
|
params: any[];
|
|
149
164
|
};
|
|
165
|
+
/**
|
|
166
|
+
* Build the SQL for this union query inside an outer context (e.g. when
|
|
167
|
+
* this union is used as a subquery via {@link asSubquery}). Reuses the
|
|
168
|
+
* outer context's `paramCounter` and `params` array so parameter indices
|
|
169
|
+
* chain correctly across the whole composite statement.
|
|
170
|
+
*
|
|
171
|
+
* @internal
|
|
172
|
+
*/
|
|
173
|
+
buildSql(outerContext: SqlBuildContext): string;
|
|
174
|
+
/**
|
|
175
|
+
* Convert this union query to a subquery usable in WHERE, SELECT, JOIN, or
|
|
176
|
+
* FROM clauses of an outer query. Mirrors {@link SelectQueryBuilder.asSubquery}
|
|
177
|
+
* but composes a UNION ALL / UNION across multiple SELECT legs into a single
|
|
178
|
+
* subquery expression.
|
|
179
|
+
*
|
|
180
|
+
* @template TMode - 'scalar' for a single value, 'array' for column list (use
|
|
181
|
+
* with `inSubquery(...)`), 'table' for full rows
|
|
182
|
+
* @returns Subquery that can be passed to `inSubquery`, `exists`, etc.
|
|
183
|
+
*
|
|
184
|
+
* @example
|
|
185
|
+
* ```typescript
|
|
186
|
+
* // Filter outer query by the union of two id selections
|
|
187
|
+
* const friendIds = db.userRelations
|
|
188
|
+
* .where(r => eq(r.parentId, userId))
|
|
189
|
+
* .select(r => r.slaveId)
|
|
190
|
+
* .unionAll(
|
|
191
|
+
* db.userRelations
|
|
192
|
+
* .where(r => eq(r.slaveId, userId))
|
|
193
|
+
* .select(r => r.parentId)
|
|
194
|
+
* )
|
|
195
|
+
* .asSubquery('array');
|
|
196
|
+
*
|
|
197
|
+
* const rows = await db.usersEshop
|
|
198
|
+
* .where(u => inSubquery(u.id, friendIds))
|
|
199
|
+
* .select(u => ({ id: u.id, name: u.name }))
|
|
200
|
+
* .toList();
|
|
201
|
+
* ```
|
|
202
|
+
*/
|
|
203
|
+
asSubquery<TMode extends 'scalar' | 'array' | 'table' = 'table'>(mode?: TMode): Subquery<TMode extends 'scalar' ? TSelection : TMode extends 'array' ? TSelection[] : TSelection[], TMode>;
|
|
150
204
|
/**
|
|
151
205
|
* Get the SQL string for debugging
|
|
152
206
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union-builder.d.ts","sourceRoot":"","sources":["../../src/query/union-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,eAAe,EAA6B,MAAM,cAAc,CAAC;AAC5F,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"union-builder.d.ts","sourceRoot":"","sources":["../../src/query/union-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.UnionQueryBuilder = void 0;
|
|
4
4
|
exports.isUnionQueryBuilder = isUnionQueryBuilder;
|
|
5
5
|
const query_utils_1 = require("./query-utils");
|
|
6
|
+
const subquery_1 = require("./subquery");
|
|
6
7
|
/**
|
|
7
8
|
* Builder for UNION and UNION ALL queries.
|
|
8
9
|
* Combines multiple SELECT queries into a single result set.
|
|
@@ -46,6 +47,7 @@ class UnionQueryBuilder {
|
|
|
46
47
|
this.executor = executor;
|
|
47
48
|
this.components.push({
|
|
48
49
|
buildSql: (ctx) => firstQuery.buildUnionSql(ctx),
|
|
50
|
+
ownerBuilder: firstQuery,
|
|
49
51
|
});
|
|
50
52
|
}
|
|
51
53
|
/**
|
|
@@ -67,6 +69,7 @@ class UnionQueryBuilder {
|
|
|
67
69
|
newBuilder.components.push({
|
|
68
70
|
buildSql: (ctx) => query.buildUnionSql(ctx),
|
|
69
71
|
unionType: 'UNION',
|
|
72
|
+
ownerBuilder: query,
|
|
70
73
|
});
|
|
71
74
|
return newBuilder;
|
|
72
75
|
}
|
|
@@ -91,6 +94,7 @@ class UnionQueryBuilder {
|
|
|
91
94
|
newBuilder.components.push({
|
|
92
95
|
buildSql: (ctx) => query.buildUnionSql(ctx),
|
|
93
96
|
unionType: 'UNION ALL',
|
|
97
|
+
ownerBuilder: query,
|
|
94
98
|
});
|
|
95
99
|
return newBuilder;
|
|
96
100
|
}
|
|
@@ -129,10 +133,44 @@ class UnionQueryBuilder {
|
|
|
129
133
|
* @returns Promise resolving to array of results
|
|
130
134
|
*/
|
|
131
135
|
async toList() {
|
|
136
|
+
// buildSql() walks every component which, for SelectQueryBuilder legs,
|
|
137
|
+
// stashes nestedPaths + selectionResult on the builder via
|
|
138
|
+
// _consumeUnionMetadata. We read it back AFTER buildSql finishes (and
|
|
139
|
+
// before query execution — order doesn't actually matter, just consume
|
|
140
|
+
// before another buildSql wipes it).
|
|
132
141
|
const { sql, params } = this.buildSql();
|
|
142
|
+
// First-leg metadata is canonical for post-processing because UNION
|
|
143
|
+
// requires every leg to project the same column shape. If the first leg
|
|
144
|
+
// has nestedPaths or a transformable selection (collections / mappers /
|
|
145
|
+
// FieldRefs), apply the same reconstruction that SelectQueryBuilder.toList
|
|
146
|
+
// would normally apply.
|
|
147
|
+
let firstLegMeta;
|
|
148
|
+
let firstLegOwner;
|
|
149
|
+
for (let i = 0; i < this.components.length; i++) {
|
|
150
|
+
const c = this.components[i];
|
|
151
|
+
if (c.ownerBuilder?._consumeUnionMetadata) {
|
|
152
|
+
const meta = c.ownerBuilder._consumeUnionMetadata();
|
|
153
|
+
if (i === 0) {
|
|
154
|
+
firstLegMeta = meta;
|
|
155
|
+
firstLegOwner = c.ownerBuilder;
|
|
156
|
+
}
|
|
157
|
+
// Non-first legs: just drain to avoid stale state on the builder.
|
|
158
|
+
}
|
|
159
|
+
}
|
|
133
160
|
const result = this.executor
|
|
134
161
|
? await this.executor.query(sql, params)
|
|
135
162
|
: await this.client.query(sql, params);
|
|
163
|
+
// Apply post-processing through the FIRST leg's builder. This is correct
|
|
164
|
+
// because:
|
|
165
|
+
// - Postgres's UNION semantics enforce column-shape equality across all
|
|
166
|
+
// legs (otherwise we'd get a SQL error before reaching here),
|
|
167
|
+
// - the result mapper only cares about the column SHAPE (names, types,
|
|
168
|
+
// nested-path encoding), which is identical across legs,
|
|
169
|
+
// - first-leg ownership is the natural pick (the union is initiated
|
|
170
|
+
// from `firstLeg.unionAll(...)`).
|
|
171
|
+
if (firstLegOwner?._applyUnionPostProcessing && firstLegMeta) {
|
|
172
|
+
return firstLegOwner._applyUnionPostProcessing(result.rows, firstLegMeta);
|
|
173
|
+
}
|
|
136
174
|
return result.rows;
|
|
137
175
|
}
|
|
138
176
|
/**
|
|
@@ -160,15 +198,14 @@ class UnionQueryBuilder {
|
|
|
160
198
|
: await this.client.query(sql, params);
|
|
161
199
|
return parseInt(result.rows[0]?.count || '0', 10);
|
|
162
200
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
};
|
|
201
|
+
buildSql(outerContext) {
|
|
202
|
+
const isNested = outerContext !== undefined;
|
|
203
|
+
const context = isNested
|
|
204
|
+
? outerContext
|
|
205
|
+
: {
|
|
206
|
+
paramCounter: 1,
|
|
207
|
+
params: [],
|
|
208
|
+
};
|
|
172
209
|
const sqlParts = [];
|
|
173
210
|
for (let i = 0; i < this.components.length; i++) {
|
|
174
211
|
const component = this.components[i];
|
|
@@ -193,8 +230,48 @@ class UnionQueryBuilder {
|
|
|
193
230
|
if (this.offsetValue !== undefined) {
|
|
194
231
|
sql += `\nOFFSET ${this.offsetValue}`;
|
|
195
232
|
}
|
|
233
|
+
if (isNested) {
|
|
234
|
+
return sql;
|
|
235
|
+
}
|
|
196
236
|
return { sql, params: context.params };
|
|
197
237
|
}
|
|
238
|
+
/**
|
|
239
|
+
* Convert this union query to a subquery usable in WHERE, SELECT, JOIN, or
|
|
240
|
+
* FROM clauses of an outer query. Mirrors {@link SelectQueryBuilder.asSubquery}
|
|
241
|
+
* but composes a UNION ALL / UNION across multiple SELECT legs into a single
|
|
242
|
+
* subquery expression.
|
|
243
|
+
*
|
|
244
|
+
* @template TMode - 'scalar' for a single value, 'array' for column list (use
|
|
245
|
+
* with `inSubquery(...)`), 'table' for full rows
|
|
246
|
+
* @returns Subquery that can be passed to `inSubquery`, `exists`, etc.
|
|
247
|
+
*
|
|
248
|
+
* @example
|
|
249
|
+
* ```typescript
|
|
250
|
+
* // Filter outer query by the union of two id selections
|
|
251
|
+
* const friendIds = db.userRelations
|
|
252
|
+
* .where(r => eq(r.parentId, userId))
|
|
253
|
+
* .select(r => r.slaveId)
|
|
254
|
+
* .unionAll(
|
|
255
|
+
* db.userRelations
|
|
256
|
+
* .where(r => eq(r.slaveId, userId))
|
|
257
|
+
* .select(r => r.parentId)
|
|
258
|
+
* )
|
|
259
|
+
* .asSubquery('array');
|
|
260
|
+
*
|
|
261
|
+
* const rows = await db.usersEshop
|
|
262
|
+
* .where(u => inSubquery(u.id, friendIds))
|
|
263
|
+
* .select(u => ({ id: u.id, name: u.name }))
|
|
264
|
+
* .toList();
|
|
265
|
+
* ```
|
|
266
|
+
*/
|
|
267
|
+
asSubquery(mode = 'table') {
|
|
268
|
+
const sqlBuilder = (outerContext) => {
|
|
269
|
+
// Reuse the outer context so $1, $2, ... numbering and the params array
|
|
270
|
+
// chain across the whole composite statement.
|
|
271
|
+
return this.buildSql(outerContext);
|
|
272
|
+
};
|
|
273
|
+
return new subquery_1.Subquery(sqlBuilder, mode);
|
|
274
|
+
}
|
|
198
275
|
/**
|
|
199
276
|
* Get the SQL string for debugging
|
|
200
277
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union-builder.js","sourceRoot":"","sources":["../../src/query/union-builder.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"union-builder.js","sourceRoot":"","sources":["../../src/query/union-builder.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED