typeorm 0.3.17 → 0.3.18-dev.0f11739

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 (326) hide show
  1. package/README.md +23 -23
  2. package/browser/data-source/BaseDataSourceOptions.d.ts +4 -0
  3. package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
  4. package/browser/data-source/DataSource.d.ts +4 -0
  5. package/browser/data-source/DataSource.js +14 -0
  6. package/browser/data-source/DataSource.js.map +1 -1
  7. package/browser/decorator/Index.js +1 -0
  8. package/browser/decorator/Index.js.map +1 -1
  9. package/browser/decorator/options/IndexOptions.d.ts +5 -0
  10. package/browser/decorator/options/IndexOptions.js.map +1 -1
  11. package/browser/driver/Driver.d.ts +4 -0
  12. package/browser/driver/Driver.js.map +1 -1
  13. package/browser/driver/DriverUtils.js +2 -5
  14. package/browser/driver/DriverUtils.js.map +1 -1
  15. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +9 -6
  16. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  17. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js +9 -6
  18. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  19. package/browser/driver/cockroachdb/CockroachConnectionOptions.d.ts +6 -0
  20. package/browser/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  21. package/browser/driver/cockroachdb/CockroachDriver.d.ts +4 -0
  22. package/browser/driver/cockroachdb/CockroachDriver.js +10 -1
  23. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  24. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +6 -1
  25. package/browser/driver/cockroachdb/CockroachQueryRunner.js +38 -17
  26. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  27. package/browser/driver/mongodb/MongoQueryRunner.d.ts +3 -3
  28. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  29. package/browser/driver/mongodb/typings.d.ts +3 -3
  30. package/browser/driver/mongodb/typings.js.map +1 -1
  31. package/browser/driver/mysql/MysqlConnectionOptions.d.ts +6 -0
  32. package/browser/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  33. package/browser/driver/mysql/MysqlQueryRunner.js +9 -6
  34. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  35. package/browser/driver/oracle/OracleConnectionOptions.d.ts +14 -0
  36. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  37. package/browser/driver/oracle/OracleDriver.d.ts +4 -0
  38. package/browser/driver/oracle/OracleDriver.js +17 -2
  39. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  40. package/browser/driver/oracle/OracleQueryRunner.js +40 -6
  41. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  42. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +5 -0
  43. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  44. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +6 -5
  45. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  46. package/browser/driver/postgres/PostgresDriver.d.ts +4 -0
  47. package/browser/driver/postgres/PostgresDriver.js +13 -4
  48. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  49. package/browser/driver/postgres/PostgresQueryRunner.js +38 -23
  50. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  51. package/browser/driver/sap/SapDriver.d.ts +8 -0
  52. package/browser/driver/sap/SapDriver.js +14 -3
  53. package/browser/driver/sap/SapDriver.js.map +1 -1
  54. package/browser/driver/sap/SapQueryRunner.d.ts +5 -14
  55. package/browser/driver/sap/SapQueryRunner.js +65 -61
  56. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  57. package/browser/driver/spanner/SpannerConnectionOptions.d.ts +6 -0
  58. package/browser/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  59. package/browser/driver/spanner/SpannerDriver.d.ts +4 -0
  60. package/browser/driver/spanner/SpannerDriver.js +10 -1
  61. package/browser/driver/spanner/SpannerDriver.js.map +1 -1
  62. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +10 -16
  63. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  64. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +2 -1
  65. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  66. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +11 -5
  67. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  68. package/browser/driver/sqlserver/SqlServerDriver.d.ts +4 -0
  69. package/browser/driver/sqlserver/SqlServerDriver.js +10 -1
  70. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  71. package/browser/driver/sqlserver/SqlServerQueryRunner.js +19 -5
  72. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  73. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.d.ts +12 -0
  74. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js +3 -0
  75. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -0
  76. package/browser/entity-manager/EntityManager.d.ts +5 -1
  77. package/browser/entity-manager/EntityManager.js +15 -2
  78. package/browser/entity-manager/EntityManager.js.map +1 -1
  79. package/browser/entity-manager/MongoEntityManager.d.ts +8 -4
  80. package/browser/entity-manager/MongoEntityManager.js +12 -10
  81. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  82. package/browser/entity-schema/EntitySchemaOptions.d.ts +4 -0
  83. package/browser/entity-schema/EntitySchemaOptions.js.map +1 -1
  84. package/browser/entity-schema/EntitySchemaTransformer.js +7 -0
  85. package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
  86. package/browser/error/EntityNotFoundError.d.ts +2 -0
  87. package/browser/error/EntityNotFoundError.js +2 -0
  88. package/browser/error/EntityNotFoundError.js.map +1 -1
  89. package/browser/error/QueryFailedError.d.ts +3 -3
  90. package/browser/error/QueryFailedError.js.map +1 -1
  91. package/browser/find-options/FindOptionsUtils.js +1 -1
  92. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  93. package/browser/find-options/FindOptionsWhere.d.ts +1 -1
  94. package/browser/find-options/FindOptionsWhere.js.map +1 -1
  95. package/browser/index.d.ts +1 -0
  96. package/browser/index.js +1 -0
  97. package/browser/index.js.map +1 -1
  98. package/browser/logger/AbstractLogger.js +1 -1
  99. package/browser/logger/AbstractLogger.js.map +1 -1
  100. package/browser/metadata/IndexMetadata.d.ts +5 -0
  101. package/browser/metadata/IndexMetadata.js +1 -0
  102. package/browser/metadata/IndexMetadata.js.map +1 -1
  103. package/browser/metadata-args/IndexMetadataArgs.d.ts +5 -0
  104. package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
  105. package/browser/metadata-builder/EntityMetadataBuilder.js +22 -0
  106. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  107. package/browser/naming-strategy/DefaultNamingStrategy.d.ts +0 -1
  108. package/browser/naming-strategy/DefaultNamingStrategy.js +0 -3
  109. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  110. package/browser/naming-strategy/NamingStrategyInterface.d.ts +0 -4
  111. package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
  112. package/browser/persistence/Subject.js +2 -1
  113. package/browser/persistence/Subject.js.map +1 -1
  114. package/browser/persistence/SubjectExecutor.js +4 -1
  115. package/browser/persistence/SubjectExecutor.js.map +1 -1
  116. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +6 -2
  117. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  118. package/browser/platform/BrowserPlatformTools.js +3 -2
  119. package/browser/platform/BrowserPlatformTools.js.map +1 -1
  120. package/browser/platform/PlatformTools.js +2 -0
  121. package/browser/platform/PlatformTools.js.map +1 -1
  122. package/browser/query-builder/InsertQueryBuilder.js +19 -6
  123. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  124. package/browser/query-builder/QueryBuilder.d.ts +5 -0
  125. package/browser/query-builder/QueryBuilder.js +27 -24
  126. package/browser/query-builder/QueryBuilder.js.map +1 -1
  127. package/browser/query-builder/SelectQueryBuilder.js +13 -3
  128. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  129. package/browser/query-builder/index.d.ts +1 -0
  130. package/browser/query-builder/index.js +17 -0
  131. package/browser/query-builder/index.js.map +1 -0
  132. package/browser/repository/BaseEntity.d.ts +12 -0
  133. package/browser/repository/BaseEntity.js +12 -0
  134. package/browser/repository/BaseEntity.js.map +1 -1
  135. package/browser/repository/MongoRepository.d.ts +8 -4
  136. package/browser/repository/MongoRepository.js +6 -0
  137. package/browser/repository/MongoRepository.js.map +1 -1
  138. package/browser/repository/Repository.d.ts +14 -2
  139. package/browser/repository/Repository.js +26 -6
  140. package/browser/repository/Repository.js.map +1 -1
  141. package/browser/schema-builder/options/TableIndexOptions.d.ts +5 -0
  142. package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
  143. package/browser/schema-builder/table/TableIndex.d.ts +5 -0
  144. package/browser/schema-builder/table/TableIndex.js +3 -0
  145. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  146. package/browser/subscriber/Broadcaster.d.ts +1 -1
  147. package/browser/subscriber/Broadcaster.js +2 -1
  148. package/browser/subscriber/Broadcaster.js.map +1 -1
  149. package/browser/subscriber/event/InsertEvent.d.ts +5 -0
  150. package/browser/subscriber/event/InsertEvent.js.map +1 -1
  151. package/browser/util/DateUtils.js +4 -2
  152. package/browser/util/DateUtils.js.map +1 -1
  153. package/browser/util/OrmUtils.d.ts +6 -0
  154. package/browser/util/OrmUtils.js +66 -0
  155. package/browser/util/OrmUtils.js.map +1 -1
  156. package/commands/CommandUtils.js +6 -1
  157. package/commands/CommandUtils.js.map +1 -1
  158. package/commands/EntityCreateCommand.d.ts +3 -0
  159. package/commands/EntityCreateCommand.js +7 -0
  160. package/commands/EntityCreateCommand.js.map +1 -1
  161. package/commands/InitCommand.js +1 -1
  162. package/commands/InitCommand.js.map +1 -1
  163. package/commands/MigrationCreateCommand.d.ts +5 -1
  164. package/commands/MigrationCreateCommand.js +6 -1
  165. package/commands/MigrationCreateCommand.js.map +1 -1
  166. package/commands/MigrationGenerateCommand.d.ts +5 -1
  167. package/commands/MigrationGenerateCommand.js +8 -1
  168. package/commands/MigrationGenerateCommand.js.map +1 -1
  169. package/commands/SubscriberCreateCommand.d.ts +3 -0
  170. package/commands/SubscriberCreateCommand.js +7 -0
  171. package/commands/SubscriberCreateCommand.js.map +1 -1
  172. package/data-source/BaseDataSourceOptions.d.ts +4 -0
  173. package/data-source/BaseDataSourceOptions.js.map +1 -1
  174. package/data-source/DataSource.d.ts +4 -0
  175. package/data-source/DataSource.js +14 -0
  176. package/data-source/DataSource.js.map +1 -1
  177. package/decorator/Index.js +1 -0
  178. package/decorator/Index.js.map +1 -1
  179. package/decorator/options/IndexOptions.d.ts +5 -0
  180. package/decorator/options/IndexOptions.js.map +1 -1
  181. package/driver/Driver.d.ts +4 -0
  182. package/driver/Driver.js.map +1 -1
  183. package/driver/DriverUtils.js +2 -5
  184. package/driver/DriverUtils.js.map +1 -1
  185. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +9 -6
  186. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  187. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js +9 -6
  188. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  189. package/driver/cockroachdb/CockroachConnectionOptions.d.ts +6 -0
  190. package/driver/cockroachdb/CockroachConnectionOptions.js.map +1 -1
  191. package/driver/cockroachdb/CockroachDriver.d.ts +4 -0
  192. package/driver/cockroachdb/CockroachDriver.js +10 -1
  193. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  194. package/driver/cockroachdb/CockroachQueryRunner.d.ts +6 -1
  195. package/driver/cockroachdb/CockroachQueryRunner.js +38 -17
  196. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  197. package/driver/mongodb/MongoQueryRunner.d.ts +3 -3
  198. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  199. package/driver/mongodb/typings.d.ts +3 -3
  200. package/driver/mongodb/typings.js.map +1 -1
  201. package/driver/mysql/MysqlConnectionOptions.d.ts +6 -0
  202. package/driver/mysql/MysqlConnectionOptions.js.map +1 -1
  203. package/driver/mysql/MysqlQueryRunner.js +9 -6
  204. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  205. package/driver/oracle/OracleConnectionOptions.d.ts +14 -0
  206. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  207. package/driver/oracle/OracleDriver.d.ts +4 -0
  208. package/driver/oracle/OracleDriver.js +17 -2
  209. package/driver/oracle/OracleDriver.js.map +1 -1
  210. package/driver/oracle/OracleQueryRunner.js +40 -6
  211. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  212. package/driver/postgres/PostgresConnectionCredentialsOptions.d.ts +5 -0
  213. package/driver/postgres/PostgresConnectionCredentialsOptions.js.map +1 -1
  214. package/driver/postgres/PostgresConnectionOptions.d.ts +6 -5
  215. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  216. package/driver/postgres/PostgresDriver.d.ts +4 -0
  217. package/driver/postgres/PostgresDriver.js +13 -4
  218. package/driver/postgres/PostgresDriver.js.map +1 -1
  219. package/driver/postgres/PostgresQueryRunner.js +38 -23
  220. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  221. package/driver/sap/SapDriver.d.ts +8 -0
  222. package/driver/sap/SapDriver.js +15 -4
  223. package/driver/sap/SapDriver.js.map +1 -1
  224. package/driver/sap/SapQueryRunner.d.ts +5 -14
  225. package/driver/sap/SapQueryRunner.js +65 -61
  226. package/driver/sap/SapQueryRunner.js.map +1 -1
  227. package/driver/spanner/SpannerConnectionOptions.d.ts +6 -0
  228. package/driver/spanner/SpannerConnectionOptions.js.map +1 -1
  229. package/driver/spanner/SpannerDriver.d.ts +4 -0
  230. package/driver/spanner/SpannerDriver.js +10 -1
  231. package/driver/spanner/SpannerDriver.js.map +1 -1
  232. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +10 -16
  233. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  234. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +2 -1
  235. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  236. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +11 -5
  237. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  238. package/driver/sqlserver/SqlServerDriver.d.ts +4 -0
  239. package/driver/sqlserver/SqlServerDriver.js +10 -1
  240. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  241. package/driver/sqlserver/SqlServerQueryRunner.js +19 -5
  242. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  243. package/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.d.ts +12 -0
  244. package/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js +4 -0
  245. package/driver/sqlserver/authentication/AzureActiveDirectoryDefaultAuthentication.js.map +1 -0
  246. package/entity-manager/EntityManager.d.ts +5 -1
  247. package/entity-manager/EntityManager.js +15 -2
  248. package/entity-manager/EntityManager.js.map +1 -1
  249. package/entity-manager/MongoEntityManager.d.ts +8 -4
  250. package/entity-manager/MongoEntityManager.js +12 -10
  251. package/entity-manager/MongoEntityManager.js.map +1 -1
  252. package/entity-schema/EntitySchemaOptions.d.ts +4 -0
  253. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  254. package/entity-schema/EntitySchemaTransformer.js +7 -0
  255. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  256. package/error/EntityNotFoundError.d.ts +2 -0
  257. package/error/EntityNotFoundError.js +2 -0
  258. package/error/EntityNotFoundError.js.map +1 -1
  259. package/error/QueryFailedError.d.ts +3 -3
  260. package/error/QueryFailedError.js.map +1 -1
  261. package/find-options/FindOptionsUtils.js +1 -1
  262. package/find-options/FindOptionsUtils.js.map +1 -1
  263. package/find-options/FindOptionsWhere.d.ts +1 -1
  264. package/find-options/FindOptionsWhere.js.map +1 -1
  265. package/index.d.ts +1 -0
  266. package/index.js +1 -0
  267. package/index.js.map +1 -1
  268. package/index.mjs +2 -0
  269. package/logger/AbstractLogger.js +1 -1
  270. package/logger/AbstractLogger.js.map +1 -1
  271. package/metadata/IndexMetadata.d.ts +5 -0
  272. package/metadata/IndexMetadata.js +1 -0
  273. package/metadata/IndexMetadata.js.map +1 -1
  274. package/metadata-args/IndexMetadataArgs.d.ts +5 -0
  275. package/metadata-args/IndexMetadataArgs.js.map +1 -1
  276. package/metadata-builder/EntityMetadataBuilder.js +22 -0
  277. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  278. package/naming-strategy/DefaultNamingStrategy.d.ts +0 -1
  279. package/naming-strategy/DefaultNamingStrategy.js +0 -3
  280. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  281. package/naming-strategy/NamingStrategyInterface.d.ts +0 -4
  282. package/naming-strategy/NamingStrategyInterface.js.map +1 -1
  283. package/package.json +1 -271
  284. package/persistence/Subject.js +2 -1
  285. package/persistence/Subject.js.map +1 -1
  286. package/persistence/SubjectExecutor.js +4 -1
  287. package/persistence/SubjectExecutor.js.map +1 -1
  288. package/persistence/subject-builder/ManyToManySubjectBuilder.js +6 -2
  289. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  290. package/platform/PlatformTools.js +2 -0
  291. package/platform/PlatformTools.js.map +1 -1
  292. package/query-builder/InsertQueryBuilder.js +19 -6
  293. package/query-builder/InsertQueryBuilder.js.map +1 -1
  294. package/query-builder/QueryBuilder.d.ts +5 -0
  295. package/query-builder/QueryBuilder.js +27 -24
  296. package/query-builder/QueryBuilder.js.map +1 -1
  297. package/query-builder/SelectQueryBuilder.js +13 -3
  298. package/query-builder/SelectQueryBuilder.js.map +1 -1
  299. package/query-builder/index.d.ts +1 -0
  300. package/query-builder/index.js +21 -0
  301. package/query-builder/index.js.map +1 -0
  302. package/repository/BaseEntity.d.ts +12 -0
  303. package/repository/BaseEntity.js +12 -0
  304. package/repository/BaseEntity.js.map +1 -1
  305. package/repository/MongoRepository.d.ts +8 -4
  306. package/repository/MongoRepository.js +6 -0
  307. package/repository/MongoRepository.js.map +1 -1
  308. package/repository/Repository.d.ts +14 -2
  309. package/repository/Repository.js +26 -6
  310. package/repository/Repository.js.map +1 -1
  311. package/schema-builder/options/TableIndexOptions.d.ts +5 -0
  312. package/schema-builder/options/TableIndexOptions.js.map +1 -1
  313. package/schema-builder/table/TableIndex.d.ts +5 -0
  314. package/schema-builder/table/TableIndex.js +3 -0
  315. package/schema-builder/table/TableIndex.js.map +1 -1
  316. package/subscriber/Broadcaster.d.ts +1 -1
  317. package/subscriber/Broadcaster.js +2 -1
  318. package/subscriber/Broadcaster.js.map +1 -1
  319. package/subscriber/event/InsertEvent.d.ts +5 -0
  320. package/subscriber/event/InsertEvent.js.map +1 -1
  321. package/typeorm-model-shim.js +61 -53
  322. package/util/DateUtils.js +5 -2
  323. package/util/DateUtils.js.map +1 -1
  324. package/util/OrmUtils.d.ts +6 -0
  325. package/util/OrmUtils.js +66 -0
  326. package/util/OrmUtils.js.map +1 -1
