typeorm 0.3.29-dev.a46eb0a → 0.3.29
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 +2 -2
- package/browser/cache/RedisQueryResultCache.d.ts +6 -9
- package/browser/cache/RedisQueryResultCache.js +21 -42
- package/browser/cache/RedisQueryResultCache.js.map +1 -1
- package/browser/cli-ts-node-commonjs.js +0 -0
- package/browser/cli-ts-node-esm.js +0 -0
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.js +18 -5
- package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachDriver.d.ts +2 -2
- package/browser/driver/cockroachdb/CockroachDriver.js +13 -3
- package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +18 -12
- package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/browser/driver/mysql/MysqlDriver.js +18 -5
- package/browser/driver/mysql/MysqlDriver.js.map +1 -1
- package/browser/driver/oracle/OracleDriver.d.ts +2 -2
- package/browser/driver/oracle/OracleDriver.js +8 -5
- package/browser/driver/oracle/OracleDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.d.ts +2 -2
- package/browser/driver/postgres/PostgresDriver.js +18 -5
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.js +16 -10
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/sap/SapConnectionOptions.d.ts +8 -1
- package/browser/driver/sap/SapConnectionOptions.js.map +1 -1
- package/browser/driver/sap/SapDriver.js +4 -8
- package/browser/driver/sap/SapDriver.js.map +1 -1
- package/browser/driver/spanner/SpannerDriver.d.ts +2 -2
- package/browser/driver/spanner/SpannerDriver.js +1 -1
- package/browser/driver/spanner/SpannerDriver.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerDriver.d.ts +2 -2
- package/browser/driver/sqlserver/SqlServerDriver.js +1 -1
- package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/browser/entity-manager/EntityManager.d.ts +3 -2
- package/browser/entity-manager/EntityManager.js +30 -20
- package/browser/entity-manager/EntityManager.js.map +1 -1
- package/browser/error/QueryFailedError.js +1 -2
- package/browser/error/QueryFailedError.js.map +1 -1
- package/browser/index.d.ts +3 -0
- package/browser/index.js +1 -0
- package/browser/index.js.map +1 -1
- package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +2 -0
- package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/RelationJoinColumnBuilder.d.ts +11 -5
- package/browser/metadata-builder/RelationJoinColumnBuilder.js +11 -5
- package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/browser/migration/MigrationExecutor.d.ts +3 -1
- package/browser/migration/MigrationExecutor.js +13 -3
- package/browser/migration/MigrationExecutor.js.map +1 -1
- package/browser/persistence/SubjectExecutor.d.ts +3 -0
- package/browser/persistence/SubjectExecutor.js +11 -0
- package/browser/persistence/SubjectExecutor.js.map +1 -1
- package/browser/query-builder/QueryBuilder.d.ts +8 -0
- package/browser/query-builder/QueryBuilder.js +35 -0
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/ReturningOption.d.ts +4 -0
- package/browser/query-builder/ReturningOption.js +3 -0
- package/browser/query-builder/ReturningOption.js.map +1 -0
- package/browser/query-builder/SelectQueryBuilder.d.ts +7 -11
- package/browser/query-builder/SelectQueryBuilder.js +53 -64
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-builder/SoftDeleteQueryBuilder.js +17 -12
- package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
- package/browser/query-builder/UpdateQueryBuilder.js +17 -12
- package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/browser/repository/BaseEntity.d.ts +2 -1
- package/browser/repository/BaseEntity.js +2 -2
- package/browser/repository/BaseEntity.js.map +1 -1
- package/browser/repository/Repository.d.ts +3 -2
- package/browser/repository/Repository.js +4 -4
- package/browser/repository/Repository.js.map +1 -1
- package/browser/repository/TreeRepository.js +2 -2
- package/browser/repository/TreeRepository.js.map +1 -1
- package/browser/repository/UpdateOptions.d.ts +11 -0
- package/browser/repository/UpdateOptions.js +3 -0
- package/browser/repository/UpdateOptions.js.map +1 -0
- package/browser/repository/UpsertOptions.d.ts +6 -0
- package/browser/repository/UpsertOptions.js.map +1 -1
- package/browser/schema-builder/RdbmsSchemaBuilder.js +1 -1
- package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/cache/RedisQueryResultCache.d.ts +6 -9
- package/cache/RedisQueryResultCache.js +21 -42
- package/cache/RedisQueryResultCache.js.map +1 -1
- package/commands/InitCommand.js +1 -1
- package/commands/MigrationRunCommand.js +4 -4
- package/commands/MigrationRunCommand.js.map +1 -1
- package/driver/aurora-mysql/AuroraMysqlDriver.js +18 -5
- package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
- package/driver/cockroachdb/CockroachDriver.d.ts +2 -2
- package/driver/cockroachdb/CockroachDriver.js +13 -3
- package/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.js +18 -12
- package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/driver/mysql/MysqlDriver.js +18 -5
- package/driver/mysql/MysqlDriver.js.map +1 -1
- package/driver/oracle/OracleDriver.d.ts +2 -2
- package/driver/oracle/OracleDriver.js +8 -5
- package/driver/oracle/OracleDriver.js.map +1 -1
- package/driver/postgres/PostgresDriver.d.ts +2 -2
- package/driver/postgres/PostgresDriver.js +18 -5
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.js +16 -10
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/sap/SapConnectionOptions.d.ts +8 -1
- package/driver/sap/SapConnectionOptions.js.map +1 -1
- package/driver/sap/SapDriver.js +4 -8
- package/driver/sap/SapDriver.js.map +1 -1
- package/driver/spanner/SpannerDriver.d.ts +2 -2
- package/driver/spanner/SpannerDriver.js +1 -1
- package/driver/spanner/SpannerDriver.js.map +1 -1
- package/driver/sqlserver/SqlServerDriver.d.ts +2 -2
- package/driver/sqlserver/SqlServerDriver.js +1 -1
- package/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/entity-manager/EntityManager.d.ts +3 -2
- package/entity-manager/EntityManager.js +30 -20
- package/entity-manager/EntityManager.js.map +1 -1
- package/error/QueryFailedError.js +1 -2
- package/error/QueryFailedError.js.map +1 -1
- package/index.d.ts +3 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +2 -0
- package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/RelationJoinColumnBuilder.d.ts +11 -5
- package/metadata-builder/RelationJoinColumnBuilder.js +11 -5
- package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
- package/migration/MigrationExecutor.d.ts +3 -1
- package/migration/MigrationExecutor.js +13 -3
- package/migration/MigrationExecutor.js.map +1 -1
- package/package.json +278 -1
- package/persistence/SubjectExecutor.d.ts +3 -0
- package/persistence/SubjectExecutor.js +11 -0
- package/persistence/SubjectExecutor.js.map +1 -1
- package/query-builder/QueryBuilder.d.ts +8 -0
- package/query-builder/QueryBuilder.js +35 -0
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/ReturningOption.d.ts +4 -0
- package/query-builder/ReturningOption.js +4 -0
- package/query-builder/ReturningOption.js.map +1 -0
- package/query-builder/SelectQueryBuilder.d.ts +7 -11
- package/query-builder/SelectQueryBuilder.js +53 -64
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-builder/SoftDeleteQueryBuilder.js +17 -12
- package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
- package/query-builder/UpdateQueryBuilder.js +17 -12
- package/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/repository/BaseEntity.d.ts +2 -1
- package/repository/BaseEntity.js +2 -2
- package/repository/BaseEntity.js.map +1 -1
- package/repository/Repository.d.ts +3 -2
- package/repository/Repository.js +4 -4
- package/repository/Repository.js.map +1 -1
- package/repository/TreeRepository.js +2 -2
- package/repository/TreeRepository.js.map +1 -1
- package/repository/UpdateOptions.d.ts +11 -0
- package/repository/UpdateOptions.js +4 -0
- package/repository/UpdateOptions.js.map +1 -0
- package/repository/UpsertOptions.d.ts +6 -0
- package/repository/UpsertOptions.js.map +1 -1
- package/schema-builder/RdbmsSchemaBuilder.js +1 -1
- package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
|
@@ -499,25 +499,17 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
499
499
|
* calling this function will override previously set ORDER BY conditions.
|
|
500
500
|
*/
|
|
501
501
|
orderBy(sort, order = "ASC", nulls) {
|
|
502
|
-
if (order !== undefined && order !== "ASC" && order !== "DESC")
|
|
503
|
-
throw new error_1.TypeORMError(`SelectQueryBuilder.addOrderBy "order" can accept only "ASC" and "DESC" values.`);
|
|
504
|
-
if (nulls !== undefined &&
|
|
505
|
-
nulls !== "NULLS FIRST" &&
|
|
506
|
-
nulls !== "NULLS LAST")
|
|
507
|
-
throw new error_1.TypeORMError(`SelectQueryBuilder.addOrderBy "nulls" can accept only "NULLS FIRST" and "NULLS LAST" values.`);
|
|
508
502
|
if (sort) {
|
|
509
503
|
if (typeof sort === "object") {
|
|
504
|
+
this.validateOrderByCondition(sort);
|
|
510
505
|
this.expressionMap.orderBys = sort;
|
|
511
506
|
}
|
|
512
507
|
else {
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
else {
|
|
519
|
-
this.expressionMap.orderBys = { [sort]: order };
|
|
520
|
-
}
|
|
508
|
+
const condition = nulls
|
|
509
|
+
? { [sort]: { order, nulls } }
|
|
510
|
+
: { [sort]: order };
|
|
511
|
+
this.validateOrderByCondition(condition);
|
|
512
|
+
this.expressionMap.orderBys = condition;
|
|
521
513
|
}
|
|
522
514
|
}
|
|
523
515
|
else {
|
|
@@ -529,12 +521,10 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
529
521
|
* Adds ORDER BY condition in the query builder.
|
|
530
522
|
*/
|
|
531
523
|
addOrderBy(sort, order = "ASC", nulls) {
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
nulls !== "NULLS LAST")
|
|
537
|
-
throw new error_1.TypeORMError(`SelectQueryBuilder.addOrderBy "nulls" can accept only "NULLS FIRST" and "NULLS LAST" values.`);
|
|
524
|
+
const condition = nulls
|
|
525
|
+
? { [sort]: { order, nulls } }
|
|
526
|
+
: { [sort]: order };
|
|
527
|
+
this.validateOrderByCondition(condition);
|
|
538
528
|
if (nulls) {
|
|
539
529
|
this.expressionMap.orderBys[sort] = { order, nulls };
|
|
540
530
|
}
|
|
@@ -545,48 +535,36 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
545
535
|
}
|
|
546
536
|
/**
|
|
547
537
|
* Sets LIMIT - maximum number of rows to be selected.
|
|
548
|
-
*
|
|
549
|
-
*
|
|
550
|
-
*
|
|
538
|
+
* When joins are present, a two-query distinct-id strategy is used
|
|
539
|
+
* so that LIMIT applies to root entities rather than raw joined rows.
|
|
540
|
+
* @param limit
|
|
551
541
|
*/
|
|
552
542
|
limit(limit) {
|
|
553
|
-
this.expressionMap.limit = this.
|
|
554
|
-
if (this.expressionMap.limit !== undefined &&
|
|
555
|
-
isNaN(this.expressionMap.limit))
|
|
556
|
-
throw new error_1.TypeORMError(`Provided "limit" value is not a number. Please provide a numeric value.`);
|
|
543
|
+
this.expressionMap.limit = this.validateNumericInput("limit", limit);
|
|
557
544
|
return this;
|
|
558
545
|
}
|
|
559
546
|
/**
|
|
560
547
|
* Sets OFFSET - selection offset.
|
|
561
|
-
*
|
|
562
|
-
*
|
|
563
|
-
*
|
|
548
|
+
* When joins are present, a two-query distinct-id strategy is used
|
|
549
|
+
* so that OFFSET applies to root entities rather than raw joined rows.
|
|
550
|
+
* @param offset
|
|
564
551
|
*/
|
|
565
552
|
offset(offset) {
|
|
566
|
-
this.expressionMap.offset = this.
|
|
567
|
-
if (this.expressionMap.offset !== undefined &&
|
|
568
|
-
isNaN(this.expressionMap.offset))
|
|
569
|
-
throw new error_1.TypeORMError(`Provided "offset" value is not a number. Please provide a numeric value.`);
|
|
553
|
+
this.expressionMap.offset = this.validateNumericInput("offset", offset);
|
|
570
554
|
return this;
|
|
571
555
|
}
|
|
572
556
|
/**
|
|
573
557
|
* Sets maximal number of entities to take.
|
|
574
558
|
*/
|
|
575
559
|
take(take) {
|
|
576
|
-
this.expressionMap.take = this.
|
|
577
|
-
if (this.expressionMap.take !== undefined &&
|
|
578
|
-
isNaN(this.expressionMap.take))
|
|
579
|
-
throw new error_1.TypeORMError(`Provided "take" value is not a number. Please provide a numeric value.`);
|
|
560
|
+
this.expressionMap.take = this.validateNumericInput("take", take);
|
|
580
561
|
return this;
|
|
581
562
|
}
|
|
582
563
|
/**
|
|
583
564
|
* Sets number of entities to skip.
|
|
584
565
|
*/
|
|
585
566
|
skip(skip) {
|
|
586
|
-
this.expressionMap.skip = this.
|
|
587
|
-
if (this.expressionMap.skip !== undefined &&
|
|
588
|
-
isNaN(this.expressionMap.skip))
|
|
589
|
-
throw new error_1.TypeORMError(`Provided "skip" value is not a number. Please provide a numeric value.`);
|
|
567
|
+
this.expressionMap.skip = this.validateNumericInput("skip", skip);
|
|
590
568
|
return this;
|
|
591
569
|
}
|
|
592
570
|
/**
|
|
@@ -1475,14 +1453,13 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
1475
1453
|
return "";
|
|
1476
1454
|
}
|
|
1477
1455
|
/**
|
|
1478
|
-
*
|
|
1456
|
+
* @returns "LOCK" part of SQL query
|
|
1479
1457
|
*/
|
|
1480
1458
|
createLockExpression() {
|
|
1481
1459
|
const driver = this.connection.driver;
|
|
1482
1460
|
let lockTablesClause = "";
|
|
1483
1461
|
if (this.expressionMap.lockTables) {
|
|
1484
|
-
if (!
|
|
1485
|
-
driver.options.type === "cockroachdb")) {
|
|
1462
|
+
if (!DriverUtils_1.DriverUtils.isPostgresFamily(driver)) {
|
|
1486
1463
|
throw new error_1.TypeORMError("Lock tables not supported in selected driver");
|
|
1487
1464
|
}
|
|
1488
1465
|
if (this.expressionMap.lockTables.length < 1) {
|
|
@@ -1495,7 +1472,12 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
1495
1472
|
onLockExpression = " NOWAIT";
|
|
1496
1473
|
}
|
|
1497
1474
|
else if (this.expressionMap.onLocked === "skip_locked") {
|
|
1498
|
-
|
|
1475
|
+
if (driver.options.type === "sap") {
|
|
1476
|
+
onLockExpression = " IGNORE LOCKED";
|
|
1477
|
+
}
|
|
1478
|
+
else {
|
|
1479
|
+
onLockExpression = " SKIP LOCKED";
|
|
1480
|
+
}
|
|
1499
1481
|
}
|
|
1500
1482
|
switch (this.expressionMap.lockMode) {
|
|
1501
1483
|
case "pessimistic_read":
|
|
@@ -1514,6 +1496,9 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
1514
1496
|
else if (DriverUtils_1.DriverUtils.isPostgresFamily(driver)) {
|
|
1515
1497
|
return " FOR SHARE" + lockTablesClause + onLockExpression;
|
|
1516
1498
|
}
|
|
1499
|
+
else if (driver.options.type === "sap") {
|
|
1500
|
+
return (" FOR SHARE LOCK" + lockTablesClause + onLockExpression);
|
|
1501
|
+
}
|
|
1517
1502
|
else if (driver.options.type === "oracle") {
|
|
1518
1503
|
return " FOR UPDATE";
|
|
1519
1504
|
}
|
|
@@ -1530,7 +1515,7 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
1530
1515
|
return " FOR UPDATE" + onLockExpression;
|
|
1531
1516
|
}
|
|
1532
1517
|
else if (DriverUtils_1.DriverUtils.isPostgresFamily(driver) ||
|
|
1533
|
-
driver.options.type === "
|
|
1518
|
+
driver.options.type === "sap") {
|
|
1534
1519
|
return " FOR UPDATE" + lockTablesClause + onLockExpression;
|
|
1535
1520
|
}
|
|
1536
1521
|
else if (driver.options.type === "mssql") {
|
|
@@ -1539,19 +1524,24 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
1539
1524
|
else {
|
|
1540
1525
|
throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
|
|
1541
1526
|
}
|
|
1527
|
+
// deprecated, use pessimistic_write with onLocked = "skip_locked" instead
|
|
1542
1528
|
case "pessimistic_partial_write":
|
|
1543
1529
|
if (DriverUtils_1.DriverUtils.isPostgresFamily(driver)) {
|
|
1544
1530
|
return " FOR UPDATE" + lockTablesClause + " SKIP LOCKED";
|
|
1545
1531
|
}
|
|
1532
|
+
else if (driver.options.type === "sap") {
|
|
1533
|
+
return " FOR UPDATE" + lockTablesClause + " IGNORE LOCKED";
|
|
1534
|
+
}
|
|
1546
1535
|
else if (DriverUtils_1.DriverUtils.isMySQLFamily(driver)) {
|
|
1547
1536
|
return " FOR UPDATE SKIP LOCKED";
|
|
1548
1537
|
}
|
|
1549
1538
|
else {
|
|
1550
1539
|
throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
|
|
1551
1540
|
}
|
|
1541
|
+
// deprecated, use pessimistic_write with onLocked = "nowait" instead
|
|
1552
1542
|
case "pessimistic_write_or_fail":
|
|
1553
1543
|
if (DriverUtils_1.DriverUtils.isPostgresFamily(driver) ||
|
|
1554
|
-
driver.options.type === "
|
|
1544
|
+
driver.options.type === "sap") {
|
|
1555
1545
|
return " FOR UPDATE" + lockTablesClause + " NOWAIT";
|
|
1556
1546
|
}
|
|
1557
1547
|
else if (DriverUtils_1.DriverUtils.isMySQLFamily(driver)) {
|
|
@@ -1561,8 +1551,7 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
1561
1551
|
throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
|
|
1562
1552
|
}
|
|
1563
1553
|
case "for_no_key_update":
|
|
1564
|
-
if (DriverUtils_1.DriverUtils.isPostgresFamily(driver)
|
|
1565
|
-
driver.options.type === "cockroachdb") {
|
|
1554
|
+
if (DriverUtils_1.DriverUtils.isPostgresFamily(driver)) {
|
|
1566
1555
|
return (" FOR NO KEY UPDATE" +
|
|
1567
1556
|
lockTablesClause +
|
|
1568
1557
|
onLockExpression);
|
|
@@ -1996,7 +1985,10 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
1996
1985
|
// where we make two queries to find the data we need
|
|
1997
1986
|
// first query find ids in skip and take range
|
|
1998
1987
|
// and second query loads the actual data in given ids range
|
|
1999
|
-
if ((this.expressionMap.skip ||
|
|
1988
|
+
if ((this.expressionMap.skip ||
|
|
1989
|
+
this.expressionMap.take ||
|
|
1990
|
+
this.expressionMap.offset ||
|
|
1991
|
+
this.expressionMap.limit) &&
|
|
2000
1992
|
this.expressionMap.joinAttributes.length > 0) {
|
|
2001
1993
|
// we are skipping order by here because its not working in subqueries anyway
|
|
2002
1994
|
// to make order by working we need to apply it on a distinct query
|
|
@@ -2013,6 +2005,9 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
2013
2005
|
return `${distinctAlias}.${columnAlias} AS ${this.escape(alias)}`;
|
|
2014
2006
|
});
|
|
2015
2007
|
const originalQuery = this.clone();
|
|
2008
|
+
// clear limit/offset from the inner query since pagination is handled by the outer distinct query
|
|
2009
|
+
originalQuery.expressionMap.limit = undefined;
|
|
2010
|
+
originalQuery.expressionMap.offset = undefined;
|
|
2016
2011
|
// preserve original timeTravel value since we set it to "false" in subquery
|
|
2017
2012
|
const originalQueryTimeTravel = originalQuery.expressionMap.timeTravel;
|
|
2018
2013
|
rawResults = await new SelectQueryBuilder(this.connection, queryRunner)
|
|
@@ -2023,8 +2018,8 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
2023
2018
|
.timeTravelQuery(false) // set it to "false" since time travel clause must appear at the very end and applies to the entire SELECT clause.
|
|
2024
2019
|
.getQuery()})`, "distinctAlias")
|
|
2025
2020
|
.timeTravelQuery(originalQueryTimeTravel)
|
|
2026
|
-
.offset(this.expressionMap.skip)
|
|
2027
|
-
.limit(this.expressionMap.take)
|
|
2021
|
+
.offset(this.expressionMap.skip ?? this.expressionMap.offset)
|
|
2022
|
+
.limit(this.expressionMap.take ?? this.expressionMap.limit)
|
|
2028
2023
|
.orderBy(orderBys)
|
|
2029
2024
|
.cache(this.expressionMap.cache && this.expressionMap.cacheId
|
|
2030
2025
|
? `${this.expressionMap.cacheId}-pagination`
|
|
@@ -2067,12 +2062,14 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
2067
2062
|
" IN (:...orm_distinct_ids)";
|
|
2068
2063
|
}
|
|
2069
2064
|
}
|
|
2070
|
-
|
|
2065
|
+
const secondQuery = this.clone()
|
|
2071
2066
|
.mergeExpressionMap({
|
|
2072
2067
|
extraAppendedAndWhereCondition: condition,
|
|
2073
2068
|
})
|
|
2074
|
-
.setParameters(parameters)
|
|
2075
|
-
|
|
2069
|
+
.setParameters(parameters);
|
|
2070
|
+
secondQuery.expressionMap.limit = undefined;
|
|
2071
|
+
secondQuery.expressionMap.offset = undefined;
|
|
2072
|
+
rawResults = await secondQuery.loadRawResults(queryRunner);
|
|
2076
2073
|
}
|
|
2077
2074
|
}
|
|
2078
2075
|
else {
|
|
@@ -2258,14 +2255,6 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
2258
2255
|
ObjectUtils_1.ObjectUtils.assign(this.expressionMap, expressionMap);
|
|
2259
2256
|
return this;
|
|
2260
2257
|
}
|
|
2261
|
-
/**
|
|
2262
|
-
* Normalizes a give number - converts to int if possible.
|
|
2263
|
-
*/
|
|
2264
|
-
normalizeNumber(num) {
|
|
2265
|
-
if (typeof num === "number" || num === undefined || num === null)
|
|
2266
|
-
return num;
|
|
2267
|
-
return Number(num);
|
|
2268
|
-
}
|
|
2269
2258
|
/**
|
|
2270
2259
|
* Creates a query builder used to execute sql queries inside this query builder.
|
|
2271
2260
|
*/
|