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.
Files changed (161) hide show
  1. package/README.md +2 -2
  2. package/browser/cache/RedisQueryResultCache.d.ts +6 -9
  3. package/browser/cache/RedisQueryResultCache.js +21 -42
  4. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  5. package/browser/cli-ts-node-commonjs.js +0 -0
  6. package/browser/cli-ts-node-esm.js +0 -0
  7. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js +18 -5
  8. package/browser/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  9. package/browser/driver/cockroachdb/CockroachDriver.d.ts +2 -2
  10. package/browser/driver/cockroachdb/CockroachDriver.js +13 -3
  11. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  12. package/browser/driver/cockroachdb/CockroachQueryRunner.js +18 -12
  13. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  14. package/browser/driver/mysql/MysqlDriver.js +18 -5
  15. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  16. package/browser/driver/oracle/OracleDriver.d.ts +2 -2
  17. package/browser/driver/oracle/OracleDriver.js +8 -5
  18. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  19. package/browser/driver/postgres/PostgresDriver.d.ts +2 -2
  20. package/browser/driver/postgres/PostgresDriver.js +18 -5
  21. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  22. package/browser/driver/postgres/PostgresQueryRunner.js +16 -10
  23. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  24. package/browser/driver/sap/SapConnectionOptions.d.ts +8 -1
  25. package/browser/driver/sap/SapConnectionOptions.js.map +1 -1
  26. package/browser/driver/sap/SapDriver.js +4 -8
  27. package/browser/driver/sap/SapDriver.js.map +1 -1
  28. package/browser/driver/spanner/SpannerDriver.d.ts +2 -2
  29. package/browser/driver/spanner/SpannerDriver.js +1 -1
  30. package/browser/driver/spanner/SpannerDriver.js.map +1 -1
  31. package/browser/driver/sqlserver/SqlServerDriver.d.ts +2 -2
  32. package/browser/driver/sqlserver/SqlServerDriver.js +1 -1
  33. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  34. package/browser/entity-manager/EntityManager.d.ts +3 -2
  35. package/browser/entity-manager/EntityManager.js +30 -20
  36. package/browser/entity-manager/EntityManager.js.map +1 -1
  37. package/browser/error/QueryFailedError.js +1 -2
  38. package/browser/error/QueryFailedError.js.map +1 -1
  39. package/browser/index.d.ts +3 -0
  40. package/browser/index.js +1 -0
  41. package/browser/index.js.map +1 -1
  42. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +2 -0
  43. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  44. package/browser/metadata-builder/RelationJoinColumnBuilder.d.ts +11 -5
  45. package/browser/metadata-builder/RelationJoinColumnBuilder.js +11 -5
  46. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  47. package/browser/migration/MigrationExecutor.d.ts +3 -1
  48. package/browser/migration/MigrationExecutor.js +13 -3
  49. package/browser/migration/MigrationExecutor.js.map +1 -1
  50. package/browser/persistence/SubjectExecutor.d.ts +3 -0
  51. package/browser/persistence/SubjectExecutor.js +11 -0
  52. package/browser/persistence/SubjectExecutor.js.map +1 -1
  53. package/browser/query-builder/QueryBuilder.d.ts +8 -0
  54. package/browser/query-builder/QueryBuilder.js +35 -0
  55. package/browser/query-builder/QueryBuilder.js.map +1 -1
  56. package/browser/query-builder/ReturningOption.d.ts +4 -0
  57. package/browser/query-builder/ReturningOption.js +3 -0
  58. package/browser/query-builder/ReturningOption.js.map +1 -0
  59. package/browser/query-builder/SelectQueryBuilder.d.ts +7 -11
  60. package/browser/query-builder/SelectQueryBuilder.js +53 -64
  61. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  62. package/browser/query-builder/SoftDeleteQueryBuilder.js +17 -12
  63. package/browser/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  64. package/browser/query-builder/UpdateQueryBuilder.js +17 -12
  65. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  66. package/browser/repository/BaseEntity.d.ts +2 -1
  67. package/browser/repository/BaseEntity.js +2 -2
  68. package/browser/repository/BaseEntity.js.map +1 -1
  69. package/browser/repository/Repository.d.ts +3 -2
  70. package/browser/repository/Repository.js +4 -4
  71. package/browser/repository/Repository.js.map +1 -1
  72. package/browser/repository/TreeRepository.js +2 -2
  73. package/browser/repository/TreeRepository.js.map +1 -1
  74. package/browser/repository/UpdateOptions.d.ts +11 -0
  75. package/browser/repository/UpdateOptions.js +3 -0
  76. package/browser/repository/UpdateOptions.js.map +1 -0
  77. package/browser/repository/UpsertOptions.d.ts +6 -0
  78. package/browser/repository/UpsertOptions.js.map +1 -1
  79. package/browser/schema-builder/RdbmsSchemaBuilder.js +1 -1
  80. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  81. package/cache/RedisQueryResultCache.d.ts +6 -9
  82. package/cache/RedisQueryResultCache.js +21 -42
  83. package/cache/RedisQueryResultCache.js.map +1 -1
  84. package/commands/InitCommand.js +1 -1
  85. package/commands/MigrationRunCommand.js +4 -4
  86. package/commands/MigrationRunCommand.js.map +1 -1
  87. package/driver/aurora-mysql/AuroraMysqlDriver.js +18 -5
  88. package/driver/aurora-mysql/AuroraMysqlDriver.js.map +1 -1
  89. package/driver/cockroachdb/CockroachDriver.d.ts +2 -2
  90. package/driver/cockroachdb/CockroachDriver.js +13 -3
  91. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  92. package/driver/cockroachdb/CockroachQueryRunner.js +18 -12
  93. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  94. package/driver/mysql/MysqlDriver.js +18 -5
  95. package/driver/mysql/MysqlDriver.js.map +1 -1
  96. package/driver/oracle/OracleDriver.d.ts +2 -2
  97. package/driver/oracle/OracleDriver.js +8 -5
  98. package/driver/oracle/OracleDriver.js.map +1 -1
  99. package/driver/postgres/PostgresDriver.d.ts +2 -2
  100. package/driver/postgres/PostgresDriver.js +18 -5
  101. package/driver/postgres/PostgresDriver.js.map +1 -1
  102. package/driver/postgres/PostgresQueryRunner.js +16 -10
  103. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  104. package/driver/sap/SapConnectionOptions.d.ts +8 -1
  105. package/driver/sap/SapConnectionOptions.js.map +1 -1
  106. package/driver/sap/SapDriver.js +4 -8
  107. package/driver/sap/SapDriver.js.map +1 -1
  108. package/driver/spanner/SpannerDriver.d.ts +2 -2
  109. package/driver/spanner/SpannerDriver.js +1 -1
  110. package/driver/spanner/SpannerDriver.js.map +1 -1
  111. package/driver/sqlserver/SqlServerDriver.d.ts +2 -2
  112. package/driver/sqlserver/SqlServerDriver.js +1 -1
  113. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  114. package/entity-manager/EntityManager.d.ts +3 -2
  115. package/entity-manager/EntityManager.js +30 -20
  116. package/entity-manager/EntityManager.js.map +1 -1
  117. package/error/QueryFailedError.js +1 -2
  118. package/error/QueryFailedError.js.map +1 -1
  119. package/index.d.ts +3 -0
  120. package/index.js +1 -0
  121. package/index.js.map +1 -1
  122. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +2 -0
  123. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  124. package/metadata-builder/RelationJoinColumnBuilder.d.ts +11 -5
  125. package/metadata-builder/RelationJoinColumnBuilder.js +11 -5
  126. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  127. package/migration/MigrationExecutor.d.ts +3 -1
  128. package/migration/MigrationExecutor.js +13 -3
  129. package/migration/MigrationExecutor.js.map +1 -1
  130. package/package.json +278 -1
  131. package/persistence/SubjectExecutor.d.ts +3 -0
  132. package/persistence/SubjectExecutor.js +11 -0
  133. package/persistence/SubjectExecutor.js.map +1 -1
  134. package/query-builder/QueryBuilder.d.ts +8 -0
  135. package/query-builder/QueryBuilder.js +35 -0
  136. package/query-builder/QueryBuilder.js.map +1 -1
  137. package/query-builder/ReturningOption.d.ts +4 -0
  138. package/query-builder/ReturningOption.js +4 -0
  139. package/query-builder/ReturningOption.js.map +1 -0
  140. package/query-builder/SelectQueryBuilder.d.ts +7 -11
  141. package/query-builder/SelectQueryBuilder.js +53 -64
  142. package/query-builder/SelectQueryBuilder.js.map +1 -1
  143. package/query-builder/SoftDeleteQueryBuilder.js +17 -12
  144. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  145. package/query-builder/UpdateQueryBuilder.js +17 -12
  146. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  147. package/repository/BaseEntity.d.ts +2 -1
  148. package/repository/BaseEntity.js +2 -2
  149. package/repository/BaseEntity.js.map +1 -1
  150. package/repository/Repository.d.ts +3 -2
  151. package/repository/Repository.js +4 -4
  152. package/repository/Repository.js.map +1 -1
  153. package/repository/TreeRepository.js +2 -2
  154. package/repository/TreeRepository.js.map +1 -1
  155. package/repository/UpdateOptions.d.ts +11 -0
  156. package/repository/UpdateOptions.js +4 -0
  157. package/repository/UpdateOptions.js.map +1 -0
  158. package/repository/UpsertOptions.d.ts +6 -0
  159. package/repository/UpsertOptions.js.map +1 -1
  160. package/schema-builder/RdbmsSchemaBuilder.js +1 -1
  161. 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
