typeorm 0.3.6-dev.1197d1d → 0.3.6-dev.189592c

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 (292) hide show
  1. package/README.md +34 -14
  2. package/browser/cache/DbQueryResultCache.js +9 -1
  3. package/browser/cache/DbQueryResultCache.js.map +1 -1
  4. package/browser/cache/RedisQueryResultCache.js +3 -0
  5. package/browser/cache/RedisQueryResultCache.js.map +1 -1
  6. package/browser/data-source/DataSourceOptions.d.ts +2 -1
  7. package/browser/data-source/DataSourceOptions.js.map +1 -1
  8. package/browser/decorator/Index.js +1 -0
  9. package/browser/decorator/Index.js.map +1 -1
  10. package/browser/decorator/columns/PrimaryColumn.js +4 -1
  11. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  12. package/browser/decorator/options/ColumnOptions.d.ts +10 -2
  13. package/browser/decorator/options/ColumnOptions.js.map +1 -1
  14. package/browser/decorator/options/IndexOptions.d.ts +8 -0
  15. package/browser/decorator/options/IndexOptions.js.map +1 -1
  16. package/browser/decorator/options/JoinColumnOptions.d.ts +4 -0
  17. package/browser/decorator/options/JoinColumnOptions.js.map +1 -1
  18. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +4 -0
  19. package/browser/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
  20. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +4 -0
  21. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  22. package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.d.ts +4 -0
  23. package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  24. package/browser/decorator/relations/JoinColumn.js +1 -0
  25. package/browser/decorator/relations/JoinColumn.js.map +1 -1
  26. package/browser/driver/DriverFactory.js +4 -0
  27. package/browser/driver/DriverFactory.js.map +1 -1
  28. package/browser/driver/cockroachdb/CockroachDriver.js +4 -1
  29. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  30. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +3 -3
  31. package/browser/driver/cockroachdb/CockroachQueryRunner.js +233 -33
  32. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  33. package/browser/driver/mysql/MysqlDriver.d.ts +1 -0
  34. package/browser/driver/mysql/MysqlDriver.js +94 -23
  35. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  36. package/browser/driver/mysql/MysqlQueryRunner.js +219 -24
  37. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  38. package/browser/driver/oracle/OracleDriver.js +79 -15
  39. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  40. package/browser/driver/oracle/OracleQueryRunner.d.ts +3 -3
  41. package/browser/driver/oracle/OracleQueryRunner.js +216 -42
  42. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  43. package/browser/driver/postgres/PostgresDriver.js +95 -18
  44. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  45. package/browser/driver/postgres/PostgresQueryRunner.d.ts +3 -3
  46. package/browser/driver/postgres/PostgresQueryRunner.js +159 -59
  47. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  48. package/browser/driver/spanner/SpannerConnectionCredentialsOptions.d.ts +17 -0
  49. package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js +3 -0
  50. package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -0
  51. package/browser/driver/spanner/SpannerConnectionOptions.d.ts +120 -0
  52. package/browser/driver/spanner/SpannerConnectionOptions.js +3 -0
  53. package/browser/driver/spanner/SpannerConnectionOptions.js.map +1 -0
  54. package/browser/driver/spanner/SpannerDriver.d.ts +241 -0
  55. package/browser/driver/spanner/SpannerDriver.js +604 -0
  56. package/browser/driver/spanner/SpannerDriver.js.map +1 -0
  57. package/browser/driver/spanner/SpannerQueryRunner.d.ts +350 -0
  58. package/browser/driver/spanner/SpannerQueryRunner.js +1445 -0
  59. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -0
  60. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +65 -16
  61. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  62. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +218 -32
  63. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  64. package/browser/driver/sqlserver/SqlServerDriver.d.ts +3 -1
  65. package/browser/driver/sqlserver/SqlServerDriver.js +99 -26
  66. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  67. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +3 -3
  68. package/browser/driver/sqlserver/SqlServerQueryRunner.js +251 -37
  69. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  70. package/browser/driver/types/ColumnTypes.d.ts +1 -1
  71. package/browser/driver/types/ColumnTypes.js.map +1 -1
  72. package/browser/driver/types/DatabaseType.d.ts +1 -1
  73. package/browser/driver/types/DatabaseType.js.map +1 -1
  74. package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +2 -2
  75. package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  76. package/browser/entity-schema/EntitySchemaIndexOptions.d.ts +8 -0
  77. package/browser/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  78. package/browser/entity-schema/EntitySchemaTransformer.js +2 -0
  79. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  80. package/browser/find-options/FindOneOptions.d.ts +1 -1
  81. package/browser/find-options/FindOneOptions.js.map +1 -1
  82. package/browser/find-options/FindOptionsUtils.d.ts +2 -1
  83. package/browser/find-options/FindOptionsUtils.js +2 -1
  84. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  85. package/browser/logger/AdvancedConsoleLogger.d.ts +1 -1
  86. package/browser/logger/AdvancedConsoleLogger.js +1 -1
  87. package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
  88. package/browser/metadata/ColumnMetadata.d.ts +10 -2
  89. package/browser/metadata/ColumnMetadata.js +8 -0
  90. package/browser/metadata/ColumnMetadata.js.map +1 -1
  91. package/browser/metadata/ForeignKeyMetadata.d.ts +7 -0
  92. package/browser/metadata/ForeignKeyMetadata.js +4 -1
  93. package/browser/metadata/ForeignKeyMetadata.js.map +1 -1
  94. package/browser/metadata/IndexMetadata.d.ts +8 -0
  95. package/browser/metadata/IndexMetadata.js +9 -0
  96. package/browser/metadata/IndexMetadata.js.map +1 -1
  97. package/browser/metadata-args/IndexMetadataArgs.d.ts +8 -0
  98. package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
  99. package/browser/metadata-args/JoinColumnMetadataArgs.d.ts +4 -0
  100. package/browser/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  101. package/browser/metadata-builder/EntityMetadataBuilder.js +13 -6
  102. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  103. package/browser/metadata-builder/EntityMetadataValidator.js +17 -0
  104. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  105. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +18 -6
  106. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  107. package/browser/metadata-builder/RelationJoinColumnBuilder.js +2 -0
  108. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  109. package/browser/platform/PlatformTools.js +5 -0
  110. package/browser/platform/PlatformTools.js.map +1 -1
  111. package/browser/query-builder/InsertQueryBuilder.js +15 -3
  112. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  113. package/browser/query-builder/QueryBuilder.js +1 -3
  114. package/browser/query-builder/QueryBuilder.js.map +1 -1
  115. package/browser/query-builder/QueryExpressionMap.d.ts +1 -1
  116. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  117. package/browser/query-builder/SelectQueryBuilder.d.ts +1 -1
  118. package/browser/query-builder/SelectQueryBuilder.js +25 -4
  119. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  120. package/browser/query-builder/UpdateQueryBuilder.js +18 -7
  121. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  122. package/browser/query-runner/BaseQueryRunner.d.ts +10 -0
  123. package/browser/query-runner/BaseQueryRunner.js +25 -1
  124. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  125. package/browser/query-runner/QueryRunner.d.ts +2 -2
  126. package/browser/query-runner/QueryRunner.js.map +1 -1
  127. package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +6 -2
  128. package/browser/schema-builder/RdbmsSchemaBuilder.js +26 -6
  129. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  130. package/browser/schema-builder/options/TableColumnOptions.d.ts +10 -2
  131. package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
  132. package/browser/schema-builder/options/TableIndexOptions.d.ts +8 -0
  133. package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
  134. package/browser/schema-builder/table/TableColumn.d.ts +6 -2
  135. package/browser/schema-builder/table/TableColumn.js +2 -0
  136. package/browser/schema-builder/table/TableColumn.js.map +1 -1
  137. package/browser/schema-builder/table/TableIndex.d.ts +8 -0
  138. package/browser/schema-builder/table/TableIndex.js +3 -0
  139. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  140. package/browser/schema-builder/util/TableUtils.js +1 -0
  141. package/browser/schema-builder/util/TableUtils.js.map +1 -1
  142. package/browser/util/escapeRegExp.d.ts +1 -0
  143. package/browser/util/escapeRegExp.js +6 -0
  144. package/browser/util/escapeRegExp.js.map +1 -0
  145. package/cache/DbQueryResultCache.js +9 -1
  146. package/cache/DbQueryResultCache.js.map +1 -1
  147. package/cache/RedisQueryResultCache.js +3 -0
  148. package/cache/RedisQueryResultCache.js.map +1 -1
  149. package/commands/InitCommand.js +1 -1
  150. package/commands/InitCommand.js.map +1 -1
  151. package/commands/MigrationGenerateCommand.js +3 -2
  152. package/commands/MigrationGenerateCommand.js.map +1 -1
  153. package/data-source/DataSourceOptions.d.ts +2 -1
  154. package/data-source/DataSourceOptions.js.map +1 -1
  155. package/decorator/Index.js +1 -0
  156. package/decorator/Index.js.map +1 -1
  157. package/decorator/columns/PrimaryColumn.js +4 -1
  158. package/decorator/columns/PrimaryColumn.js.map +1 -1
  159. package/decorator/options/ColumnOptions.d.ts +10 -2
  160. package/decorator/options/ColumnOptions.js.map +1 -1
  161. package/decorator/options/IndexOptions.d.ts +8 -0
  162. package/decorator/options/IndexOptions.js.map +1 -1
  163. package/decorator/options/JoinColumnOptions.d.ts +4 -0
  164. package/decorator/options/JoinColumnOptions.js.map +1 -1
  165. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.d.ts +4 -0
  166. package/decorator/options/PrimaryGeneratedColumnIdentityOptions.js.map +1 -1
  167. package/decorator/options/PrimaryGeneratedColumnNumericOptions.d.ts +4 -0
  168. package/decorator/options/PrimaryGeneratedColumnNumericOptions.js.map +1 -1
  169. package/decorator/options/PrimaryGeneratedColumnUUIDOptions.d.ts +4 -0
  170. package/decorator/options/PrimaryGeneratedColumnUUIDOptions.js.map +1 -1
  171. package/decorator/relations/JoinColumn.js +1 -0
  172. package/decorator/relations/JoinColumn.js.map +1 -1
  173. package/driver/DriverFactory.js +4 -0
  174. package/driver/DriverFactory.js.map +1 -1
  175. package/driver/cockroachdb/CockroachDriver.js +4 -1
  176. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  177. package/driver/cockroachdb/CockroachQueryRunner.d.ts +3 -3
  178. package/driver/cockroachdb/CockroachQueryRunner.js +233 -33
  179. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  180. package/driver/mysql/MysqlDriver.d.ts +1 -0
  181. package/driver/mysql/MysqlDriver.js +94 -23
  182. package/driver/mysql/MysqlDriver.js.map +1 -1
  183. package/driver/mysql/MysqlQueryRunner.js +219 -24
  184. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  185. package/driver/oracle/OracleDriver.js +79 -15
  186. package/driver/oracle/OracleDriver.js.map +1 -1
  187. package/driver/oracle/OracleQueryRunner.d.ts +3 -3
  188. package/driver/oracle/OracleQueryRunner.js +216 -42
  189. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  190. package/driver/postgres/PostgresDriver.js +95 -18
  191. package/driver/postgres/PostgresDriver.js.map +1 -1
  192. package/driver/postgres/PostgresQueryRunner.d.ts +3 -3
  193. package/driver/postgres/PostgresQueryRunner.js +159 -59
  194. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  195. package/driver/spanner/SpannerConnectionCredentialsOptions.d.ts +17 -0
  196. package/driver/spanner/SpannerConnectionCredentialsOptions.js +4 -0
  197. package/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -0
  198. package/driver/spanner/SpannerConnectionOptions.d.ts +120 -0
  199. package/driver/spanner/SpannerConnectionOptions.js +4 -0
  200. package/driver/spanner/SpannerConnectionOptions.js.map +1 -0
  201. package/driver/spanner/SpannerDriver.d.ts +241 -0
  202. package/driver/spanner/SpannerDriver.js +608 -0
  203. package/driver/spanner/SpannerDriver.js.map +1 -0
  204. package/driver/spanner/SpannerQueryRunner.d.ts +350 -0
  205. package/driver/spanner/SpannerQueryRunner.js +1449 -0
  206. package/driver/spanner/SpannerQueryRunner.js.map +1 -0
  207. package/driver/sqlite-abstract/AbstractSqliteDriver.js +65 -16
  208. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  209. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +218 -32
  210. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  211. package/driver/sqlserver/SqlServerDriver.d.ts +3 -1
  212. package/driver/sqlserver/SqlServerDriver.js +99 -26
  213. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  214. package/driver/sqlserver/SqlServerQueryRunner.d.ts +3 -3
  215. package/driver/sqlserver/SqlServerQueryRunner.js +251 -37
  216. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  217. package/driver/types/ColumnTypes.d.ts +1 -1
  218. package/driver/types/ColumnTypes.js.map +1 -1
  219. package/driver/types/DatabaseType.d.ts +1 -1
  220. package/driver/types/DatabaseType.js.map +1 -1
  221. package/entity-schema/EntitySchemaColumnOptions.d.ts +2 -2
  222. package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
  223. package/entity-schema/EntitySchemaIndexOptions.d.ts +8 -0
  224. package/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
  225. package/entity-schema/EntitySchemaTransformer.js +2 -0
  226. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  227. package/find-options/FindOneOptions.d.ts +1 -1
  228. package/find-options/FindOneOptions.js.map +1 -1
  229. package/find-options/FindOptionsUtils.d.ts +2 -1
  230. package/find-options/FindOptionsUtils.js +2 -1
  231. package/find-options/FindOptionsUtils.js.map +1 -1
  232. package/logger/AdvancedConsoleLogger.d.ts +1 -1
  233. package/logger/AdvancedConsoleLogger.js +1 -1
  234. package/logger/AdvancedConsoleLogger.js.map +1 -1
  235. package/metadata/ColumnMetadata.d.ts +10 -2
  236. package/metadata/ColumnMetadata.js +8 -0
  237. package/metadata/ColumnMetadata.js.map +1 -1
  238. package/metadata/ForeignKeyMetadata.d.ts +7 -0
  239. package/metadata/ForeignKeyMetadata.js +4 -1
  240. package/metadata/ForeignKeyMetadata.js.map +1 -1
  241. package/metadata/IndexMetadata.d.ts +8 -0
  242. package/metadata/IndexMetadata.js +9 -0
  243. package/metadata/IndexMetadata.js.map +1 -1
  244. package/metadata-args/IndexMetadataArgs.d.ts +8 -0
  245. package/metadata-args/IndexMetadataArgs.js.map +1 -1
  246. package/metadata-args/JoinColumnMetadataArgs.d.ts +4 -0
  247. package/metadata-args/JoinColumnMetadataArgs.js.map +1 -1
  248. package/metadata-builder/EntityMetadataBuilder.js +13 -6
  249. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  250. package/metadata-builder/EntityMetadataValidator.js +17 -0
  251. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  252. package/metadata-builder/JunctionEntityMetadataBuilder.js +18 -6
  253. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  254. package/metadata-builder/RelationJoinColumnBuilder.js +2 -0
  255. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  256. package/package.json +1 -1
  257. package/platform/PlatformTools.js +5 -0
  258. package/platform/PlatformTools.js.map +1 -1
  259. package/query-builder/InsertQueryBuilder.js +15 -3
  260. package/query-builder/InsertQueryBuilder.js.map +1 -1
  261. package/query-builder/QueryBuilder.js +3 -5
  262. package/query-builder/QueryBuilder.js.map +1 -1
  263. package/query-builder/QueryExpressionMap.d.ts +1 -1
  264. package/query-builder/QueryExpressionMap.js.map +1 -1
  265. package/query-builder/SelectQueryBuilder.d.ts +1 -1
  266. package/query-builder/SelectQueryBuilder.js +25 -4
  267. package/query-builder/SelectQueryBuilder.js.map +1 -1
  268. package/query-builder/UpdateQueryBuilder.js +18 -7
  269. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  270. package/query-runner/BaseQueryRunner.d.ts +10 -0
  271. package/query-runner/BaseQueryRunner.js +25 -1
  272. package/query-runner/BaseQueryRunner.js.map +1 -1
  273. package/query-runner/QueryRunner.d.ts +2 -2
  274. package/query-runner/QueryRunner.js.map +1 -1
  275. package/schema-builder/RdbmsSchemaBuilder.d.ts +6 -2
  276. package/schema-builder/RdbmsSchemaBuilder.js +26 -6
  277. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  278. package/schema-builder/options/TableColumnOptions.d.ts +10 -2
  279. package/schema-builder/options/TableColumnOptions.js.map +1 -1
  280. package/schema-builder/options/TableIndexOptions.d.ts +8 -0
  281. package/schema-builder/options/TableIndexOptions.js.map +1 -1
  282. package/schema-builder/table/TableColumn.d.ts +6 -2
  283. package/schema-builder/table/TableColumn.js +2 -0
  284. package/schema-builder/table/TableColumn.js.map +1 -1
  285. package/schema-builder/table/TableIndex.d.ts +8 -0
  286. package/schema-builder/table/TableIndex.js +3 -0
  287. package/schema-builder/table/TableIndex.js.map +1 -1
  288. package/schema-builder/util/TableUtils.js +1 -0
  289. package/schema-builder/util/TableUtils.js.map +1 -1
  290. package/util/escapeRegExp.d.ts +1 -0
  291. package/util/escapeRegExp.js +10 -0
  292. package/util/escapeRegExp.js.map +1 -0
