typeorm 0.2.39-dev.6558295 → 0.2.39-dev.6929ae3
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/browser/query-builder/SelectQueryBuilder.d.ts +1 -1
- package/browser/query-builder/SelectQueryBuilder.js +20 -4
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/package.json +1 -1
- package/query-builder/SelectQueryBuilder.d.ts +1 -1
- package/query-builder/SelectQueryBuilder.js +20 -4
- package/query-builder/SelectQueryBuilder.js.map +1 -1
|
@@ -597,7 +597,7 @@ export declare class SelectQueryBuilder<Entity> extends QueryBuilder<Entity> imp
|
|
|
597
597
|
entities: Entity[];
|
|
598
598
|
raw: any[];
|
|
599
599
|
}>;
|
|
600
|
-
protected createOrderByCombinedWithSelectExpression(parentAlias: string): [string, OrderByCondition];
|
|
600
|
+
protected createOrderByCombinedWithSelectExpression(parentAlias: string): [string, OrderByCondition, string];
|
|
601
601
|
/**
|
|
602
602
|
* Loads raw results from the database.
|
|
603
603
|
*/
|
|
@@ -1458,7 +1458,7 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
1458
1458
|
*/
|
|
1459
1459
|
SelectQueryBuilder.prototype.executeEntitiesAndRawResults = function (queryRunner) {
|
|
1460
1460
|
return __awaiter(this, void 0, void 0, function () {
|
|
1461
|
-
var metadata, relationIdLoader, relationCountLoader, relationIdMetadataTransformer, relationCountMetadataTransformer, rawResults, entities, _a, selects, orderBys_1, metadata_1, mainAliasName_1, querySelects, condition, parameters_1, alias_1, ids, areAllNumbers, rawRelationIdResults, rawRelationCountResults, transformer;
|
|
1461
|
+
var metadata, relationIdLoader, relationCountLoader, relationIdMetadataTransformer, relationCountMetadataTransformer, rawResults, entities, _a, selects, orderBys_1, subquerySelect, metadata_1, mainAliasName_1, querySelects, condition, parameters_1, alias_1, ids, areAllNumbers, rawRelationIdResults, rawRelationCountResults, transformer;
|
|
1462
1462
|
var _this = this;
|
|
1463
1463
|
return __generator(this, function (_b) {
|
|
1464
1464
|
switch (_b.label) {
|
|
@@ -1480,7 +1480,7 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
1480
1480
|
relationCountMetadataTransformer.transform();
|
|
1481
1481
|
rawResults = [], entities = [];
|
|
1482
1482
|
if (!((this.expressionMap.skip || this.expressionMap.take) && this.expressionMap.joinAttributes.length > 0)) return [3 /*break*/, 4];
|
|
1483
|
-
_a = __read(this.createOrderByCombinedWithSelectExpression("distinctAlias"),
|
|
1483
|
+
_a = __read(this.createOrderByCombinedWithSelectExpression("distinctAlias"), 3), selects = _a[0], orderBys_1 = _a[1], subquerySelect = _a[2];
|
|
1484
1484
|
metadata_1 = this.expressionMap.mainAlias.metadata;
|
|
1485
1485
|
mainAliasName_1 = this.expressionMap.mainAlias.name;
|
|
1486
1486
|
querySelects = metadata_1.primaryColumns.map(function (primaryColumn) {
|
|
@@ -1494,7 +1494,7 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
1494
1494
|
return [4 /*yield*/, new SelectQueryBuilder(this.connection, queryRunner)
|
|
1495
1495
|
.select("DISTINCT " + querySelects.join(", "))
|
|
1496
1496
|
.addSelect(selects)
|
|
1497
|
-
.from("(" + this.clone().orderBy().getQuery() + ")", "distinctAlias")
|
|
1497
|
+
.from("(" + this.clone().orderBy().addSelect(subquerySelect).getQuery() + ")", "distinctAlias")
|
|
1498
1498
|
.offset(this.expressionMap.skip)
|
|
1499
1499
|
.limit(this.expressionMap.take)
|
|
1500
1500
|
.orderBy(orderBys_1)
|
|
@@ -1604,7 +1604,23 @@ var SelectQueryBuilder = /** @class */ (function (_super) {
|
|
|
1604
1604
|
}
|
|
1605
1605
|
}
|
|
1606
1606
|
});
|
|
1607
|
-
|
|
1607
|
+
var subquerySelectString = Object.keys(orderBys)
|
|
1608
|
+
.filter(function (orderCriteria) { return orderCriteria.includes("."); })
|
|
1609
|
+
.map(function (orderCriteria) {
|
|
1610
|
+
var criteriaParts = orderCriteria.split(".");
|
|
1611
|
+
var aliasName = criteriaParts[0];
|
|
1612
|
+
var propertyPath = criteriaParts.slice(1).join(".");
|
|
1613
|
+
var alias = _this.expressionMap.findAliasByName(aliasName);
|
|
1614
|
+
if (alias.type !== "join") {
|
|
1615
|
+
return "";
|
|
1616
|
+
}
|
|
1617
|
+
var column = alias.metadata.findColumnWithPropertyPath(propertyPath);
|
|
1618
|
+
var property = _this.escape(alias.name) + "." + _this.escape(column.databaseName);
|
|
1619
|
+
var propertyAlias = _this.escape(DriverUtils.buildAlias(_this.connection.driver, aliasName, column.databaseName));
|
|
1620
|
+
return [property, "AS", propertyAlias].join(" ");
|
|
1621
|
+
})
|
|
1622
|
+
.join(", ");
|
|
1623
|
+
return [selectString, orderByObject, subquerySelectString];
|
|
1608
1624
|
};
|
|
1609
1625
|
/**
|
|
1610
1626
|
* Loads raw results from the database.
|