- if (nulls) {
514
- this.expressionMap.orderBys = {
515
- [sort]: { order, nulls },
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
- if (order !== undefined && order !== "ASC" && order !== "DESC")
533
- throw new error_1.TypeORMError(`SelectQueryBuilder.addOrderBy "order" can accept only "ASC" and "DESC" values.`);
534
- if (nulls !== undefined &&
535
- nulls !== "NULLS FIRST" &&
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
- * NOTE that it may not work as you expect if you are using joins.
549
- * If you want to implement pagination, and you are having join in your query,
550
- * then use the take method instead.
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.normalizeNumber(limit);
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
- * NOTE that it may not work as you expect if you are using joins.
562
- * If you want to implement pagination, and you are having join in your query,
563
- * then use the skip method instead.
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.normalizeNumber(offset);
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.normalizeNumber(take);
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.normalizeNumber(skip);
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
- * Creates "LOCK" part of SQL query.
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 (!(DriverUtils_1.DriverUtils.isPostgresFamily(driver) ||
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
- onLockExpression = " SKIP LOCKED";
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 === "cockroachdb") {
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 === "cockroachdb") {
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 || this.expressionMap.take) &&
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
- rawResults = await this.clone()
2065
+ const secondQuery = this.clone()
2071
2066
  .mergeExpressionMap({
2072
2067
  extraAppendedAndWhereCondition: condition,
2073
2068
  })
2074
- .setParameters(parameters)
2075
- .loadRawResults(queryRunner);
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
  */