Skip to content

Commit 524e0be

Browse files
committed
fixes #842 fixes #1205
1 parent 1adc68f commit 524e0be

File tree

3 files changed

+31
-33
lines changed

3 files changed

+31
-33
lines changed

‎lib/queryBuilder/QueryBuilderOperationSupport.js‎

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
const promiseUtils = require('../utils/promiseUtils');
44

5-
const { isString, isFunction, isRegExp, mergeMaps, last } = require('../utils/objectUtils');
5+
const { isString, isFunction, isRegExp, last } = require('../utils/objectUtils');
66
const { isSubclassOf } = require('../utils/classUtils');
77
const { QueryBuilderOperation } = require('./operations/QueryBuilderOperation');
88
const { QueryBuilderContextBase } = require('./QueryBuilderContextBase');
@@ -183,12 +183,6 @@ class QueryBuilderOperationSupport {
183183

184184
subqueryOf(query) {
185185
if (query) {
186-
const ctx = this.internalContext();
187-
188-
// Merge alias and table name maps for subqueries.
189-
ctx.aliasMap = mergeMaps(query.internalContext().aliasMap, ctx.aliasMap);
190-
ctx.tableMap = mergeMaps(query.internalContext().tableMap, ctx.tableMap);
191-
192186
this._parentQuery = query;
193187

194188
if (this.unsafeKnex() === null) {

‎lib/utils/objectUtils.js‎

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -252,24 +252,6 @@ function chunk(arr, chunkSize) {
252252
return out;
253253
}
254254

255-
function mergeMaps(map1, map2) {
256-
const map = new Map();
257-
258-
if (map1) {
259-
for (let key of map1.keys()) {
260-
map.set(key, map1.get(key));
261-
}
262-
}
263-
264-
if (map2) {
265-
for (let key of map2.keys()) {
266-
map.set(key, map2.get(key));
267-
}
268-
}
269-
270-
return map;
271-
}
272-
273255
module.exports = {
274256
isEmpty,
275257
isString,
@@ -281,7 +263,6 @@ module.exports = {
281263
difference,
282264
upperFirst,
283265
zipObject,
284-
mergeMaps,
285266
cloneDeep,
286267
asSingle,
287268
asArray,

‎tests/integration/find.js‎

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -998,6 +998,21 @@ module.exports = session => {
998998
});
999999
});
10001000

1001+
if (!session.isMySql()) {
1002+
it('with', () => {
1003+
return Model1.query()
1004+
.with('subquery1', Model1.query().unionAll(Model1.query()))
1005+
.with('subquery2', Model1.query())
1006+
.count('* as count')
1007+
.from('subquery1')
1008+
.first()
1009+
.debug()
1010+
.then(result => {
1011+
expect(result.count).to.eql(4);
1012+
});
1013+
});
1014+
}
1015+
10011016
if (session.isPostgres()) {
10021017
it('timeout should throw a TimeOutError', done => {
10031018
const knexQuery = Model1.query()
@@ -1154,6 +1169,10 @@ module.exports = session => {
11541169
.select([
11551170
'id',
11561171

1172+
Model1.relatedQuery('model1Relation1')
1173+
.count()
1174+
.as('rel1Count'),
1175+
11571176
Model1.relatedQuery('model1Relation2')
11581177
.count()
11591178
.as('rel2Count'),
@@ -1165,9 +1184,9 @@ module.exports = session => {
11651184
.orderBy('id')
11661185
.then(res => {
11671186
expect(res).to.eql([
1168-
{ id: 1, rel2Count: '2', rel3Count: '1', $afterGetCalled: 1 },
1169-
{ id: 2, rel2Count: '1', rel3Count: '2', $afterGetCalled: 1 },
1170-
{ id: 3, rel2Count: '0', rel3Count: '0', $afterGetCalled: 1 }
1187+
{ id: 1, rel1Count: 1, rel2Count: '2', rel3Count: '1', $afterGetCalled: 1 },
1188+
{ id: 2, rel1Count: 0, rel2Count: '1', rel3Count: '2', $afterGetCalled: 1 },
1189+
{ id: 3, rel1Count: 0, rel2Count: '0', rel3Count: '0', $afterGetCalled: 1 }
11711190
]);
11721191
});
11731192
});
@@ -1176,7 +1195,11 @@ module.exports = session => {
11761195
return Model1.query()
11771196
.alias('m')
11781197
.select([
1179-
'm.id',
1198+
'id',
1199+
1200+
Model1.relatedQuery('model1Relation1')
1201+
.count()
1202+
.as('rel1Count'),
11801203

11811204
Model1.relatedQuery('model1Relation2')
11821205
.count()
@@ -1189,9 +1212,9 @@ module.exports = session => {
11891212
.orderBy('id')
11901213
.then(res => {
11911214
expect(res).to.eql([
1192-
{ id: 1, rel2Count: '2', rel3Count: '1', $afterGetCalled: 1 },
1193-
{ id: 2, rel2Count: '1', rel3Count: '2', $afterGetCalled: 1 },
1194-
{ id: 3, rel2Count: '0', rel3Count: '0', $afterGetCalled: 1 }
1215+
{ id: 1, rel1Count: 1, rel2Count: '2', rel3Count: '1', $afterGetCalled: 1 },
1216+
{ id: 2, rel1Count: 0, rel2Count: '1', rel3Count: '2', $afterGetCalled: 1 },
1217+
{ id: 3, rel1Count: 0, rel2Count: '0', rel3Count: '0', $afterGetCalled: 1 }
11951218
]);
11961219
});
11971220
});

0 commit comments

Comments
 (0)