@@ -118,15 +118,16 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
118
118
  throw err;
119
119
  }
120
120
  if (this.transactionDepth === 0) {
121
+ this.transactionDepth += 1;
121
122
  await this.query("START TRANSACTION");
122
123
  if (isolationLevel) {
123
124
  await this.query("SET TRANSACTION ISOLATION LEVEL " + isolationLevel);
124
125
  }
125
126
  }
126
127
  else {
127
- await this.query(`SAVEPOINT typeorm_${this.transactionDepth}`);
128
+ this.transactionDepth += 1;
129
+ await this.query(`SAVEPOINT typeorm_${this.transactionDepth - 1}`);
128
130
  }
129
- this.transactionDepth += 1;
130
131
  await this.broadcaster.broadcast("AfterTransactionStart");
131
132
  }
132
133
  /**
@@ -138,13 +139,14 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
138
139
  throw new TransactionNotStartedError_1.TransactionNotStartedError();
139
140
  await this.broadcaster.broadcast("BeforeTransactionCommit");
140
141
  if (this.transactionDepth > 1) {
141
- await this.query(`RELEASE SAVEPOINT typeorm_${this.transactionDepth - 1}`);
142
+ this.transactionDepth -= 1;
143
+ await this.query(`RELEASE SAVEPOINT typeorm_${this.transactionDepth}`);
142
144
  }
143
145
  else {
146
+ this.transactionDepth -= 1;
144
147
  await this.query("COMMIT");
145
148
  this.isTransactionActive = false;
146
149
  }
147
- this.transactionDepth -= 1;
148
150
  await this.broadcaster.broadcast("AfterTransactionCommit");
149
151
  }
150
152
  /**
@@ -156,13 +158,14 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
156
158
  throw new TransactionNotStartedError_1.TransactionNotStartedError();
157
159
  await this.broadcaster.broadcast("BeforeTransactionRollback");
158
160
  if (this.transactionDepth > 1) {
159
- await this.query(`ROLLBACK TO SAVEPOINT typeorm_${this.transactionDepth - 1}`);
161
+ this.transactionDepth -= 1;
162
+ await this.query(`ROLLBACK TO SAVEPOINT typeorm_${this.transactionDepth}`);
160
163
  }
161
164
  else {
165
+ this.transactionDepth -= 1;
162
166
  await this.query("ROLLBACK");
163
167
  this.isTransactionActive = false;
164
168
  }
165
- this.transactionDepth -= 1;
166
169
  await this.broadcaster.broadcast("AfterTransactionRollback");
167
170
  }
168
171
  /**
@@ -1784,13 +1787,14 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1784
1787
  `WHERE "t"."relkind" IN ('r', 'p') AND (${constraintsCondition})`;
1785
1788
  const indicesSql = `SELECT "ns"."nspname" AS "table_schema", "t"."relname" AS "table_name", "i"."relname" AS "constraint_name", "a"."attname" AS "column_name", ` +
1786
1789
  `CASE "ix"."indisunique" WHEN 't' THEN 'TRUE' ELSE'FALSE' END AS "is_unique", pg_get_expr("ix"."indpred", "ix"."indrelid") AS "condition", ` +
1787
- `"types"."typname" AS "type_name" ` +
1790
+ `"types"."typname" AS "type_name", "am"."amname" AS "index_type" ` +
1788
1791
  `FROM "pg_class" "t" ` +
1789
1792
  `INNER JOIN "pg_index" "ix" ON "ix"."indrelid" = "t"."oid" ` +
1790
1793
  `INNER JOIN "pg_attribute" "a" ON "a"."attrelid" = "t"."oid" AND "a"."attnum" = ANY ("ix"."indkey") ` +
1791
1794
  `INNER JOIN "pg_namespace" "ns" ON "ns"."oid" = "t"."relnamespace" ` +
1792
1795
  `INNER JOIN "pg_class" "i" ON "i"."oid" = "ix"."indexrelid" ` +
1793
1796
  `INNER JOIN "pg_type" "types" ON "types"."oid" = "a"."atttypid" ` +
1797
+ `INNER JOIN "pg_am" "am" ON "i"."relam" = "am"."oid" ` +
1794
1798
  `LEFT JOIN "pg_constraint" "cnst" ON "cnst"."conname" = "i"."relname" ` +
1795
1799
  `WHERE "t"."relkind" IN ('r', 'p') AND "cnst"."contype" IS NULL AND (${constraintsCondition})`;
1796
1800
  const foreignKeysCondition = dbTables
@@ -1860,26 +1864,34 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1860
1864
  tableColumn.name = dbColumn["column_name"];
1861
1865
  tableColumn.type = dbColumn["regtype"].toLowerCase();
1862
1866
  if (tableColumn.type === "numeric" ||
1867
+ tableColumn.type === "numeric[]" ||
1863
1868
  tableColumn.type === "decimal" ||
1864
1869
  tableColumn.type === "float") {
1870
+ let numericPrecision = dbColumn["numeric_precision"];
1871
+ let numericScale = dbColumn["numeric_scale"];
1872
+ if (dbColumn["data_type"] === "ARRAY") {
1873
+ const numericSize = dbColumn["format_type"].match(/^numeric\(([0-9]+),([0-9]+)\)\[\]$/);
1874
+ if (numericSize) {
1875
+ numericPrecision = +numericSize[1];
1876
+ numericScale = +numericSize[2];
1877
+ }
1878
+ }
1865
1879
  // If one of these properties was set, and another was not, Postgres sets '0' in to unspecified property
1866
1880
  // we set 'undefined' in to unspecified property to avoid changing column on sync
1867
- if (dbColumn["numeric_precision"] !== null &&
1868
- !this.isDefaultColumnPrecision(table, tableColumn, dbColumn["numeric_precision"])) {
1869
- tableColumn.precision =
1870
- dbColumn["numeric_precision"];
1881
+ if (numericPrecision !== null &&
1882
+ !this.isDefaultColumnPrecision(table, tableColumn, numericPrecision)) {
1883
+ tableColumn.precision = numericPrecision;
1871
1884
  }
1872
- else if (dbColumn["numeric_scale"] !== null &&
1873
- !this.isDefaultColumnScale(table, tableColumn, dbColumn["numeric_scale"])) {
1885
+ else if (numericScale !== null &&
1886
+ !this.isDefaultColumnScale(table, tableColumn, numericScale)) {
1874
1887
  tableColumn.precision = undefined;
1875
1888
  }
1876
- if (dbColumn["numeric_scale"] !== null &&
1877
- !this.isDefaultColumnScale(table, tableColumn, dbColumn["numeric_scale"])) {
1878
- tableColumn.scale =
1879
- dbColumn["numeric_scale"];
1889
+ if (numericScale !== null &&
1890
+ !this.isDefaultColumnScale(table, tableColumn, numericScale)) {
1891
+ tableColumn.scale = numericScale;
1880
1892
  }
1881
- else if (dbColumn["numeric_precision"] !== null &&
1882
- !this.isDefaultColumnPrecision(table, tableColumn, dbColumn["numeric_precision"])) {
1893
+ else if (numericPrecision !== null &&
1894
+ !this.isDefaultColumnPrecision(table, tableColumn, numericPrecision)) {
1883
1895
  tableColumn.scale = undefined;
1884
1896
  }
1885
1897
  }
@@ -2162,7 +2174,7 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
2162
2174
  columnNames: indices.map((i) => i["column_name"]),
2163
2175
  isUnique: constraint["is_unique"] === "TRUE",
2164
2176
  where: constraint["condition"],
2165
- isSpatial: indices.every((i) => this.driver.spatialTypes.indexOf(i["type_name"]) >= 0),
2177
+ isSpatial: constraint["index_type"] === "gist",
2166
2178
  isFulltext: false,
2167
2179
  });
2168
2180
  });
@@ -2383,7 +2395,7 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
2383
2395
  const columns = index.columnNames
2384
2396
  .map((columnName) => `"${columnName}"`)
2385
2397
  .join(", ");
2386
- return new Query_1.Query(`CREATE ${index.isUnique ? "UNIQUE " : ""}INDEX "${index.name}" ON ${this.escapePath(table)} ${index.isSpatial ? "USING GiST " : ""}(${columns}) ${index.where ? "WHERE " + index.where : ""}`);
2398
+ return new Query_1.Query(`CREATE ${index.isUnique ? "UNIQUE " : ""}${index.isConcurrent ? "CONCURRENTLY " : ""}INDEX "${index.name}" ON ${this.escapePath(table)} ${index.isSpatial ? "USING GiST " : ""}(${columns}) ${index.where ? "WHERE " + index.where : ""}`);
2387
2399
  }
2388
2400
  /**
2389
2401
  * Builds create view index sql.
@@ -2401,10 +2413,13 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
2401
2413
  let indexName = InstanceChecker_1.InstanceChecker.isTableIndex(indexOrName)
2402
2414
  ? indexOrName.name
2403
2415
  : indexOrName;
2416
+ const concurrent = InstanceChecker_1.InstanceChecker.isTableIndex(indexOrName)
2417
+ ? indexOrName.isConcurrent
2418
+ : false;
2404
2419
  const { schema } = this.driver.parseTableName(table);
2405
2420
  return schema
2406
- ? new Query_1.Query(`DROP INDEX "${schema}"."${indexName}"`)
2407
- : new Query_1.Query(`DROP INDEX "${indexName}"`);
2421
+ ? new Query_1.Query(`DROP INDEX ${concurrent ? "CONCURRENTLY" : ""}"${schema}"."${indexName}"`)
2422
+ : new Query_1.Query(`DROP INDEX ${concurrent ? "CONCURRENTLY" : ""}"${indexName}"`);
2408
2423
  }
2409
2424
  /**
2410
2425
  * Builds create primary key sql.