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