@@ -1262,7 +1262,8 @@ export class SelectQueryBuilder extends QueryBuilder {
1262
1262
  }
1263
1263
  else if (DriverUtils.isMySQLFamily(this.connection.driver) ||
1264
1264
  this.connection.driver.options.type === "aurora-mysql" ||
1265
- this.connection.driver.options.type === "sap") {
1265
+ this.connection.driver.options.type === "sap" ||
1266
+ this.connection.driver.options.type === "spanner") {
1266
1267
  if (limit && offset)
1267
1268
  return " LIMIT " + limit + " OFFSET " + offset;
1268
1269
  if (limit)
@@ -1400,6 +1401,13 @@ export class SelectQueryBuilder extends QueryBuilder {
1400
1401
  else {
1401
1402
  throw new LockNotSupportedOnGivenDriverError();
1402
1403
  }
1404
+ case "for_key_share":
1405
+ if (driver.options.type === "postgres") {
1406
+ return " FOR KEY SHARE" + lockTablesClause;
1407
+ }
1408
+ else {
1409
+ throw new LockNotSupportedOnGivenDriverError();
1410
+ }
1403
1411
  default:
1404
1412
  return "";
1405
1413
  }
@@ -1546,6 +1554,17 @@ export class SelectQueryBuilder extends QueryBuilder {
1546
1554
  }
1547
1555
  return `COUNT(DISTINCT(CONCAT(${columnsExpression})))`;
1548
1556
  }
1557
+ if (this.connection.driver.options.type === "spanner") {
1558
+ // spanner also has gotta be different from everyone else.
1559
+ // they do not support concatenation of different column types without casting them to string
1560
+ if (primaryColumns.length === 1) {
1561
+ return `COUNT(DISTINCT(${distinctAlias}.${this.escape(primaryColumns[0].databaseName)}))`;
1562
+ }
1563
+ const columnsExpression = primaryColumns
1564
+ .map((primaryColumn) => `CAST(${distinctAlias}.${this.escape(primaryColumn.databaseName)} AS STRING)`)
1565
+ .join(", '|;|', ");
1566
+ return `COUNT(DISTINCT(CONCAT(${columnsExpression})))`;
1567
+ }
1549
1568
  // If all else fails, fall back to a `COUNT` and `DISTINCT` across all the primary columns concatenated.
1550
1569
  // Per the SQL spec, this is the canonical string concatenation mechanism which is most
1551
1570
  // likely to work across servers implementing the SQL standard.
@@ -1717,7 +1736,8 @@ export class SelectQueryBuilder extends QueryBuilder {
1717
1736
  "pessimistic_partial_write" ||
1718
1737
  this.findOptions.lock.mode ===
1719
1738
  "pessimistic_write_or_fail" ||
1720
- this.findOptions.lock.mode === "for_no_key_update") {
1739
+ this.findOptions.lock.mode === "for_no_key_update" ||
1740
+ this.findOptions.lock.mode === "for_key_share") {
1721
1741
  const tableNames = this.findOptions.lock.tables
1722
1742
  ? this.findOptions.lock.tables.map((table) => {
1723
1743
  const tableAlias = this.expressionMap.aliases.find((alias) => {
@@ -1770,7 +1790,8 @@ export class SelectQueryBuilder extends QueryBuilder {
1770
1790
  this.expressionMap.lockMode === "pessimistic_write" ||
1771
1791
  this.expressionMap.lockMode === "pessimistic_partial_write" ||
1772
1792
  this.expressionMap.lockMode === "pessimistic_write_or_fail" ||
1773
- this.expressionMap.lockMode === "for_no_key_update") &&
1793
+ this.expressionMap.lockMode === "for_no_key_update" ||
1794
+ this.expressionMap.lockMode === "for_key_share") &&
1774
1795
  !queryRunner.isTransactionActive)
1775
1796
  throw new PessimisticLockTransactionRequiredError();
1776
1797
  if (this.expressionMap.lockMode === "optimistic") {
@@ -1803,7 +1824,7 @@ export class SelectQueryBuilder extends QueryBuilder {
1803
1824
  // make sure we aren't overriding user-defined order in inverse direction
1804
1825
  orderBys[columnAlias] = "ASC";
1805
1826
  const alias = DriverUtils.buildAlias(this.connection.driver, "ids_" + mainAliasName, primaryColumn.databaseName);
1806
- return `${distinctAlias}.${columnAlias} as "${alias}"`;
1827
+ return `${distinctAlias}.${columnAlias} AS ${this.escape(alias)}`;
1807
1828
  });
1808
1829
  rawResults = await new SelectQueryBuilder(this.connection, queryRunner)
1809
1830
  .select(`DISTINCT ${querySelects.join(", ")}`)