typeorm 0.2.28 → 0.2.32

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 (1178) hide show
  1. package/README.md +54 -49
  2. package/browser/cache/QueryResultCache.js +1 -1
  3. package/browser/cache/QueryResultCacheOptions.js +1 -1
  4. package/browser/common/DeepPartial.js +1 -1
  5. package/browser/common/EntityFieldsNames.d.ts +6 -0
  6. package/browser/common/EntityFieldsNames.js +3 -0
  7. package/browser/common/EntityFieldsNames.js.map +1 -0
  8. package/browser/common/EntityTarget.js +1 -1
  9. package/browser/common/ObjectLiteral.js +1 -1
  10. package/browser/common/ObjectType.js +1 -1
  11. package/browser/connection/BaseConnectionOptions.js +1 -1
  12. package/browser/connection/Connection.d.ts +2 -2
  13. package/browser/connection/Connection.js +4 -2
  14. package/browser/connection/Connection.js.map +1 -1
  15. package/browser/connection/ConnectionMetadataBuilder.js +5 -5
  16. package/browser/connection/ConnectionMetadataBuilder.js.map +1 -1
  17. package/browser/connection/ConnectionOptions.js +1 -1
  18. package/browser/connection/ConnectionOptionsReader.d.ts +3 -3
  19. package/browser/connection/ConnectionOptionsReader.js +30 -30
  20. package/browser/connection/ConnectionOptionsReader.js.map +1 -1
  21. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js +1 -1
  22. package/browser/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  23. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js +1 -1
  24. package/browser/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  25. package/browser/decorator/columns/PrimaryColumn.d.ts +9 -2
  26. package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
  27. package/browser/decorator/entity/ChildEntity.js +1 -1
  28. package/browser/decorator/entity/ChildEntity.js.map +1 -1
  29. package/browser/decorator/options/ColumnCommonOptions.js +1 -1
  30. package/browser/decorator/options/ColumnEmbeddedOptions.js +1 -1
  31. package/browser/decorator/options/ColumnEnumOptions.js +1 -1
  32. package/browser/decorator/options/ColumnHstoreOptions.js +1 -1
  33. package/browser/decorator/options/ColumnNumericOptions.js +1 -1
  34. package/browser/decorator/options/ColumnOptions.js +1 -1
  35. package/browser/decorator/options/ColumnWithLengthOptions.js +1 -1
  36. package/browser/decorator/options/ColumnWithWidthOptions.js +1 -1
  37. package/browser/decorator/options/EntityOptions.js +1 -1
  38. package/browser/decorator/options/IndexOptions.js +1 -1
  39. package/browser/decorator/options/JoinColumnOptions.js +1 -1
  40. package/browser/decorator/options/JoinTableMultipleColumnsOptions.js +1 -1
  41. package/browser/decorator/options/JoinTableOptions.js +1 -1
  42. package/browser/decorator/options/PrimaryGeneratedColumnNumericOptions.js +1 -1
  43. package/browser/decorator/options/PrimaryGeneratedColumnUUIDOptions.js +1 -1
  44. package/browser/decorator/options/RelationOptions.d.ts +10 -0
  45. package/browser/decorator/options/RelationOptions.js +1 -1
  46. package/browser/decorator/options/RelationOptions.js.map +1 -1
  47. package/browser/decorator/options/SpatialColumnOptions.js +1 -1
  48. package/browser/decorator/options/TransactionOptions.js +1 -1
  49. package/browser/decorator/options/ValueTransformer.js +1 -1
  50. package/browser/decorator/options/ViewColumnOptions.js +1 -1
  51. package/browser/decorator/options/ViewEntityOptions.js +1 -1
  52. package/browser/decorator/relations/ManyToOne.d.ts +6 -6
  53. package/browser/decorator/relations/ManyToOne.js +5 -5
  54. package/browser/decorator/relations/ManyToOne.js.map +1 -1
  55. package/browser/decorator/relations/OneToMany.d.ts +3 -2
  56. package/browser/decorator/relations/OneToMany.js +4 -3
  57. package/browser/decorator/relations/OneToMany.js.map +1 -1
  58. package/browser/decorator/transaction/Transaction.d.ts +1 -1
  59. package/browser/decorator/transaction/Transaction.js +6 -6
  60. package/browser/decorator/transaction/Transaction.js.map +1 -1
  61. package/browser/decorator/tree/Tree.d.ts +2 -1
  62. package/browser/decorator/tree/Tree.js +3 -2
  63. package/browser/decorator/tree/Tree.js.map +1 -1
  64. package/browser/driver/Driver.d.ts +1 -1
  65. package/browser/driver/Driver.js +1 -1
  66. package/browser/driver/Driver.js.map +1 -1
  67. package/browser/driver/DriverFactory.js.map +1 -1
  68. package/browser/driver/DriverUtils.d.ts +10 -0
  69. package/browser/driver/DriverUtils.js +99 -12
  70. package/browser/driver/DriverUtils.js.map +1 -1
  71. package/browser/driver/aurora-data-api/AuroraDataApiConnectionCredentialsOptions.js +1 -1
  72. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +1 -0
  73. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js +1 -1
  74. package/browser/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  75. package/browser/driver/aurora-data-api/AuroraDataApiDriver.d.ts +3 -3
  76. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js +15 -6
  77. package/browser/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  78. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts +6 -1
  79. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +72 -11
  80. package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  81. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +2 -0
  82. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js +1 -1
  83. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -1
  84. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.d.ts +10 -1
  85. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +26 -2
  86. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -1
  87. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.d.ts +2 -1
  88. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +59 -11
  89. package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  90. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js +1 -1
  91. package/browser/driver/cockroachdb/CockroachConnectionCredentialsOptions.js +1 -1
  92. package/browser/driver/cockroachdb/CockroachConnectionOptions.js +1 -1
  93. package/browser/driver/cockroachdb/CockroachDriver.d.ts +1 -1
  94. package/browser/driver/cockroachdb/CockroachDriver.js +6 -9
  95. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  96. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +4 -0
  97. package/browser/driver/cockroachdb/CockroachQueryRunner.js +112 -42
  98. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  99. package/browser/driver/cordova/CordovaConnectionOptions.js +1 -1
  100. package/browser/driver/expo/ExpoConnectionOptions.js +1 -1
  101. package/browser/driver/expo/ExpoQueryRunner.js +72 -14
  102. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  103. package/browser/driver/mongodb/MongoConnectionOptions.d.ts +8 -0
  104. package/browser/driver/mongodb/MongoConnectionOptions.js +1 -1
  105. package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  106. package/browser/driver/mongodb/MongoDriver.d.ts +8 -4
  107. package/browser/driver/mongodb/MongoDriver.js +26 -14
  108. package/browser/driver/mongodb/MongoDriver.js.map +1 -1
  109. package/browser/driver/mongodb/MongoQueryRunner.d.ts +3 -3
  110. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  111. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +4 -0
  112. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js +1 -1
  113. package/browser/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  114. package/browser/driver/mysql/MysqlConnectionOptions.js +1 -1
  115. package/browser/driver/mysql/MysqlDriver.d.ts +2 -2
  116. package/browser/driver/mysql/MysqlDriver.js +15 -14
  117. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  118. package/browser/driver/mysql/MysqlQueryRunner.d.ts +4 -0
  119. package/browser/driver/mysql/MysqlQueryRunner.js +118 -43
  120. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  121. package/browser/driver/nativescript/NativescriptConnectionOptions.js +1 -1
  122. package/browser/driver/oracle/OracleConnectionCredentialsOptions.js +1 -1
  123. package/browser/driver/oracle/OracleConnectionOptions.d.ts +4 -0
  124. package/browser/driver/oracle/OracleConnectionOptions.js +1 -1
  125. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  126. package/browser/driver/oracle/OracleDriver.d.ts +1 -1
  127. package/browser/driver/oracle/OracleDriver.js +28 -3
  128. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  129. package/browser/driver/oracle/OracleQueryRunner.js +53 -7
  130. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  131. package/browser/driver/postgres/PostgresConnectionCredentialsOptions.js +1 -1
  132. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +4 -0
  133. package/browser/driver/postgres/PostgresConnectionOptions.js +1 -1
  134. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  135. package/browser/driver/postgres/PostgresDriver.d.ts +2 -2
  136. package/browser/driver/postgres/PostgresDriver.js +63 -29
  137. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  138. package/browser/driver/postgres/PostgresQueryRunner.d.ts +9 -1
  139. package/browser/driver/postgres/PostgresQueryRunner.js +335 -211
  140. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  141. package/browser/driver/react-native/ReactNativeConnectionOptions.js +1 -1
  142. package/browser/driver/react-native/ReactNativeDriver.js +1 -2
  143. package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
  144. package/browser/driver/sap/SapConnectionCredentialsOptions.js +1 -1
  145. package/browser/driver/sap/SapConnectionOptions.js +1 -1
  146. package/browser/driver/sap/SapDriver.d.ts +1 -1
  147. package/browser/driver/sap/SapDriver.js.map +1 -1
  148. package/browser/driver/sap/SapQueryRunner.js +58 -10
  149. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  150. package/browser/driver/sqlite/SqliteConnectionOptions.js +1 -1
  151. package/browser/driver/sqlite/SqliteQueryRunner.js +4 -0
  152. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  153. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +1 -1
  154. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +4 -1
  155. package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  156. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +55 -8
  157. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  158. package/browser/driver/sqljs/SqljsConnectionOptions.js +1 -1
  159. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +18 -2
  160. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js +1 -1
  161. package/browser/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  162. package/browser/driver/sqlserver/SqlServerConnectionOptions.js +1 -1
  163. package/browser/driver/sqlserver/SqlServerDriver.d.ts +2 -2
  164. package/browser/driver/sqlserver/SqlServerDriver.js +33 -8
  165. package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
  166. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +1 -0
  167. package/browser/driver/sqlserver/SqlServerQueryRunner.js +166 -86
  168. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  169. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +10 -0
  170. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +3 -0
  171. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -0
  172. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +20 -0
  173. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +3 -0
  174. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -0
  175. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +16 -0
  176. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +3 -0
  177. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -0
  178. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +17 -0
  179. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js +3 -0
  180. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -0
  181. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.d.ts +17 -0
  182. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +3 -0
  183. package/browser/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -0
  184. package/browser/driver/sqlserver/authentication/DefaultAuthentication.d.ts +13 -0
  185. package/browser/driver/sqlserver/authentication/DefaultAuthentication.js +3 -0
  186. package/browser/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -0
  187. package/browser/driver/sqlserver/authentication/NtlmAuthentication.d.ts +19 -0
  188. package/browser/driver/sqlserver/authentication/NtlmAuthentication.js +3 -0
  189. package/browser/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -0
  190. package/browser/driver/types/ColumnTypes.d.ts +1 -1
  191. package/browser/driver/types/ColumnTypes.js +1 -1
  192. package/browser/driver/types/ColumnTypes.js.map +1 -1
  193. package/browser/driver/types/DataTypeDefaults.js +1 -1
  194. package/browser/driver/types/DatabaseType.js +1 -1
  195. package/browser/driver/types/IsolationLevel.js +1 -1
  196. package/browser/driver/types/MappedColumnTypes.js +1 -1
  197. package/browser/driver/types/ReplicationMode.js +1 -1
  198. package/browser/entity-manager/EntityManager.d.ts +16 -2
  199. package/browser/entity-manager/EntityManager.js +5 -16
  200. package/browser/entity-manager/EntityManager.js.map +1 -1
  201. package/browser/entity-manager/MongoEntityManager.d.ts +1 -4
  202. package/browser/entity-manager/MongoEntityManager.js +53 -48
  203. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  204. package/browser/entity-schema/EntitySchemaCheckOptions.js +1 -1
  205. package/browser/entity-schema/EntitySchemaColumnOptions.js +1 -1
  206. package/browser/entity-schema/EntitySchemaExclusionOptions.js +1 -1
  207. package/browser/entity-schema/EntitySchemaIndexOptions.js +1 -1
  208. package/browser/entity-schema/EntitySchemaRelationOptions.js +1 -1
  209. package/browser/entity-schema/EntitySchemaUniqueOptions.js +1 -1
  210. package/browser/error/index.d.ts +61 -0
  211. package/browser/error/index.js +63 -0
  212. package/browser/error/index.js.map +1 -0
  213. package/browser/find-options/FindConditions.js +1 -1
  214. package/browser/find-options/FindManyOptions.js +1 -1
  215. package/browser/find-options/FindOneOptions.d.ts +10 -2
  216. package/browser/find-options/FindOneOptions.js +1 -1
  217. package/browser/find-options/FindOneOptions.js.map +1 -1
  218. package/browser/find-options/FindOperator.d.ts +25 -6
  219. package/browser/find-options/FindOperator.js +32 -6
  220. package/browser/find-options/FindOperator.js.map +1 -1
  221. package/browser/find-options/FindOperatorType.d.ts +1 -1
  222. package/browser/find-options/FindOperatorType.js +1 -1
  223. package/browser/find-options/FindOperatorType.js.map +1 -1
  224. package/browser/find-options/FindOptionsUtils.js +15 -2
  225. package/browser/find-options/FindOptionsUtils.js.map +1 -1
  226. package/browser/find-options/JoinOptions.d.ts +16 -4
  227. package/browser/find-options/JoinOptions.js +1 -1
  228. package/browser/find-options/JoinOptions.js.map +1 -1
  229. package/browser/find-options/OrderByCondition.js +1 -1
  230. package/browser/find-options/operator/ILike.d.ts +6 -0
  231. package/browser/find-options/operator/ILike.js +10 -0
  232. package/browser/find-options/operator/ILike.js.map +1 -0
  233. package/browser/find-options/operator/Raw.d.ts +14 -2
  234. package/browser/find-options/operator/Raw.js +5 -6
  235. package/browser/find-options/operator/Raw.js.map +1 -1
  236. package/browser/index.d.ts +3 -1
  237. package/browser/index.js +25 -1
  238. package/browser/index.js.map +1 -1
  239. package/browser/logger/AdvancedConsoleLogger.d.ts +2 -1
  240. package/browser/logger/FileLogger.d.ts +2 -2
  241. package/browser/logger/Logger.d.ts +1 -1
  242. package/browser/logger/Logger.js +1 -1
  243. package/browser/logger/Logger.js.map +1 -1
  244. package/browser/logger/LoggerOptions.js +1 -1
  245. package/browser/logger/SimpleConsoleLogger.d.ts +2 -1
  246. package/browser/metadata/ColumnMetadata.d.ts +1 -1
  247. package/browser/metadata/ColumnMetadata.js +23 -15
  248. package/browser/metadata/ColumnMetadata.js.map +1 -1
  249. package/browser/metadata/EmbeddedMetadata.js +2 -2
  250. package/browser/metadata/EmbeddedMetadata.js.map +1 -1
  251. package/browser/metadata/EntityMetadata.d.ts +5 -0
  252. package/browser/metadata/EntityMetadata.js +3 -2
  253. package/browser/metadata/EntityMetadata.js.map +1 -1
  254. package/browser/metadata/RelationMetadata.d.ts +15 -0
  255. package/browser/metadata/RelationMetadata.js +23 -7
  256. package/browser/metadata/RelationMetadata.js.map +1 -1
  257. package/browser/metadata/types/ClosureTreeOptions.d.ts +10 -0
  258. package/browser/metadata/types/ClosureTreeOptions.js +3 -0
  259. package/browser/metadata/types/ClosureTreeOptions.js.map +1 -0
  260. package/browser/metadata/types/DeferrableType.js +1 -1
  261. package/browser/metadata/types/EventListenerTypes.d.ts +7 -7
  262. package/browser/metadata/types/EventListenerTypes.js.map +1 -1
  263. package/browser/metadata/types/OnDeleteType.js +1 -1
  264. package/browser/metadata/types/OnUpdateType.js +1 -1
  265. package/browser/metadata/types/PropertyTypeInFunction.js +1 -1
  266. package/browser/metadata/types/RelationTypeInFunction.js +1 -1
  267. package/browser/metadata/types/RelationTypes.js +1 -1
  268. package/browser/metadata/types/TableTypes.js +1 -1
  269. package/browser/metadata/types/TreeTypes.js +1 -1
  270. package/browser/metadata-args/CheckMetadataArgs.js +1 -1
  271. package/browser/metadata-args/ColumnMetadataArgs.js +1 -1
  272. package/browser/metadata-args/DiscriminatorValueMetadataArgs.js +1 -1
  273. package/browser/metadata-args/EmbeddedMetadataArgs.js +1 -1
  274. package/browser/metadata-args/EntityListenerMetadataArgs.js +1 -1
  275. package/browser/metadata-args/EntityRepositoryMetadataArgs.js +1 -1
  276. package/browser/metadata-args/EntitySubscriberMetadataArgs.js +1 -1
  277. package/browser/metadata-args/ExclusionMetadataArgs.js +1 -1
  278. package/browser/metadata-args/GeneratedMetadataArgs.js +1 -1
  279. package/browser/metadata-args/IndexMetadataArgs.js +1 -1
  280. package/browser/metadata-args/InheritanceMetadataArgs.js +1 -1
  281. package/browser/metadata-args/JoinColumnMetadataArgs.js +1 -1
  282. package/browser/metadata-args/JoinTableMetadataArgs.js +1 -1
  283. package/browser/metadata-args/NamingStrategyMetadataArgs.js +1 -1
  284. package/browser/metadata-args/RelationCountMetadataArgs.js +1 -1
  285. package/browser/metadata-args/RelationIdMetadataArgs.js +1 -1
  286. package/browser/metadata-args/RelationMetadataArgs.js +1 -1
  287. package/browser/metadata-args/TableMetadataArgs.js +1 -1
  288. package/browser/metadata-args/TransactionEntityMetadataArgs.js +1 -1
  289. package/browser/metadata-args/TransactionRepositoryMetadataArgs.js +1 -1
  290. package/browser/metadata-args/TreeMetadataArgs.d.ts +5 -0
  291. package/browser/metadata-args/TreeMetadataArgs.js +1 -1
  292. package/browser/metadata-args/TreeMetadataArgs.js.map +1 -1
  293. package/browser/metadata-args/UniqueMetadataArgs.js +1 -1
  294. package/browser/metadata-args/types/ColumnMode.js +1 -1
  295. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +5 -3
  296. package/browser/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  297. package/browser/metadata-builder/EntityMetadataBuilder.js +26 -16
  298. package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  299. package/browser/metadata-builder/EntityMetadataValidator.js +10 -5
  300. package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
  301. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +8 -4
  302. package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  303. package/browser/metadata-builder/RelationJoinColumnBuilder.d.ts +1 -0
  304. package/browser/metadata-builder/RelationJoinColumnBuilder.js +8 -6
  305. package/browser/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  306. package/browser/migration/MigrationExecutor.js +5 -5
  307. package/browser/migration/MigrationInterface.js +1 -1
  308. package/browser/naming-strategy/DefaultNamingStrategy.d.ts +1 -1
  309. package/browser/naming-strategy/DefaultNamingStrategy.js +9 -8
  310. package/browser/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  311. package/browser/naming-strategy/NamingStrategyInterface.d.ts +6 -1
  312. package/browser/naming-strategy/NamingStrategyInterface.js +1 -1
  313. package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
  314. package/browser/persistence/EntityPersistExecutor.js +55 -52
  315. package/browser/persistence/EntityPersistExecutor.js.map +1 -1
  316. package/browser/persistence/Subject.d.ts +4 -4
  317. package/browser/persistence/Subject.js +8 -7
  318. package/browser/persistence/Subject.js.map +1 -1
  319. package/browser/persistence/SubjectChangeMap.js +1 -1
  320. package/browser/persistence/SubjectChangedColumnsComputer.js +3 -1
  321. package/browser/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  322. package/browser/persistence/SubjectDatabaseEntityLoader.js +2 -2
  323. package/browser/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  324. package/browser/persistence/SubjectExecutor.js +30 -26
  325. package/browser/persistence/SubjectExecutor.js.map +1 -1
  326. package/browser/persistence/SubjectTopoligicalSorter.js +6 -6
  327. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  328. package/browser/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  329. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js +2 -0
  330. package/browser/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  331. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js +9 -4
  332. package/browser/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  333. package/browser/persistence/tree/ClosureSubjectExecutor.d.ts +1 -1
  334. package/browser/persistence/tree/ClosureSubjectExecutor.js +7 -7
  335. package/browser/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  336. package/browser/query-builder/Alias.d.ts +4 -3
  337. package/browser/query-builder/Alias.js +3 -3
  338. package/browser/query-builder/DeleteQueryBuilder.js +7 -2
  339. package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
  340. package/browser/query-builder/InsertQueryBuilder.d.ts +6 -0
  341. package/browser/query-builder/InsertQueryBuilder.js +63 -14
  342. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  343. package/browser/query-builder/JoinAttribute.d.ts +10 -10
  344. package/browser/query-builder/JoinAttribute.js +10 -10
  345. package/browser/query-builder/JoinOptions.js +1 -1
  346. package/browser/query-builder/QueryBuilder.d.ts +8 -1
  347. package/browser/query-builder/QueryBuilder.js +172 -37
  348. package/browser/query-builder/QueryBuilder.js.map +1 -1
  349. package/browser/query-builder/QueryBuilderUtils.js.map +1 -1
  350. package/browser/query-builder/QueryExpressionMap.d.ts +10 -2
  351. package/browser/query-builder/QueryExpressionMap.js +4 -2
  352. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  353. package/browser/query-builder/QueryPartialEntity.js +1 -1
  354. package/browser/query-builder/RelationLoader.js +4 -4
  355. package/browser/query-builder/RelationLoader.js.map +1 -1
  356. package/browser/query-builder/RelationQueryBuilder.js +1 -1
  357. package/browser/query-builder/RelationQueryBuilder.js.map +1 -1
  358. package/browser/query-builder/RelationRemover.js +11 -11
  359. package/browser/query-builder/RelationRemover.js.map +1 -1
  360. package/browser/query-builder/SelectQuery.js +1 -1
  361. package/browser/query-builder/SelectQueryBuilder.d.ts +7 -6
  362. package/browser/query-builder/SelectQueryBuilder.js +129 -67
  363. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  364. package/browser/query-builder/SelectQueryBuilderOption.js +1 -1
  365. package/browser/query-builder/UpdateQueryBuilder.js +6 -1
  366. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  367. package/browser/query-builder/WhereExpression.js +1 -1
  368. package/browser/query-builder/relation-count/RelationCountAttribute.d.ts +7 -7
  369. package/browser/query-builder/relation-count/RelationCountAttribute.js +7 -7
  370. package/browser/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  371. package/browser/query-builder/relation-count/RelationCountLoadResult.js +1 -1
  372. package/browser/query-builder/relation-count/RelationCountLoader.js +2 -1
  373. package/browser/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  374. package/browser/query-builder/relation-id/RelationIdAttribute.d.ts +8 -8
  375. package/browser/query-builder/relation-id/RelationIdAttribute.js +8 -8
  376. package/browser/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  377. package/browser/query-builder/relation-id/RelationIdLoadResult.js +1 -1
  378. package/browser/query-builder/relation-id/RelationIdLoader.js +62 -12
  379. package/browser/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  380. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +3 -3
  381. package/browser/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  382. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +10 -7
  383. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  384. package/browser/query-runner/BaseQueryRunner.js +3 -3
  385. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  386. package/browser/query-runner/QueryRunner.d.ts +1 -1
  387. package/browser/query-runner/QueryRunner.js +1 -1
  388. package/browser/query-runner/QueryRunner.js.map +1 -1
  389. package/browser/repository/AbstractRepository.d.ts +2 -2
  390. package/browser/repository/AbstractRepository.js +2 -2
  391. package/browser/repository/BaseEntity.d.ts +1 -1
  392. package/browser/repository/BaseEntity.js +3 -3
  393. package/browser/repository/BaseEntity.js.map +1 -1
  394. package/browser/repository/EntityId.js +1 -1
  395. package/browser/repository/RemoveOptions.js +1 -1
  396. package/browser/repository/Repository.d.ts +4 -4
  397. package/browser/repository/Repository.js +3 -3
  398. package/browser/repository/Repository.js.map +1 -1
  399. package/browser/repository/SaveOptions.js +1 -1
  400. package/browser/repository/TreeRepository.js +3 -3
  401. package/browser/repository/TreeRepository.js.map +1 -1
  402. package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +2 -2
  403. package/browser/schema-builder/RdbmsSchemaBuilder.js +80 -79
  404. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  405. package/browser/schema-builder/SchemaBuilder.js +1 -1
  406. package/browser/schema-builder/options/TableCheckOptions.js +1 -1
  407. package/browser/schema-builder/options/TableColumnOptions.js +1 -1
  408. package/browser/schema-builder/options/TableExclusionOptions.js +1 -1
  409. package/browser/schema-builder/options/TableForeignKeyOptions.js +1 -1
  410. package/browser/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  411. package/browser/schema-builder/options/TableIndexOptions.js +1 -1
  412. package/browser/schema-builder/options/TableOptions.js +1 -1
  413. package/browser/schema-builder/options/TableUniqueOptions.js +1 -1
  414. package/browser/schema-builder/options/ViewOptions.js +1 -1
  415. package/browser/schema-builder/table/Table.d.ts +1 -1
  416. package/browser/schema-builder/table/Table.js +1 -1
  417. package/browser/schema-builder/table/TableCheck.js +2 -2
  418. package/browser/schema-builder/table/TableCheck.js.map +1 -1
  419. package/browser/schema-builder/table/TableForeignKey.js +3 -3
  420. package/browser/schema-builder/table/TableForeignKey.js.map +1 -1
  421. package/browser/schema-builder/table/TableIndex.js +2 -2
  422. package/browser/schema-builder/table/TableIndex.js.map +1 -1
  423. package/browser/schema-builder/table/TableUnique.js +2 -2
  424. package/browser/schema-builder/table/TableUnique.js.map +1 -1
  425. package/browser/subscriber/Broadcaster.d.ts +24 -0
  426. package/browser/subscriber/Broadcaster.js +120 -0
  427. package/browser/subscriber/Broadcaster.js.map +1 -1
  428. package/browser/subscriber/EntitySubscriberInterface.d.ts +27 -0
  429. package/browser/subscriber/EntitySubscriberInterface.js +1 -1
  430. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  431. package/browser/subscriber/event/InsertEvent.js +1 -1
  432. package/browser/subscriber/event/LoadEvent.js +1 -1
  433. package/browser/subscriber/event/RemoveEvent.js +1 -1
  434. package/browser/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  435. package/browser/subscriber/event/TransactionCommitEvent.js +3 -0
  436. package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -0
  437. package/browser/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  438. package/browser/subscriber/event/TransactionRollbackEvent.js +3 -0
  439. package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  440. package/browser/subscriber/event/TransactionStartEvent.d.ts +22 -0
  441. package/browser/subscriber/event/TransactionStartEvent.js +3 -0
  442. package/browser/subscriber/event/TransactionStartEvent.js.map +1 -0
  443. package/browser/subscriber/event/UpdateEvent.js +1 -1
  444. package/browser/util/DateUtils.d.ts +1 -1
  445. package/browser/util/DateUtils.js +1 -7
  446. package/browser/util/DateUtils.js.map +1 -1
  447. package/browser/util/OrmUtils.d.ts +1 -1
  448. package/browser/util/OrmUtils.js +2 -2
  449. package/browser/util/OrmUtils.js.map +1 -1
  450. package/browser/util/StringUtils.js.map +1 -1
  451. package/cache/DbQueryResultCache.js +1 -0
  452. package/cache/DbQueryResultCache.js.map +1 -1
  453. package/cache/QueryResultCacheFactory.js +1 -0
  454. package/cache/QueryResultCacheFactory.js.map +1 -1
  455. package/cache/RedisQueryResultCache.js +1 -0
  456. package/cache/RedisQueryResultCache.js.map +1 -1
  457. package/cli.js +2 -2
  458. package/cli.js.map +1 -1
  459. package/commands/CacheClearCommand.js +1 -0
  460. package/commands/CacheClearCommand.js.map +1 -1
  461. package/commands/CommandUtils.js +1 -0
  462. package/commands/CommandUtils.js.map +1 -1
  463. package/commands/EntityCreateCommand.js +6 -2
  464. package/commands/EntityCreateCommand.js.map +1 -1
  465. package/commands/InitCommand.d.ts +3 -0
  466. package/commands/InitCommand.js +37 -6
  467. package/commands/InitCommand.js.map +1 -1
  468. package/commands/MigrationCreateCommand.d.ts +6 -0
  469. package/commands/MigrationCreateCommand.js +23 -4
  470. package/commands/MigrationCreateCommand.js.map +1 -1
  471. package/commands/MigrationGenerateCommand.d.ts +10 -0
  472. package/commands/MigrationGenerateCommand.js +72 -34
  473. package/commands/MigrationGenerateCommand.js.map +1 -1
  474. package/commands/MigrationRevertCommand.js +1 -0
  475. package/commands/MigrationRevertCommand.js.map +1 -1
  476. package/commands/MigrationRunCommand.js +1 -0
  477. package/commands/MigrationRunCommand.js.map +1 -1
  478. package/commands/MigrationShowCommand.js +1 -0
  479. package/commands/MigrationShowCommand.js.map +1 -1
  480. package/commands/QueryCommand.d.ts +2 -0
  481. package/commands/QueryCommand.js +17 -6
  482. package/commands/QueryCommand.js.map +1 -1
  483. package/commands/SchemaDropCommand.js +1 -0
  484. package/commands/SchemaDropCommand.js.map +1 -1
  485. package/commands/SchemaLogCommand.js +1 -0
  486. package/commands/SchemaLogCommand.js.map +1 -1
  487. package/commands/SchemaSyncCommand.js +1 -0
  488. package/commands/SchemaSyncCommand.js.map +1 -1
  489. package/commands/SubscriberCreateCommand.js +6 -2
  490. package/commands/SubscriberCreateCommand.js.map +1 -1
  491. package/commands/VersionCommand.js +1 -0
  492. package/commands/VersionCommand.js.map +1 -1
  493. package/common/EntityFieldsNames.d.ts +6 -0
  494. package/common/EntityFieldsNames.js +4 -0
  495. package/common/EntityFieldsNames.js.map +1 -0
  496. package/connection/Connection.d.ts +2 -2
  497. package/connection/Connection.js +5 -2
  498. package/connection/Connection.js.map +1 -1
  499. package/connection/ConnectionManager.js +1 -0
  500. package/connection/ConnectionManager.js.map +1 -1
  501. package/connection/ConnectionMetadataBuilder.js +5 -4
  502. package/connection/ConnectionMetadataBuilder.js.map +1 -1
  503. package/connection/ConnectionOptionsReader.d.ts +3 -3
  504. package/connection/ConnectionOptionsReader.js +31 -30
  505. package/connection/ConnectionOptionsReader.js.map +1 -1
  506. package/connection/options-reader/ConnectionOptionsEnvReader.js +2 -1
  507. package/connection/options-reader/ConnectionOptionsEnvReader.js.map +1 -1
  508. package/connection/options-reader/ConnectionOptionsXmlReader.js +1 -0
  509. package/connection/options-reader/ConnectionOptionsXmlReader.js.map +1 -1
  510. package/connection/options-reader/ConnectionOptionsYmlReader.js +2 -1
  511. package/connection/options-reader/ConnectionOptionsYmlReader.js.map +1 -1
  512. package/container.js +1 -0
  513. package/container.js.map +1 -1
  514. package/decorator/Check.js +1 -0
  515. package/decorator/Check.js.map +1 -1
  516. package/decorator/EntityRepository.js +1 -0
  517. package/decorator/EntityRepository.js.map +1 -1
  518. package/decorator/Exclusion.js +1 -0
  519. package/decorator/Exclusion.js.map +1 -1
  520. package/decorator/Generated.js +1 -0
  521. package/decorator/Generated.js.map +1 -1
  522. package/decorator/Index.js +1 -0
  523. package/decorator/Index.js.map +1 -1
  524. package/decorator/Unique.js +1 -0
  525. package/decorator/Unique.js.map +1 -1
  526. package/decorator/columns/Column.js +1 -0
  527. package/decorator/columns/Column.js.map +1 -1
  528. package/decorator/columns/CreateDateColumn.js +1 -0
  529. package/decorator/columns/CreateDateColumn.js.map +1 -1
  530. package/decorator/columns/DeleteDateColumn.js +1 -0
  531. package/decorator/columns/DeleteDateColumn.js.map +1 -1
  532. package/decorator/columns/ObjectIdColumn.js +1 -0
  533. package/decorator/columns/ObjectIdColumn.js.map +1 -1
  534. package/decorator/columns/PrimaryColumn.d.ts +9 -2
  535. package/decorator/columns/PrimaryColumn.js +1 -0
  536. package/decorator/columns/PrimaryColumn.js.map +1 -1
  537. package/decorator/columns/PrimaryGeneratedColumn.js +1 -0
  538. package/decorator/columns/PrimaryGeneratedColumn.js.map +1 -1
  539. package/decorator/columns/UpdateDateColumn.js +1 -0
  540. package/decorator/columns/UpdateDateColumn.js.map +1 -1
  541. package/decorator/columns/VersionColumn.js +1 -0
  542. package/decorator/columns/VersionColumn.js.map +1 -1
  543. package/decorator/columns/ViewColumn.js +1 -0
  544. package/decorator/columns/ViewColumn.js.map +1 -1
  545. package/decorator/entity/ChildEntity.js +2 -1
  546. package/decorator/entity/ChildEntity.js.map +1 -1
  547. package/decorator/entity/Entity.js +1 -0
  548. package/decorator/entity/Entity.js.map +1 -1
  549. package/decorator/entity/TableInheritance.js +1 -0
  550. package/decorator/entity/TableInheritance.js.map +1 -1
  551. package/decorator/entity-view/ViewEntity.js +1 -0
  552. package/decorator/entity-view/ViewEntity.js.map +1 -1
  553. package/decorator/listeners/AfterInsert.js +1 -0
  554. package/decorator/listeners/AfterInsert.js.map +1 -1
  555. package/decorator/listeners/AfterLoad.js +1 -0
  556. package/decorator/listeners/AfterLoad.js.map +1 -1
  557. package/decorator/listeners/AfterRemove.js +1 -0
  558. package/decorator/listeners/AfterRemove.js.map +1 -1
  559. package/decorator/listeners/AfterUpdate.js +1 -0
  560. package/decorator/listeners/AfterUpdate.js.map +1 -1
  561. package/decorator/listeners/BeforeInsert.js +1 -0
  562. package/decorator/listeners/BeforeInsert.js.map +1 -1
  563. package/decorator/listeners/BeforeRemove.js +1 -0
  564. package/decorator/listeners/BeforeRemove.js.map +1 -1
  565. package/decorator/listeners/BeforeUpdate.js +1 -0
  566. package/decorator/listeners/BeforeUpdate.js.map +1 -1
  567. package/decorator/listeners/EventSubscriber.js +1 -0
  568. package/decorator/listeners/EventSubscriber.js.map +1 -1
  569. package/decorator/options/RelationOptions.d.ts +10 -0
  570. package/decorator/options/RelationOptions.js.map +1 -1
  571. package/decorator/relations/JoinColumn.js +1 -0
  572. package/decorator/relations/JoinColumn.js.map +1 -1
  573. package/decorator/relations/JoinTable.js +1 -0
  574. package/decorator/relations/JoinTable.js.map +1 -1
  575. package/decorator/relations/ManyToMany.js +1 -0
  576. package/decorator/relations/ManyToMany.js.map +1 -1
  577. package/decorator/relations/ManyToOne.d.ts +6 -6
  578. package/decorator/relations/ManyToOne.js +6 -5
  579. package/decorator/relations/ManyToOne.js.map +1 -1
  580. package/decorator/relations/OneToMany.d.ts +3 -2
  581. package/decorator/relations/OneToMany.js +5 -3
  582. package/decorator/relations/OneToMany.js.map +1 -1
  583. package/decorator/relations/OneToOne.js +1 -0
  584. package/decorator/relations/OneToOne.js.map +1 -1
  585. package/decorator/relations/RelationCount.js +1 -0
  586. package/decorator/relations/RelationCount.js.map +1 -1
  587. package/decorator/relations/RelationId.js +1 -0
  588. package/decorator/relations/RelationId.js.map +1 -1
  589. package/decorator/transaction/Transaction.d.ts +1 -1
  590. package/decorator/transaction/Transaction.js +6 -5
  591. package/decorator/transaction/Transaction.js.map +1 -1
  592. package/decorator/transaction/TransactionManager.js +1 -0
  593. package/decorator/transaction/TransactionManager.js.map +1 -1
  594. package/decorator/transaction/TransactionRepository.js +1 -0
  595. package/decorator/transaction/TransactionRepository.js.map +1 -1
  596. package/decorator/tree/Tree.d.ts +2 -1
  597. package/decorator/tree/Tree.js +4 -2
  598. package/decorator/tree/Tree.js.map +1 -1
  599. package/decorator/tree/TreeChildren.js +1 -0
  600. package/decorator/tree/TreeChildren.js.map +1 -1
  601. package/decorator/tree/TreeLevelColumn.js +1 -0
  602. package/decorator/tree/TreeLevelColumn.js.map +1 -1
  603. package/decorator/tree/TreeParent.js +1 -0
  604. package/decorator/tree/TreeParent.js.map +1 -1
  605. package/driver/Driver.d.ts +1 -1
  606. package/driver/Driver.js.map +1 -1
  607. package/driver/DriverFactory.js +1 -0
  608. package/driver/DriverFactory.js.map +1 -1
  609. package/driver/DriverUtils.d.ts +10 -0
  610. package/driver/DriverUtils.js +99 -11
  611. package/driver/DriverUtils.js.map +1 -1
  612. package/driver/Query.js +1 -0
  613. package/driver/Query.js.map +1 -1
  614. package/driver/SqlInMemory.js +1 -0
  615. package/driver/SqlInMemory.js.map +1 -1
  616. package/driver/aurora-data-api/AuroraDataApiConnection.js +1 -0
  617. package/driver/aurora-data-api/AuroraDataApiConnection.js.map +1 -1
  618. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.d.ts +1 -0
  619. package/driver/aurora-data-api/AuroraDataApiConnectionOptions.js.map +1 -1
  620. package/driver/aurora-data-api/AuroraDataApiDriver.d.ts +3 -3
  621. package/driver/aurora-data-api/AuroraDataApiDriver.js +16 -6
  622. package/driver/aurora-data-api/AuroraDataApiDriver.js.map +1 -1
  623. package/driver/aurora-data-api/AuroraDataApiQueryRunner.d.ts +6 -1
  624. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +73 -11
  625. package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
  626. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.d.ts +2 -0
  627. package/driver/aurora-data-api-pg/AuroraDataApiPostgresConnectionOptions.js.map +1 -1
  628. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.d.ts +10 -1
  629. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js +27 -2
  630. package/driver/aurora-data-api-pg/AuroraDataApiPostgresDriver.js.map +1 -1
  631. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.d.ts +2 -1
  632. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +60 -11
  633. package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
  634. package/driver/better-sqlite3/BetterSqlite3Driver.js +1 -0
  635. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  636. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js +1 -0
  637. package/driver/better-sqlite3/BetterSqlite3QueryRunner.js.map +1 -1
  638. package/driver/cockroachdb/CockroachDriver.d.ts +1 -1
  639. package/driver/cockroachdb/CockroachDriver.js +6 -8
  640. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  641. package/driver/cockroachdb/CockroachQueryRunner.d.ts +4 -0
  642. package/driver/cockroachdb/CockroachQueryRunner.js +113 -42
  643. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  644. package/driver/cordova/CordovaDriver.js +1 -0
  645. package/driver/cordova/CordovaDriver.js.map +1 -1
  646. package/driver/cordova/CordovaQueryRunner.js +1 -0
  647. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  648. package/driver/expo/ExpoDriver.js +1 -0
  649. package/driver/expo/ExpoDriver.js.map +1 -1
  650. package/driver/expo/ExpoQueryRunner.js +73 -14
  651. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  652. package/driver/mongodb/MongoConnectionOptions.d.ts +8 -0
  653. package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
  654. package/driver/mongodb/MongoDriver.d.ts +8 -4
  655. package/driver/mongodb/MongoDriver.js +27 -14
  656. package/driver/mongodb/MongoDriver.js.map +1 -1
  657. package/driver/mongodb/MongoQueryRunner.d.ts +3 -3
  658. package/driver/mongodb/MongoQueryRunner.js +1 -0
  659. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  660. package/driver/mysql/MysqlConnectionCredentialsOptions.d.ts +4 -0
  661. package/driver/mysql/MysqlConnectionCredentialsOptions.js.map +1 -1
  662. package/driver/mysql/MysqlDriver.d.ts +2 -2
  663. package/driver/mysql/MysqlDriver.js +16 -14
  664. package/driver/mysql/MysqlDriver.js.map +1 -1
  665. package/driver/mysql/MysqlQueryRunner.d.ts +4 -0
  666. package/driver/mysql/MysqlQueryRunner.js +119 -43
  667. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  668. package/driver/nativescript/NativescriptDriver.js +1 -0
  669. package/driver/nativescript/NativescriptDriver.js.map +1 -1
  670. package/driver/nativescript/NativescriptQueryRunner.js +1 -0
  671. package/driver/nativescript/NativescriptQueryRunner.js.map +1 -1
  672. package/driver/oracle/OracleConnectionOptions.d.ts +4 -0
  673. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  674. package/driver/oracle/OracleDriver.d.ts +1 -1
  675. package/driver/oracle/OracleDriver.js +29 -3
  676. package/driver/oracle/OracleDriver.js.map +1 -1
  677. package/driver/oracle/OracleQueryRunner.js +54 -7
  678. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  679. package/driver/postgres/PostgresConnectionOptions.d.ts +4 -0
  680. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  681. package/driver/postgres/PostgresDriver.d.ts +2 -2
  682. package/driver/postgres/PostgresDriver.js +63 -28
  683. package/driver/postgres/PostgresDriver.js.map +1 -1
  684. package/driver/postgres/PostgresQueryRunner.d.ts +9 -1
  685. package/driver/postgres/PostgresQueryRunner.js +337 -211
  686. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  687. package/driver/react-native/ReactNativeDriver.js +2 -2
  688. package/driver/react-native/ReactNativeDriver.js.map +1 -1
  689. package/driver/react-native/ReactNativeQueryRunner.js +1 -0
  690. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  691. package/driver/sap/SapDriver.d.ts +1 -1
  692. package/driver/sap/SapDriver.js +1 -0
  693. package/driver/sap/SapDriver.js.map +1 -1
  694. package/driver/sap/SapQueryRunner.js +58 -9
  695. package/driver/sap/SapQueryRunner.js.map +1 -1
  696. package/driver/sqlite/SqliteDriver.js +1 -0
  697. package/driver/sqlite/SqliteDriver.js.map +1 -1
  698. package/driver/sqlite/SqliteQueryRunner.js +5 -0
  699. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  700. package/driver/sqlite-abstract/AbstractSqliteDriver.d.ts +1 -1
  701. package/driver/sqlite-abstract/AbstractSqliteDriver.js +5 -1
  702. package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
  703. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +56 -8
  704. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  705. package/driver/sqljs/SqljsDriver.js +1 -0
  706. package/driver/sqljs/SqljsDriver.js.map +1 -1
  707. package/driver/sqljs/SqljsQueryRunner.js +1 -0
  708. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  709. package/driver/sqlserver/MssqlParameter.js +1 -0
  710. package/driver/sqlserver/MssqlParameter.js.map +1 -1
  711. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.d.ts +18 -2
  712. package/driver/sqlserver/SqlServerConnectionCredentialsOptions.js.map +1 -1
  713. package/driver/sqlserver/SqlServerDriver.d.ts +2 -2
  714. package/driver/sqlserver/SqlServerDriver.js +34 -8
  715. package/driver/sqlserver/SqlServerDriver.js.map +1 -1
  716. package/driver/sqlserver/SqlServerQueryRunner.d.ts +1 -0
  717. package/driver/sqlserver/SqlServerQueryRunner.js +166 -85
  718. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  719. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.d.ts +10 -0
  720. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js +4 -0
  721. package/driver/sqlserver/authentication/AzureActiveDirectoryAccessTokenAuthentication.js.map +1 -0
  722. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.d.ts +20 -0
  723. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js +4 -0
  724. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiAppServiceAuthentication.js.map +1 -0
  725. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.d.ts +16 -0
  726. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js +4 -0
  727. package/driver/sqlserver/authentication/AzureActiveDirectoryMsiVmAuthentication.js.map +1 -0
  728. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.d.ts +17 -0
  729. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js +4 -0
  730. package/driver/sqlserver/authentication/AzureActiveDirectoryPasswordAuthentication.js.map +1 -0
  731. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.d.ts +17 -0
  732. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js +4 -0
  733. package/driver/sqlserver/authentication/AzureActiveDirectoryServicePrincipalSecret.js.map +1 -0
  734. package/driver/sqlserver/authentication/DefaultAuthentication.d.ts +13 -0
  735. package/driver/sqlserver/authentication/DefaultAuthentication.js +4 -0
  736. package/driver/sqlserver/authentication/DefaultAuthentication.js.map +1 -0
  737. package/driver/sqlserver/authentication/NtlmAuthentication.d.ts +19 -0
  738. package/driver/sqlserver/authentication/NtlmAuthentication.js +4 -0
  739. package/driver/sqlserver/authentication/NtlmAuthentication.js.map +1 -0
  740. package/driver/types/ColumnTypes.d.ts +1 -1
  741. package/driver/types/ColumnTypes.js.map +1 -1
  742. package/entity-manager/EntityManager.d.ts +16 -2
  743. package/entity-manager/EntityManager.js +6 -16
  744. package/entity-manager/EntityManager.js.map +1 -1
  745. package/entity-manager/EntityManagerFactory.js +1 -0
  746. package/entity-manager/EntityManagerFactory.js.map +1 -1
  747. package/entity-manager/MongoEntityManager.d.ts +1 -4
  748. package/entity-manager/MongoEntityManager.js +54 -48
  749. package/entity-manager/MongoEntityManager.js.map +1 -1
  750. package/entity-manager/SqljsEntityManager.js +1 -0
  751. package/entity-manager/SqljsEntityManager.js.map +1 -1
  752. package/entity-schema/EntitySchema.js +1 -0
  753. package/entity-schema/EntitySchema.js.map +1 -1
  754. package/entity-schema/EntitySchemaOptions.js +1 -0
  755. package/entity-schema/EntitySchemaOptions.js.map +1 -1
  756. package/entity-schema/EntitySchemaTransformer.js +1 -0
  757. package/entity-schema/EntitySchemaTransformer.js.map +1 -1
  758. package/error/AlreadyHasActiveConnectionError.js +1 -0
  759. package/error/AlreadyHasActiveConnectionError.js.map +1 -1
  760. package/error/CannotAttachTreeChildrenEntityError.js +1 -0
  761. package/error/CannotAttachTreeChildrenEntityError.js.map +1 -1
  762. package/error/CannotConnectAlreadyConnectedError.js +1 -0
  763. package/error/CannotConnectAlreadyConnectedError.js.map +1 -1
  764. package/error/CannotCreateEntityIdMapError.js +1 -0
  765. package/error/CannotCreateEntityIdMapError.js.map +1 -1
  766. package/error/CannotDetermineEntityError.js +1 -0
  767. package/error/CannotDetermineEntityError.js.map +1 -1
  768. package/error/CannotExecuteNotConnectedError.js +1 -0
  769. package/error/CannotExecuteNotConnectedError.js.map +1 -1
  770. package/error/CannotGetEntityManagerNotConnectedError.js +1 -0
  771. package/error/CannotGetEntityManagerNotConnectedError.js.map +1 -1
  772. package/error/CannotReflectMethodParameterTypeError.js +1 -0
  773. package/error/CannotReflectMethodParameterTypeError.js.map +1 -1
  774. package/error/CircularRelationsError.js +1 -0
  775. package/error/CircularRelationsError.js.map +1 -1
  776. package/error/ColumnTypeUndefinedError.js +1 -0
  777. package/error/ColumnTypeUndefinedError.js.map +1 -1
  778. package/error/ConnectionIsNotSetError.js +1 -0
  779. package/error/ConnectionIsNotSetError.js.map +1 -1
  780. package/error/ConnectionNotFoundError.js +1 -0
  781. package/error/ConnectionNotFoundError.js.map +1 -1
  782. package/error/CustomRepositoryCannotInheritRepositoryError.js +1 -0
  783. package/error/CustomRepositoryCannotInheritRepositoryError.js.map +1 -1
  784. package/error/CustomRepositoryDoesNotHaveEntityError.js +1 -0
  785. package/error/CustomRepositoryDoesNotHaveEntityError.js.map +1 -1
  786. package/error/CustomRepositoryNotFoundError.js +1 -0
  787. package/error/CustomRepositoryNotFoundError.js.map +1 -1
  788. package/error/DataTypeNotSupportedError.js +1 -0
  789. package/error/DataTypeNotSupportedError.js.map +1 -1
  790. package/error/DriverOptionNotSetError.js +1 -0
  791. package/error/DriverOptionNotSetError.js.map +1 -1
  792. package/error/DriverPackageNotInstalledError.js +1 -0
  793. package/error/DriverPackageNotInstalledError.js.map +1 -1
  794. package/error/EntityColumnNotFound.js +1 -0
  795. package/error/EntityColumnNotFound.js.map +1 -1
  796. package/error/EntityMetadataNotFoundError.js +1 -0
  797. package/error/EntityMetadataNotFoundError.js.map +1 -1
  798. package/error/EntityNotFoundError.js +1 -0
  799. package/error/EntityNotFoundError.js.map +1 -1
  800. package/error/FindRelationsNotFoundError.js +1 -0
  801. package/error/FindRelationsNotFoundError.js.map +1 -1
  802. package/error/InitializedRelationError.js +1 -0
  803. package/error/InitializedRelationError.js.map +1 -1
  804. package/error/InsertValuesMissingError.js +1 -0
  805. package/error/InsertValuesMissingError.js.map +1 -1
  806. package/error/LimitOnUpdateNotSupportedError.js +1 -0
  807. package/error/LimitOnUpdateNotSupportedError.js.map +1 -1
  808. package/error/LockNotSupportedOnGivenDriverError.js +1 -0
  809. package/error/LockNotSupportedOnGivenDriverError.js.map +1 -1
  810. package/error/MetadataAlreadyExistsError.js +1 -0
  811. package/error/MetadataAlreadyExistsError.js.map +1 -1
  812. package/error/MetadataWithSuchNameAlreadyExistsError.js +1 -0
  813. package/error/MetadataWithSuchNameAlreadyExistsError.js.map +1 -1
  814. package/error/MissingDeleteDateColumnError.js +1 -0
  815. package/error/MissingDeleteDateColumnError.js.map +1 -1
  816. package/error/MissingDriverError.js +1 -0
  817. package/error/MissingDriverError.js.map +1 -1
  818. package/error/MissingJoinColumnError.js +1 -0
  819. package/error/MissingJoinColumnError.js.map +1 -1
  820. package/error/MissingJoinTableError.js +1 -0
  821. package/error/MissingJoinTableError.js.map +1 -1
  822. package/error/MissingPrimaryColumnError.js +1 -0
  823. package/error/MissingPrimaryColumnError.js.map +1 -1
  824. package/error/MustBeEntityError.js +1 -0
  825. package/error/MustBeEntityError.js.map +1 -1
  826. package/error/NamingStrategyNotFoundError.js +1 -0
  827. package/error/NamingStrategyNotFoundError.js.map +1 -1
  828. package/error/NoConnectionForRepositoryError.js +1 -0
  829. package/error/NoConnectionForRepositoryError.js.map +1 -1
  830. package/error/NoConnectionOptionError.js +1 -0
  831. package/error/NoConnectionOptionError.js.map +1 -1
  832. package/error/NoNeedToReleaseEntityManagerError.js +1 -0
  833. package/error/NoNeedToReleaseEntityManagerError.js.map +1 -1
  834. package/error/NoVersionOrUpdateDateColumnError.js +1 -0
  835. package/error/NoVersionOrUpdateDateColumnError.js.map +1 -1
  836. package/error/OffsetWithoutLimitNotSupportedError.js +1 -0
  837. package/error/OffsetWithoutLimitNotSupportedError.js.map +1 -1
  838. package/error/OptimisticLockCanNotBeUsedError.js +1 -0
  839. package/error/OptimisticLockCanNotBeUsedError.js.map +1 -1
  840. package/error/OptimisticLockVersionMismatchError.js +1 -0
  841. package/error/OptimisticLockVersionMismatchError.js.map +1 -1
  842. package/error/PersistedEntityNotFoundError.js +1 -0
  843. package/error/PersistedEntityNotFoundError.js.map +1 -1
  844. package/error/PessimisticLockTransactionRequiredError.js +1 -0
  845. package/error/PessimisticLockTransactionRequiredError.js.map +1 -1
  846. package/error/PrimaryColumnCannotBeNullableError.js +1 -0
  847. package/error/PrimaryColumnCannotBeNullableError.js.map +1 -1
  848. package/error/QueryFailedError.js +1 -0
  849. package/error/QueryFailedError.js.map +1 -1
  850. package/error/QueryRunnerAlreadyReleasedError.js +1 -0
  851. package/error/QueryRunnerAlreadyReleasedError.js.map +1 -1
  852. package/error/QueryRunnerProviderAlreadyReleasedError.js +1 -0
  853. package/error/QueryRunnerProviderAlreadyReleasedError.js.map +1 -1
  854. package/error/RepositoryNotFoundError.js +1 -0
  855. package/error/RepositoryNotFoundError.js.map +1 -1
  856. package/error/RepositoryNotTreeError.js +1 -0
  857. package/error/RepositoryNotTreeError.js.map +1 -1
  858. package/error/ReturningStatementNotSupportedError.js +1 -0
  859. package/error/ReturningStatementNotSupportedError.js.map +1 -1
  860. package/error/SubjectRemovedAndUpdatedError.js +1 -0
  861. package/error/SubjectRemovedAndUpdatedError.js.map +1 -1
  862. package/error/SubjectWithoutIdentifierError.js +1 -0
  863. package/error/SubjectWithoutIdentifierError.js.map +1 -1
  864. package/error/TransactionAlreadyStartedError.js +1 -0
  865. package/error/TransactionAlreadyStartedError.js.map +1 -1
  866. package/error/TransactionNotStartedError.js +1 -0
  867. package/error/TransactionNotStartedError.js.map +1 -1
  868. package/error/TreeRepositoryNotSupportedError.js +1 -0
  869. package/error/TreeRepositoryNotSupportedError.js.map +1 -1
  870. package/error/UpdateValuesMissingError.js +1 -0
  871. package/error/UpdateValuesMissingError.js.map +1 -1
  872. package/error/UsingJoinColumnIsNotAllowedError.js +1 -0
  873. package/error/UsingJoinColumnIsNotAllowedError.js.map +1 -1
  874. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js +1 -0
  875. package/error/UsingJoinColumnOnlyOnOneSideAllowedError.js.map +1 -1
  876. package/error/UsingJoinTableIsNotAllowedError.js +1 -0
  877. package/error/UsingJoinTableIsNotAllowedError.js.map +1 -1
  878. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js +1 -0
  879. package/error/UsingJoinTableOnlyOnOneSideAllowedError.js.map +1 -1
  880. package/error/index.d.ts +61 -0
  881. package/error/index.js +66 -0
  882. package/error/index.js.map +1 -0
  883. package/find-options/FindOneOptions.d.ts +10 -2
  884. package/find-options/FindOneOptions.js.map +1 -1
  885. package/find-options/FindOperator.d.ts +25 -6
  886. package/find-options/FindOperator.js +33 -6
  887. package/find-options/FindOperator.js.map +1 -1
  888. package/find-options/FindOperatorType.d.ts +1 -1
  889. package/find-options/FindOperatorType.js.map +1 -1
  890. package/find-options/FindOptionsUtils.js +16 -2
  891. package/find-options/FindOptionsUtils.js.map +1 -1
  892. package/find-options/JoinOptions.d.ts +16 -4
  893. package/find-options/JoinOptions.js.map +1 -1
  894. package/find-options/operator/Any.js +1 -0
  895. package/find-options/operator/Any.js.map +1 -1
  896. package/find-options/operator/Between.js +1 -0
  897. package/find-options/operator/Between.js.map +1 -1
  898. package/find-options/operator/Equal.js +1 -0
  899. package/find-options/operator/Equal.js.map +1 -1
  900. package/find-options/operator/ILike.d.ts +6 -0
  901. package/find-options/operator/ILike.js +14 -0
  902. package/find-options/operator/ILike.js.map +1 -0
  903. package/find-options/operator/In.js +1 -0
  904. package/find-options/operator/In.js.map +1 -1
  905. package/find-options/operator/IsNull.js +1 -0
  906. package/find-options/operator/IsNull.js.map +1 -1
  907. package/find-options/operator/LessThan.js +1 -0
  908. package/find-options/operator/LessThan.js.map +1 -1
  909. package/find-options/operator/LessThanOrEqual.js +1 -0
  910. package/find-options/operator/LessThanOrEqual.js.map +1 -1
  911. package/find-options/operator/Like.js +1 -0
  912. package/find-options/operator/Like.js.map +1 -1
  913. package/find-options/operator/MoreThan.js +1 -0
  914. package/find-options/operator/MoreThan.js.map +1 -1
  915. package/find-options/operator/MoreThanOrEqual.js +1 -0
  916. package/find-options/operator/MoreThanOrEqual.js.map +1 -1
  917. package/find-options/operator/Not.js +1 -0
  918. package/find-options/operator/Not.js.map +1 -1
  919. package/find-options/operator/Raw.d.ts +14 -2
  920. package/find-options/operator/Raw.js +6 -6
  921. package/find-options/operator/Raw.js.map +1 -1
  922. package/index.d.ts +3 -1
  923. package/index.js +44 -19
  924. package/index.js.map +1 -1
  925. package/logger/AdvancedConsoleLogger.d.ts +2 -1
  926. package/logger/AdvancedConsoleLogger.js +1 -0
  927. package/logger/AdvancedConsoleLogger.js.map +1 -1
  928. package/logger/DebugLogger.js +1 -0
  929. package/logger/DebugLogger.js.map +1 -1
  930. package/logger/FileLogger.d.ts +2 -2
  931. package/logger/FileLogger.js +1 -0
  932. package/logger/FileLogger.js.map +1 -1
  933. package/logger/Logger.d.ts +1 -1
  934. package/logger/Logger.js.map +1 -1
  935. package/logger/LoggerFactory.js +1 -0
  936. package/logger/LoggerFactory.js.map +1 -1
  937. package/logger/SimpleConsoleLogger.d.ts +2 -1
  938. package/logger/SimpleConsoleLogger.js +1 -0
  939. package/logger/SimpleConsoleLogger.js.map +1 -1
  940. package/metadata/CheckMetadata.js +1 -0
  941. package/metadata/CheckMetadata.js.map +1 -1
  942. package/metadata/ColumnMetadata.d.ts +1 -1
  943. package/metadata/ColumnMetadata.js +23 -14
  944. package/metadata/ColumnMetadata.js.map +1 -1
  945. package/metadata/EmbeddedMetadata.js +2 -1
  946. package/metadata/EmbeddedMetadata.js.map +1 -1
  947. package/metadata/EntityListenerMetadata.js +1 -0
  948. package/metadata/EntityListenerMetadata.js.map +1 -1
  949. package/metadata/EntityMetadata.d.ts +5 -0
  950. package/metadata/EntityMetadata.js +3 -1
  951. package/metadata/EntityMetadata.js.map +1 -1
  952. package/metadata/ExclusionMetadata.js +1 -0
  953. package/metadata/ExclusionMetadata.js.map +1 -1
  954. package/metadata/ForeignKeyMetadata.js +1 -0
  955. package/metadata/ForeignKeyMetadata.js.map +1 -1
  956. package/metadata/IndexMetadata.js +1 -0
  957. package/metadata/IndexMetadata.js.map +1 -1
  958. package/metadata/RelationCountMetadata.js +1 -0
  959. package/metadata/RelationCountMetadata.js.map +1 -1
  960. package/metadata/RelationIdMetadata.js +1 -0
  961. package/metadata/RelationIdMetadata.js.map +1 -1
  962. package/metadata/RelationMetadata.d.ts +15 -0
  963. package/metadata/RelationMetadata.js +23 -6
  964. package/metadata/RelationMetadata.js.map +1 -1
  965. package/metadata/UniqueMetadata.js +1 -0
  966. package/metadata/UniqueMetadata.js.map +1 -1
  967. package/metadata/types/ClosureTreeOptions.d.ts +10 -0
  968. package/metadata/types/ClosureTreeOptions.js +4 -0
  969. package/metadata/types/ClosureTreeOptions.js.map +1 -0
  970. package/metadata/types/EventListenerTypes.d.ts +7 -7
  971. package/metadata/types/EventListenerTypes.js +1 -0
  972. package/metadata/types/EventListenerTypes.js.map +1 -1
  973. package/metadata-args/MetadataArgsStorage.js +1 -0
  974. package/metadata-args/MetadataArgsStorage.js.map +1 -1
  975. package/metadata-args/TreeMetadataArgs.d.ts +5 -0
  976. package/metadata-args/TreeMetadataArgs.js.map +1 -1
  977. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js +6 -3
  978. package/metadata-builder/ClosureJunctionEntityMetadataBuilder.js.map +1 -1
  979. package/metadata-builder/EntityMetadataBuilder.js +26 -15
  980. package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
  981. package/metadata-builder/EntityMetadataValidator.js +11 -5
  982. package/metadata-builder/EntityMetadataValidator.js.map +1 -1
  983. package/metadata-builder/JunctionEntityMetadataBuilder.js +8 -3
  984. package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
  985. package/metadata-builder/MetadataUtils.js +1 -0
  986. package/metadata-builder/MetadataUtils.js.map +1 -1
  987. package/metadata-builder/RelationJoinColumnBuilder.d.ts +1 -0
  988. package/metadata-builder/RelationJoinColumnBuilder.js +9 -6
  989. package/metadata-builder/RelationJoinColumnBuilder.js.map +1 -1
  990. package/migration/Migration.js +1 -0
  991. package/migration/Migration.js.map +1 -1
  992. package/migration/MigrationExecutor.js +6 -5
  993. package/migration/MigrationExecutor.js.map +1 -1
  994. package/naming-strategy/DefaultNamingStrategy.d.ts +1 -1
  995. package/naming-strategy/DefaultNamingStrategy.js +9 -7
  996. package/naming-strategy/DefaultNamingStrategy.js.map +1 -1
  997. package/naming-strategy/NamingStrategyInterface.d.ts +6 -1
  998. package/naming-strategy/NamingStrategyInterface.js.map +1 -1
  999. package/package.json +46 -43
  1000. package/persistence/EntityPersistExecutor.js +56 -52
  1001. package/persistence/EntityPersistExecutor.js.map +1 -1
  1002. package/persistence/Subject.d.ts +4 -4
  1003. package/persistence/Subject.js +8 -6
  1004. package/persistence/Subject.js.map +1 -1
  1005. package/persistence/SubjectChangedColumnsComputer.js +4 -1
  1006. package/persistence/SubjectChangedColumnsComputer.js.map +1 -1
  1007. package/persistence/SubjectDatabaseEntityLoader.js +2 -1
  1008. package/persistence/SubjectDatabaseEntityLoader.js.map +1 -1
  1009. package/persistence/SubjectExecutor.js +31 -26
  1010. package/persistence/SubjectExecutor.js.map +1 -1
  1011. package/persistence/SubjectTopoligicalSorter.js +6 -5
  1012. package/persistence/SubjectTopoligicalSorter.js.map +1 -1
  1013. package/persistence/subject-builder/CascadesSubjectBuilder.js +1 -0
  1014. package/persistence/subject-builder/CascadesSubjectBuilder.js.map +1 -1
  1015. package/persistence/subject-builder/ManyToManySubjectBuilder.js +3 -0
  1016. package/persistence/subject-builder/ManyToManySubjectBuilder.js.map +1 -1
  1017. package/persistence/subject-builder/OneToManySubjectBuilder.js +10 -4
  1018. package/persistence/subject-builder/OneToManySubjectBuilder.js.map +1 -1
  1019. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js +1 -0
  1020. package/persistence/subject-builder/OneToOneInverseSideSubjectBuilder.js.map +1 -1
  1021. package/persistence/tree/ClosureSubjectExecutor.d.ts +1 -1
  1022. package/persistence/tree/ClosureSubjectExecutor.js +7 -6
  1023. package/persistence/tree/ClosureSubjectExecutor.js.map +1 -1
  1024. package/persistence/tree/MaterializedPathSubjectExecutor.js +1 -0
  1025. package/persistence/tree/MaterializedPathSubjectExecutor.js.map +1 -1
  1026. package/persistence/tree/NestedSetSubjectExecutor.js +1 -0
  1027. package/persistence/tree/NestedSetSubjectExecutor.js.map +1 -1
  1028. package/platform/PlatformTools.js +5 -4
  1029. package/platform/PlatformTools.js.map +1 -1
  1030. package/query-builder/Alias.d.ts +4 -3
  1031. package/query-builder/Alias.js +4 -3
  1032. package/query-builder/Alias.js.map +1 -1
  1033. package/query-builder/Brackets.js +1 -0
  1034. package/query-builder/Brackets.js.map +1 -1
  1035. package/query-builder/DeleteQueryBuilder.js +8 -2
  1036. package/query-builder/DeleteQueryBuilder.js.map +1 -1
  1037. package/query-builder/InsertQueryBuilder.d.ts +6 -0
  1038. package/query-builder/InsertQueryBuilder.js +64 -14
  1039. package/query-builder/InsertQueryBuilder.js.map +1 -1
  1040. package/query-builder/JoinAttribute.d.ts +10 -10
  1041. package/query-builder/JoinAttribute.js +11 -10
  1042. package/query-builder/JoinAttribute.js.map +1 -1
  1043. package/query-builder/QueryBuilder.d.ts +8 -1
  1044. package/query-builder/QueryBuilder.js +172 -36
  1045. package/query-builder/QueryBuilder.js.map +1 -1
  1046. package/query-builder/QueryBuilderUtils.js +1 -0
  1047. package/query-builder/QueryBuilderUtils.js.map +1 -1
  1048. package/query-builder/QueryExpressionMap.d.ts +10 -2
  1049. package/query-builder/QueryExpressionMap.js +5 -2
  1050. package/query-builder/QueryExpressionMap.js.map +1 -1
  1051. package/query-builder/RelationIdLoader.js +1 -0
  1052. package/query-builder/RelationIdLoader.js.map +1 -1
  1053. package/query-builder/RelationLoader.js +4 -3
  1054. package/query-builder/RelationLoader.js.map +1 -1
  1055. package/query-builder/RelationQueryBuilder.js +2 -1
  1056. package/query-builder/RelationQueryBuilder.js.map +1 -1
  1057. package/query-builder/RelationRemover.js +11 -10
  1058. package/query-builder/RelationRemover.js.map +1 -1
  1059. package/query-builder/RelationUpdater.js +1 -0
  1060. package/query-builder/RelationUpdater.js.map +1 -1
  1061. package/query-builder/ReturningResultsEntityUpdator.js +1 -0
  1062. package/query-builder/ReturningResultsEntityUpdator.js.map +1 -1
  1063. package/query-builder/SelectQueryBuilder.d.ts +7 -6
  1064. package/query-builder/SelectQueryBuilder.js +129 -66
  1065. package/query-builder/SelectQueryBuilder.js.map +1 -1
  1066. package/query-builder/SoftDeleteQueryBuilder.js +1 -0
  1067. package/query-builder/SoftDeleteQueryBuilder.js.map +1 -1
  1068. package/query-builder/UpdateQueryBuilder.js +7 -1
  1069. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  1070. package/query-builder/relation-count/RelationCountAttribute.d.ts +7 -7
  1071. package/query-builder/relation-count/RelationCountAttribute.js +8 -7
  1072. package/query-builder/relation-count/RelationCountAttribute.js.map +1 -1
  1073. package/query-builder/relation-count/RelationCountLoader.js +3 -1
  1074. package/query-builder/relation-count/RelationCountLoader.js.map +1 -1
  1075. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js +1 -0
  1076. package/query-builder/relation-count/RelationCountMetadataToAttributeTransformer.js.map +1 -1
  1077. package/query-builder/relation-id/RelationIdAttribute.d.ts +8 -8
  1078. package/query-builder/relation-id/RelationIdAttribute.js +9 -8
  1079. package/query-builder/relation-id/RelationIdAttribute.js.map +1 -1
  1080. package/query-builder/relation-id/RelationIdLoader.js +62 -11
  1081. package/query-builder/relation-id/RelationIdLoader.js.map +1 -1
  1082. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js +1 -0
  1083. package/query-builder/relation-id/RelationIdMetadataToAttributeTransformer.js.map +1 -1
  1084. package/query-builder/result/DeleteResult.js +1 -0
  1085. package/query-builder/result/DeleteResult.js.map +1 -1
  1086. package/query-builder/result/InsertResult.js +1 -0
  1087. package/query-builder/result/InsertResult.js.map +1 -1
  1088. package/query-builder/result/UpdateResult.js +1 -0
  1089. package/query-builder/result/UpdateResult.js.map +1 -1
  1090. package/query-builder/transformer/DocumentToEntityTransformer.js +1 -0
  1091. package/query-builder/transformer/DocumentToEntityTransformer.js.map +1 -1
  1092. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js +4 -3
  1093. package/query-builder/transformer/PlainObjectToDatabaseEntityTransformer.js.map +1 -1
  1094. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js +1 -0
  1095. package/query-builder/transformer/PlainObjectToNewEntityTransformer.js.map +1 -1
  1096. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +10 -6
  1097. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  1098. package/query-runner/BaseQueryRunner.js +3 -2
  1099. package/query-runner/BaseQueryRunner.js.map +1 -1
  1100. package/query-runner/QueryRunner.d.ts +1 -1
  1101. package/query-runner/QueryRunner.js.map +1 -1
  1102. package/repository/AbstractRepository.d.ts +2 -2
  1103. package/repository/AbstractRepository.js +3 -2
  1104. package/repository/AbstractRepository.js.map +1 -1
  1105. package/repository/BaseEntity.d.ts +1 -1
  1106. package/repository/BaseEntity.js +3 -2
  1107. package/repository/BaseEntity.js.map +1 -1
  1108. package/repository/MongoRepository.js +1 -0
  1109. package/repository/MongoRepository.js.map +1 -1
  1110. package/repository/Repository.d.ts +4 -4
  1111. package/repository/Repository.js +3 -2
  1112. package/repository/Repository.js.map +1 -1
  1113. package/repository/RepositoryFactory.js +1 -0
  1114. package/repository/RepositoryFactory.js.map +1 -1
  1115. package/repository/TreeRepository.js +4 -3
  1116. package/repository/TreeRepository.js.map +1 -1
  1117. package/schema-builder/MongoSchemaBuilder.js +1 -0
  1118. package/schema-builder/MongoSchemaBuilder.js.map +1 -1
  1119. package/schema-builder/RdbmsSchemaBuilder.d.ts +2 -2
  1120. package/schema-builder/RdbmsSchemaBuilder.js +81 -79
  1121. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  1122. package/schema-builder/options/TableForeignKeyOptions.js.map +1 -1
  1123. package/schema-builder/table/Table.d.ts +1 -1
  1124. package/schema-builder/table/Table.js +2 -1
  1125. package/schema-builder/table/Table.js.map +1 -1
  1126. package/schema-builder/table/TableCheck.js +2 -1
  1127. package/schema-builder/table/TableCheck.js.map +1 -1
  1128. package/schema-builder/table/TableColumn.js +1 -0
  1129. package/schema-builder/table/TableColumn.js.map +1 -1
  1130. package/schema-builder/table/TableExclusion.js +1 -0
  1131. package/schema-builder/table/TableExclusion.js.map +1 -1
  1132. package/schema-builder/table/TableForeignKey.js +3 -2
  1133. package/schema-builder/table/TableForeignKey.js.map +1 -1
  1134. package/schema-builder/table/TableIndex.js +2 -1
  1135. package/schema-builder/table/TableIndex.js.map +1 -1
  1136. package/schema-builder/table/TableUnique.js +2 -1
  1137. package/schema-builder/table/TableUnique.js.map +1 -1
  1138. package/schema-builder/util/TableUtils.js +1 -0
  1139. package/schema-builder/util/TableUtils.js.map +1 -1
  1140. package/schema-builder/view/View.js +1 -0
  1141. package/schema-builder/view/View.js.map +1 -1
  1142. package/subscriber/Broadcaster.d.ts +24 -0
  1143. package/subscriber/Broadcaster.js +121 -0
  1144. package/subscriber/Broadcaster.js.map +1 -1
  1145. package/subscriber/BroadcasterResult.js +1 -0
  1146. package/subscriber/BroadcasterResult.js.map +1 -1
  1147. package/subscriber/EntitySubscriberInterface.d.ts +27 -0
  1148. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  1149. package/subscriber/event/TransactionCommitEvent.d.ts +22 -0
  1150. package/subscriber/event/TransactionCommitEvent.js +4 -0
  1151. package/subscriber/event/TransactionCommitEvent.js.map +1 -0
  1152. package/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
  1153. package/subscriber/event/TransactionRollbackEvent.js +4 -0
  1154. package/subscriber/event/TransactionRollbackEvent.js.map +1 -0
  1155. package/subscriber/event/TransactionStartEvent.d.ts +22 -0
  1156. package/subscriber/event/TransactionStartEvent.js +4 -0
  1157. package/subscriber/event/TransactionStartEvent.js.map +1 -0
  1158. package/typeorm-model-shim.js +145 -128
  1159. package/util/ApplyValueTransformers.js +1 -0
  1160. package/util/ApplyValueTransformers.js.map +1 -1
  1161. package/util/DateUtils.d.ts +1 -1
  1162. package/util/DateUtils.js +2 -7
  1163. package/util/DateUtils.js.map +1 -1
  1164. package/util/DepGraph.js +1 -0
  1165. package/util/DepGraph.js.map +1 -1
  1166. package/util/DirectoryExportedClassesLoader.js +1 -0
  1167. package/util/DirectoryExportedClassesLoader.js.map +1 -1
  1168. package/util/ObjectUtils.js +1 -0
  1169. package/util/ObjectUtils.js.map +1 -1
  1170. package/util/OrmUtils.d.ts +1 -1
  1171. package/util/OrmUtils.js +2 -1
  1172. package/util/OrmUtils.js.map +1 -1
  1173. package/util/RandomGenerator.js +1 -0
  1174. package/util/RandomGenerator.js.map +1 -1
  1175. package/util/StringUtils.js +1 -0
  1176. package/util/StringUtils.js.map +1 -1
  1177. package/util/VersionUtils.js +1 -0
  1178. package/util/VersionUtils.js.map +1 -1
@@ -15,6 +15,7 @@ import { View } from "../../schema-builder/view/View";
15
15
  import { Broadcaster } from "../../subscriber/Broadcaster";
16
16
  import { OrmUtils } from "../../util/OrmUtils";
17
17
  import { Query } from "../Query";
18
+ import { BroadcasterResult } from "../../subscriber/BroadcasterResult";
18
19
  /**
19
20
  * Runs queries on a single postgres database connection.
20
21
  */
@@ -95,21 +96,38 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
95
96
  */
96
97
  PostgresQueryRunner.prototype.startTransaction = function (isolationLevel) {
97
98
  return __awaiter(this, void 0, void 0, function () {
99
+ var beforeBroadcastResult, afterBroadcastResult;
98
100
  return __generator(this, function (_a) {
99
101
  switch (_a.label) {
100
102
  case 0:
101
103
  if (this.isTransactionActive)
102
104
  throw new TransactionAlreadyStartedError();
105
+ beforeBroadcastResult = new BroadcasterResult();
106
+ this.broadcaster.broadcastBeforeTransactionStartEvent(beforeBroadcastResult);
107
+ if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
108
+ return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
109
+ case 1:
110
+ _a.sent();
111
+ _a.label = 2;
112
+ case 2:
103
113
  this.isTransactionActive = true;
104
114
  return [4 /*yield*/, this.query("START TRANSACTION")];
105
- case 1:
115
+ case 3:
106
116
  _a.sent();
107
- if (!isolationLevel) return [3 /*break*/, 3];
117
+ if (!isolationLevel) return [3 /*break*/, 5];
108
118
  return [4 /*yield*/, this.query("SET TRANSACTION ISOLATION LEVEL " + isolationLevel)];
109
- case 2:
119
+ case 4:
110
120
  _a.sent();
111
- _a.label = 3;
112
- case 3: return [2 /*return*/];
121
+ _a.label = 5;
122
+ case 5:
123
+ afterBroadcastResult = new BroadcasterResult();
124
+ this.broadcaster.broadcastAfterTransactionStartEvent(afterBroadcastResult);
125
+ if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 7];
126
+ return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
127
+ case 6:
128
+ _a.sent();
129
+ _a.label = 7;
130
+ case 7: return [2 /*return*/];
113
131
  }
114
132
  });
115
133
  });
@@ -120,16 +138,31 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
120
138
  */
121
139
  PostgresQueryRunner.prototype.commitTransaction = function () {
122
140
  return __awaiter(this, void 0, void 0, function () {
141
+ var beforeBroadcastResult, afterBroadcastResult;
123
142
  return __generator(this, function (_a) {
124
143
  switch (_a.label) {
125
144
  case 0:
126
145
  if (!this.isTransactionActive)
127
146
  throw new TransactionNotStartedError();
128
- return [4 /*yield*/, this.query("COMMIT")];
147
+ beforeBroadcastResult = new BroadcasterResult();
148
+ this.broadcaster.broadcastBeforeTransactionCommitEvent(beforeBroadcastResult);
149
+ if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
150
+ return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
129
151
  case 1:
152
+ _a.sent();
153
+ _a.label = 2;
154
+ case 2: return [4 /*yield*/, this.query("COMMIT")];
155
+ case 3:
130
156
  _a.sent();
131
157
  this.isTransactionActive = false;
132
- return [2 /*return*/];
158
+ afterBroadcastResult = new BroadcasterResult();
159
+ this.broadcaster.broadcastAfterTransactionCommitEvent(afterBroadcastResult);
160
+ if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];
161
+ return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
162
+ case 4:
163
+ _a.sent();
164
+ _a.label = 5;
165
+ case 5: return [2 /*return*/];
133
166
  }
134
167
  });
135
168
  });
@@ -140,16 +173,31 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
140
173
  */
141
174
  PostgresQueryRunner.prototype.rollbackTransaction = function () {
142
175
  return __awaiter(this, void 0, void 0, function () {
176
+ var beforeBroadcastResult, afterBroadcastResult;
143
177
  return __generator(this, function (_a) {
144
178
  switch (_a.label) {
145
179
  case 0:
146
180
  if (!this.isTransactionActive)
147
181
  throw new TransactionNotStartedError();
148
- return [4 /*yield*/, this.query("ROLLBACK")];
182
+ beforeBroadcastResult = new BroadcasterResult();
183
+ this.broadcaster.broadcastBeforeTransactionRollbackEvent(beforeBroadcastResult);
184
+ if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
185
+ return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
149
186
  case 1:
187
+ _a.sent();
188
+ _a.label = 2;
189
+ case 2: return [4 /*yield*/, this.query("ROLLBACK")];
190
+ case 3:
150
191
  _a.sent();
151
192
  this.isTransactionActive = false;
152
- return [2 /*return*/];
193
+ afterBroadcastResult = new BroadcasterResult();
194
+ this.broadcaster.broadcastAfterTransactionRollbackEvent(afterBroadcastResult);
195
+ if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];
196
+ return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
197
+ case 4:
198
+ _a.sent();
199
+ _a.label = 5;
200
+ case 5: return [2 /*return*/];
153
201
  }
154
202
  });
155
203
  });
@@ -158,53 +206,47 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
158
206
  * Executes a given SQL query.
159
207
  */
160
208
  PostgresQueryRunner.prototype.query = function (query, parameters) {
161
- var _this = this;
162
- if (this.isReleased)
163
- throw new QueryRunnerAlreadyReleasedError();
164
- return new Promise(function (ok, fail) { return __awaiter(_this, void 0, void 0, function () {
165
- var databaseConnection, queryStartTime_1, err_1;
166
- var _this = this;
209
+ return __awaiter(this, void 0, void 0, function () {
210
+ var databaseConnection, queryStartTime, result, maxQueryExecutionTime, queryEndTime, queryExecutionTime, err_1;
167
211
  return __generator(this, function (_a) {
168
212
  switch (_a.label) {
169
213
  case 0:
170
- _a.trys.push([0, 2, , 3]);
214
+ if (this.isReleased)
215
+ throw new QueryRunnerAlreadyReleasedError();
171
216
  return [4 /*yield*/, this.connect()];
172
217
  case 1:
173
218
  databaseConnection = _a.sent();
174
219
  this.driver.connection.logger.logQuery(query, parameters, this);
175
- queryStartTime_1 = +new Date();
176
- databaseConnection.query(query, parameters, function (err, result) {
177
- // log slow queries if maxQueryExecution time is set
178
- var maxQueryExecutionTime = _this.driver.connection.options.maxQueryExecutionTime;
179
- var queryEndTime = +new Date();
180
- var queryExecutionTime = queryEndTime - queryStartTime_1;
181
- if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)
182
- _this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, _this);
183
- if (err) {
184
- _this.driver.connection.logger.logQueryError(err, query, parameters, _this);
185
- fail(new QueryFailedError(query, parameters, err));
186
- }
187
- else {
188
- switch (result.command) {
189
- case "DELETE":
190
- case "UPDATE":
191
- // for UPDATE and DELETE query additionally return number of affected rows
192
- ok([result.rows, result.rowCount]);
193
- break;
194
- default:
195
- ok(result.rows);
196
- }
197
- }
198
- });
199
- return [3 /*break*/, 3];
220
+ _a.label = 2;
200
221
  case 2:
222
+ _a.trys.push([2, 4, , 5]);
223
+ queryStartTime = +new Date();
224
+ return [4 /*yield*/, databaseConnection.query(query, parameters)];
225
+ case 3:
226
+ result = _a.sent();
227
+ maxQueryExecutionTime = this.driver.connection.options.maxQueryExecutionTime;
228
+ queryEndTime = +new Date();
229
+ queryExecutionTime = queryEndTime - queryStartTime;
230
+ if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)
231
+ this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);
232
+ switch (result.command) {
233
+ case "DELETE":
234
+ case "UPDATE":
235
+ // for UPDATE and DELETE query additionally return number of affected rows
236
+ return [2 /*return*/, [result.rows, result.rowCount]];
237
+ break;
238
+ default:
239
+ return [2 /*return*/, result.rows];
240
+ }
241
+ return [3 /*break*/, 5];
242
+ case 4:
201
243
  err_1 = _a.sent();
202
- fail(err_1);
203
- return [3 /*break*/, 3];
204
- case 3: return [2 /*return*/];
244
+ this.driver.connection.logger.logQueryError(err_1, query, parameters, this);
245
+ throw new QueryFailedError(query, parameters, err_1);
246
+ case 5: return [2 /*return*/];
205
247
  }
206
248
  });
207
- }); });
249
+ });
208
250
  };
209
251
  /**
210
252
  * Returns raw data stream.
@@ -399,43 +441,58 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
399
441
  if (createForeignKeys === void 0) { createForeignKeys = true; }
400
442
  if (createIndices === void 0) { createIndices = true; }
401
443
  return __awaiter(this, void 0, void 0, function () {
402
- var isTableExist, upQueries, downQueries;
444
+ var isTableExist, upQueries, downQueries, enumColumns, createdEnumTypes, enumColumns_1, enumColumns_1_1, column, hasEnum, enumName, e_1_1;
445
+ var e_1, _a;
403
446
  var _this = this;
404
- return __generator(this, function (_a) {
405
- switch (_a.label) {
447
+ return __generator(this, function (_b) {
448
+ switch (_b.label) {
406
449
  case 0:
407
450
  if (!ifNotExist) return [3 /*break*/, 2];
408
451
  return [4 /*yield*/, this.hasTable(table)];
409
452
  case 1:
410
- isTableExist = _a.sent();
453
+ isTableExist = _b.sent();
411
454
  if (isTableExist)
412
455
  return [2 /*return*/, Promise.resolve()];
413
- _a.label = 2;
456
+ _b.label = 2;
414
457
  case 2:
415
458
  upQueries = [];
416
459
  downQueries = [];
417
- // if table have column with ENUM type, we must create this type in postgres.
418
- return [4 /*yield*/, Promise.all(table.columns
419
- .filter(function (column) { return column.type === "enum" || column.type === "simple-enum"; })
420
- .map(function (column) { return __awaiter(_this, void 0, void 0, function () {
421
- var hasEnum;
422
- return __generator(this, function (_a) {
423
- switch (_a.label) {
424
- case 0: return [4 /*yield*/, this.hasEnumType(table, column)];
425
- case 1:
426
- hasEnum = _a.sent();
427
- // TODO: Should also check if values of existing type matches expected ones
428
- if (!hasEnum) {
429
- upQueries.push(this.createEnumTypeSql(table, column));
430
- downQueries.push(this.dropEnumTypeSql(table, column));
431
- }
432
- return [2 /*return*/, Promise.resolve()];
433
- }
434
- });
435
- }); }))];
460
+ enumColumns = table.columns.filter(function (column) { return column.type === "enum" || column.type === "simple-enum"; });
461
+ createdEnumTypes = [];
462
+ _b.label = 3;
436
463
  case 3:
437
- // if table have column with ENUM type, we must create this type in postgres.
438
- _a.sent();
464
+ _b.trys.push([3, 8, 9, 10]);
465
+ enumColumns_1 = __values(enumColumns), enumColumns_1_1 = enumColumns_1.next();
466
+ _b.label = 4;
467
+ case 4:
468
+ if (!!enumColumns_1_1.done) return [3 /*break*/, 7];
469
+ column = enumColumns_1_1.value;
470
+ return [4 /*yield*/, this.hasEnumType(table, column)];
471
+ case 5:
472
+ hasEnum = _b.sent();
473
+ enumName = this.buildEnumName(table, column);
474
+ // if enum with the same "enumName" is defined more then once, me must prevent double creation
475
+ if (!hasEnum && createdEnumTypes.indexOf(enumName) === -1) {
476
+ createdEnumTypes.push(enumName);
477
+ upQueries.push(this.createEnumTypeSql(table, column, enumName));
478
+ downQueries.push(this.dropEnumTypeSql(table, column, enumName));
479
+ }
480
+ _b.label = 6;
481
+ case 6:
482
+ enumColumns_1_1 = enumColumns_1.next();
483
+ return [3 /*break*/, 4];
484
+ case 7: return [3 /*break*/, 10];
485
+ case 8:
486
+ e_1_1 = _b.sent();
487
+ e_1 = { error: e_1_1 };
488
+ return [3 /*break*/, 10];
489
+ case 9:
490
+ try {
491
+ if (enumColumns_1_1 && !enumColumns_1_1.done && (_a = enumColumns_1.return)) _a.call(enumColumns_1);
492
+ }
493
+ finally { if (e_1) throw e_1.error; }
494
+ return [7 /*endfinally*/];
495
+ case 10:
439
496
  upQueries.push(this.createTableSql(table, createForeignKeys));
440
497
  downQueries.push(this.dropTableSql(table));
441
498
  // if createForeignKeys is true, we must drop created foreign keys in down query.
@@ -452,8 +509,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
452
509
  });
453
510
  }
454
511
  return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
455
- case 4:
456
- _a.sent();
512
+ case 11:
513
+ _b.sent();
457
514
  return [2 /*return*/];
458
515
  }
459
516
  });
@@ -571,8 +628,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
571
628
  */
572
629
  PostgresQueryRunner.prototype.renameTable = function (oldTableOrName, newTableName) {
573
630
  return __awaiter(this, void 0, void 0, function () {
574
- var upQueries, downQueries, oldTable, _a, newTable, oldTableName, schemaName, columnNames, oldPkName, newPkName, enumColumns, enumColumns_1, enumColumns_1_1, column, oldEnumType, e_1_1;
575
- var e_1, _b;
631
+ var upQueries, downQueries, oldTable, _a, newTable, oldTableName, schemaName, columnNames, oldPkName, newPkName, enumColumns, enumColumns_2, enumColumns_2_1, column, oldEnumType, e_2_1;
632
+ var e_2, _b;
576
633
  var _this = this;
577
634
  return __generator(this, function (_c) {
578
635
  switch (_c.label) {
@@ -602,6 +659,17 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
602
659
  upQueries.push(new Query("ALTER TABLE " + this.escapePath(newTable) + " RENAME CONSTRAINT \"" + oldPkName + "\" TO \"" + newPkName + "\""));
603
660
  downQueries.push(new Query("ALTER TABLE " + this.escapePath(newTable) + " RENAME CONSTRAINT \"" + newPkName + "\" TO \"" + oldPkName + "\""));
604
661
  }
662
+ // rename sequences
663
+ newTable.columns.map(function (col) {
664
+ if (col.isGenerated && col.generationStrategy === "increment") {
665
+ var seqName = _this.buildSequenceName(oldTable, col.name, undefined, true, true);
666
+ var newSeqName = _this.buildSequenceName(newTable, col.name, undefined, true, true);
667
+ var up = schemaName ? "ALTER SEQUENCE \"" + schemaName + "\".\"" + seqName + "\" RENAME TO \"" + newSeqName + "\"" : "ALTER SEQUENCE \"" + seqName + "\" RENAME TO \"" + newSeqName + "\"";
668
+ var down = schemaName ? "ALTER SEQUENCE \"" + schemaName + "\".\"" + newSeqName + "\" RENAME TO \"" + seqName + "\"" : "ALTER SEQUENCE \"" + newSeqName + "\" RENAME TO \"" + seqName + "\"";
669
+ upQueries.push(new Query(up));
670
+ downQueries.push(new Query(down));
671
+ }
672
+ });
605
673
  // rename unique constraints
606
674
  newTable.uniques.forEach(function (unique) {
607
675
  // build new constraint name
@@ -639,11 +707,11 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
639
707
  _c.label = 4;
640
708
  case 4:
641
709
  _c.trys.push([4, 9, 10, 11]);
642
- enumColumns_1 = __values(enumColumns), enumColumns_1_1 = enumColumns_1.next();
710
+ enumColumns_2 = __values(enumColumns), enumColumns_2_1 = enumColumns_2.next();
643
711
  _c.label = 5;
644
712
  case 5:
645
- if (!!enumColumns_1_1.done) return [3 /*break*/, 8];
646
- column = enumColumns_1_1.value;
713
+ if (!!enumColumns_2_1.done) return [3 /*break*/, 8];
714
+ column = enumColumns_2_1.value;
647
715
  return [4 /*yield*/, this.getEnumTypeName(oldTable, column)];
648
716
  case 6:
649
717
  oldEnumType = _c.sent();
@@ -651,18 +719,18 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
651
719
  downQueries.push(new Query("ALTER TYPE " + this.buildEnumName(newTable, column) + " RENAME TO \"" + oldEnumType.enumTypeName + "\""));
652
720
  _c.label = 7;
653
721
  case 7:
654
- enumColumns_1_1 = enumColumns_1.next();
722
+ enumColumns_2_1 = enumColumns_2.next();
655
723
  return [3 /*break*/, 5];
656
724
  case 8: return [3 /*break*/, 11];
657
725
  case 9:
658
- e_1_1 = _c.sent();
659
- e_1 = { error: e_1_1 };
726
+ e_2_1 = _c.sent();
727
+ e_2 = { error: e_2_1 };
660
728
  return [3 /*break*/, 11];
661
729
  case 10:
662
730
  try {
663
- if (enumColumns_1_1 && !enumColumns_1_1.done && (_b = enumColumns_1.return)) _b.call(enumColumns_1);
731
+ if (enumColumns_2_1 && !enumColumns_2_1.done && (_b = enumColumns_2.return)) _b.call(enumColumns_2);
664
732
  }
665
- finally { if (e_1) throw e_1.error; }
733
+ finally { if (e_2) throw e_2.error; }
666
734
  return [7 /*endfinally*/];
667
735
  case 11: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
668
736
  case 12:
@@ -736,6 +804,11 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
736
804
  upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + uniqueConstraint.name + "\" UNIQUE (\"" + column.name + "\")"));
737
805
  downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + uniqueConstraint.name + "\""));
738
806
  }
807
+ // create column's comment
808
+ if (column.comment) {
809
+ upQueries.push(new Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + column.name + "\" IS " + this.escapeComment(column.comment)));
810
+ downQueries.push(new Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + column.name + "\" IS " + this.escapeComment(column.comment)));
811
+ }
739
812
  return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
740
813
  case 6:
741
814
  _b.sent();
@@ -751,8 +824,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
751
824
  */
752
825
  PostgresQueryRunner.prototype.addColumns = function (tableOrName, columns) {
753
826
  return __awaiter(this, void 0, void 0, function () {
754
- var columns_1, columns_1_1, column, e_2_1;
755
- var e_2, _a;
827
+ var columns_1, columns_1_1, column, e_3_1;
828
+ var e_3, _a;
756
829
  return __generator(this, function (_b) {
757
830
  switch (_b.label) {
758
831
  case 0:
@@ -771,14 +844,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
771
844
  return [3 /*break*/, 1];
772
845
  case 4: return [3 /*break*/, 7];
773
846
  case 5:
774
- e_2_1 = _b.sent();
775
- e_2 = { error: e_2_1 };
847
+ e_3_1 = _b.sent();
848
+ e_3 = { error: e_3_1 };
776
849
  return [3 /*break*/, 7];
777
850
  case 6:
778
851
  try {
779
852
  if (columns_1_1 && !columns_1_1.done && (_a = columns_1.return)) _a.call(columns_1);
780
853
  }
781
- finally { if (e_2) throw e_2.error; }
854
+ finally { if (e_3) throw e_3.error; }
782
855
  return [7 /*endfinally*/];
783
856
  case 7: return [2 /*return*/];
784
857
  }
@@ -823,7 +896,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
823
896
  */
824
897
  PostgresQueryRunner.prototype.changeColumn = function (tableOrName, oldTableColumnOrName, newColumn) {
825
898
  return __awaiter(this, void 0, void 0, function () {
826
- var table, _a, clonedTable, upQueries, downQueries, oldColumn, oldEnumType, primaryColumns, columnNames, oldPkName, newPkName, schema, seqName, newSeqName, up, down, oldTableColumn, enumName, arraySuffix, oldEnumName, oldEnumNameWithoutSchema, enumTypeBeforeColumnChange, upType, downType, primaryColumns, pkName, columnNames, column, pkName, columnNames, primaryColumn, column, pkName, columnNames, uniqueConstraint, uniqueConstraint;
899
+ var table, _a, clonedTable, upQueries, downQueries, defaultValueChanged, oldColumn, oldEnumType, primaryColumns, columnNames, oldPkName, newPkName, schema, seqName, newSeqName, up, down, oldTableColumn, arraySuffix, newEnumName, oldEnumName, oldEnumNameWithoutSchema, oldEnumNameWithSchema_old, oldEnumNameWithoutSchema_old, upType, downType, primaryColumns, pkName, columnNames, column, pkName, columnNames, primaryColumn, column, pkName, columnNames, uniqueConstraint, uniqueConstraint;
827
900
  var _this = this;
828
901
  return __generator(this, function (_b) {
829
902
  switch (_b.label) {
@@ -840,12 +913,13 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
840
913
  clonedTable = table.clone();
841
914
  upQueries = [];
842
915
  downQueries = [];
916
+ defaultValueChanged = false;
843
917
  oldColumn = oldTableColumnOrName instanceof TableColumn
844
918
  ? oldTableColumnOrName
845
919
  : table.columns.find(function (column) { return column.name === oldTableColumnOrName; });
846
920
  if (!oldColumn)
847
921
  throw new Error("Column \"" + oldTableColumnOrName + "\" was not found in the \"" + table.name + "\" table.");
848
- if (!(oldColumn.type !== newColumn.type || oldColumn.length !== newColumn.length)) return [3 /*break*/, 6];
922
+ if (!(oldColumn.type !== newColumn.type || oldColumn.length !== newColumn.length || newColumn.isArray !== oldColumn.isArray)) return [3 /*break*/, 6];
849
923
  // To avoid data conversion, we just recreate column
850
924
  return [4 /*yield*/, this.dropColumn(table, oldColumn)];
851
925
  case 4:
@@ -856,7 +930,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
856
930
  _b.sent();
857
931
  // update cloned table
858
932
  clonedTable = table.clone();
859
- return [3 /*break*/, 12];
933
+ return [3 /*break*/, 10];
860
934
  case 6:
861
935
  if (!(oldColumn.name !== newColumn.name)) return [3 /*break*/, 9];
862
936
  // rename column
@@ -940,42 +1014,42 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
940
1014
  upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + this.driver.createFullType(newColumn)));
941
1015
  downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + this.driver.createFullType(oldColumn)));
942
1016
  }
943
- if (!((newColumn.type === "enum" || newColumn.type === "simple-enum")
1017
+ if ((newColumn.type === "enum" || newColumn.type === "simple-enum")
944
1018
  && (oldColumn.type === "enum" || oldColumn.type === "simple-enum")
945
- && !OrmUtils.isArraysEqual(newColumn.enum, oldColumn.enum))) return [3 /*break*/, 11];
946
- enumName = this.buildEnumName(table, newColumn);
947
- arraySuffix = newColumn.isArray ? "[]" : "";
948
- oldEnumName = this.buildEnumName(table, newColumn, true, false, true);
949
- oldEnumNameWithoutSchema = this.buildEnumName(table, newColumn, false, false, true);
950
- return [4 /*yield*/, this.getEnumTypeName(table, oldColumn)];
951
- case 10:
952
- enumTypeBeforeColumnChange = _b.sent();
953
- // rename old ENUM
954
- upQueries.push(new Query("ALTER TYPE \"" + enumTypeBeforeColumnChange.enumTypeSchema + "\".\"" + enumTypeBeforeColumnChange.enumTypeName + "\" RENAME TO " + oldEnumNameWithoutSchema));
955
- downQueries.push(new Query("ALTER TYPE " + oldEnumName + " RENAME TO \"" + enumTypeBeforeColumnChange.enumTypeName + "\""));
956
- // create new ENUM
957
- upQueries.push(this.createEnumTypeSql(table, newColumn));
958
- downQueries.push(this.dropEnumTypeSql(table, oldColumn));
959
- // if column have default value, we must drop it to avoid issues with type casting
960
- if (newColumn.default !== null && newColumn.default !== undefined) {
961
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" DROP DEFAULT"));
962
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" SET DEFAULT " + newColumn.default));
963
- }
964
- upType = "" + enumName + arraySuffix + " USING \"" + newColumn.name + "\"::\"text\"::" + enumName + arraySuffix;
965
- downType = "" + oldEnumName + arraySuffix + " USING \"" + newColumn.name + "\"::\"text\"::" + oldEnumName + arraySuffix;
966
- // update column to use new type
967
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + upType));
968
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + downType));
969
- // if column have default value and we dropped it before, we must bring it back
970
- if (newColumn.default !== null && newColumn.default !== undefined) {
971
- upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" SET DEFAULT " + newColumn.default));
972
- downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" DROP DEFAULT"));
1019
+ && (!OrmUtils.isArraysEqual(newColumn.enum, oldColumn.enum) || newColumn.enumName !== oldColumn.enumName)) {
1020
+ arraySuffix = newColumn.isArray ? "[]" : "";
1021
+ newEnumName = this.buildEnumName(table, newColumn);
1022
+ oldEnumName = this.buildEnumName(table, oldColumn);
1023
+ oldEnumNameWithoutSchema = this.buildEnumName(table, oldColumn, false);
1024
+ oldEnumNameWithSchema_old = this.buildEnumName(table, oldColumn, true, false, true);
1025
+ oldEnumNameWithoutSchema_old = this.buildEnumName(table, oldColumn, false, false, true);
1026
+ // rename old ENUM
1027
+ upQueries.push(new Query("ALTER TYPE " + oldEnumName + " RENAME TO " + oldEnumNameWithoutSchema_old));
1028
+ downQueries.push(new Query("ALTER TYPE " + oldEnumNameWithSchema_old + " RENAME TO " + oldEnumNameWithoutSchema));
1029
+ // create new ENUM
1030
+ upQueries.push(this.createEnumTypeSql(table, newColumn, newEnumName));
1031
+ downQueries.push(this.dropEnumTypeSql(table, newColumn, newEnumName));
1032
+ // if column have default value, we must drop it to avoid issues with type casting
1033
+ if (oldColumn.default !== null && oldColumn.default !== undefined) {
1034
+ // mark default as changed to prevent double update
1035
+ defaultValueChanged = true;
1036
+ upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + oldColumn.name + "\" DROP DEFAULT"));
1037
+ downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + oldColumn.name + "\" SET DEFAULT " + oldColumn.default));
1038
+ }
1039
+ upType = "" + newEnumName + arraySuffix + " USING \"" + newColumn.name + "\"::\"text\"::" + newEnumName + arraySuffix;
1040
+ downType = "" + oldEnumNameWithSchema_old + arraySuffix + " USING \"" + newColumn.name + "\"::\"text\"::" + oldEnumNameWithSchema_old + arraySuffix;
1041
+ // update column to use new type
1042
+ upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + upType));
1043
+ downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + downType));
1044
+ // restore column default or create new one
1045
+ if (newColumn.default !== null && newColumn.default !== undefined) {
1046
+ upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" SET DEFAULT " + newColumn.default));
1047
+ downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" DROP DEFAULT"));
1048
+ }
1049
+ // remove old ENUM
1050
+ upQueries.push(this.dropEnumTypeSql(table, oldColumn, oldEnumNameWithSchema_old));
1051
+ downQueries.push(this.createEnumTypeSql(table, oldColumn, oldEnumNameWithSchema_old));
973
1052
  }
974
- // remove old ENUM
975
- upQueries.push(this.dropEnumTypeSql(table, newColumn, oldEnumName));
976
- downQueries.push(this.createEnumTypeSql(table, oldColumn, oldEnumName));
977
- _b.label = 11;
978
- case 11:
979
1053
  if (oldColumn.isNullable !== newColumn.isNullable) {
980
1054
  if (newColumn.isNullable) {
981
1055
  upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + oldColumn.name + "\" DROP NOT NULL"));
@@ -987,8 +1061,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
987
1061
  }
988
1062
  }
989
1063
  if (oldColumn.comment !== newColumn.comment) {
990
- upQueries.push(new Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + oldColumn.name + "\" IS '" + newColumn.comment + "'"));
991
- downQueries.push(new Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + newColumn.name + "\" IS '" + oldColumn.comment + "'"));
1064
+ upQueries.push(new Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + oldColumn.name + "\" IS " + this.escapeComment(newColumn.comment)));
1065
+ downQueries.push(new Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + newColumn.name + "\" IS " + this.escapeComment(oldColumn.comment)));
992
1066
  }
993
1067
  if (newColumn.isPrimary !== oldColumn.isPrimary) {
994
1068
  primaryColumns = clonedTable.primaryColumns;
@@ -1055,7 +1129,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1055
1129
  downQueries.push(new Query("CREATE SEQUENCE " + this.buildSequenceName(table, newColumn) + " OWNED BY " + this.escapePath(table) + ".\"" + newColumn.name + "\""));
1056
1130
  }
1057
1131
  }
1058
- if (newColumn.default !== oldColumn.default) {
1132
+ // the default might have changed when the enum changed
1133
+ if (newColumn.default !== oldColumn.default && !defaultValueChanged) {
1059
1134
  if (newColumn.default !== null && newColumn.default !== undefined) {
1060
1135
  upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" SET DEFAULT " + newColumn.default));
1061
1136
  if (oldColumn.default !== null && oldColumn.default !== undefined) {
@@ -1074,9 +1149,9 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1074
1149
  upQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + this.driver.createFullType(newColumn)));
1075
1150
  downQueries.push(new Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + this.driver.createFullType(oldColumn)));
1076
1151
  }
1077
- _b.label = 12;
1078
- case 12: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
1079
- case 13:
1152
+ _b.label = 10;
1153
+ case 10: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
1154
+ case 11:
1080
1155
  _b.sent();
1081
1156
  this.replaceCachedTable(table, clonedTable);
1082
1157
  return [2 /*return*/];
@@ -1089,8 +1164,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1089
1164
  */
1090
1165
  PostgresQueryRunner.prototype.changeColumns = function (tableOrName, changedColumns) {
1091
1166
  return __awaiter(this, void 0, void 0, function () {
1092
- var changedColumns_1, changedColumns_1_1, _a, oldColumn, newColumn, e_3_1;
1093
- var e_3, _b;
1167
+ var changedColumns_1, changedColumns_1_1, _a, oldColumn, newColumn, e_4_1;
1168
+ var e_4, _b;
1094
1169
  return __generator(this, function (_c) {
1095
1170
  switch (_c.label) {
1096
1171
  case 0:
@@ -1109,14 +1184,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1109
1184
  return [3 /*break*/, 1];
1110
1185
  case 4: return [3 /*break*/, 7];
1111
1186
  case 5:
1112
- e_3_1 = _c.sent();
1113
- e_3 = { error: e_3_1 };
1187
+ e_4_1 = _c.sent();
1188
+ e_4 = { error: e_4_1 };
1114
1189
  return [3 /*break*/, 7];
1115
1190
  case 6:
1116
1191
  try {
1117
1192
  if (changedColumns_1_1 && !changedColumns_1_1.done && (_b = changedColumns_1.return)) _b.call(changedColumns_1);
1118
1193
  }
1119
- finally { if (e_3) throw e_3.error; }
1194
+ finally { if (e_4) throw e_4.error; }
1120
1195
  return [7 /*endfinally*/];
1121
1196
  case 7: return [2 /*return*/];
1122
1197
  }
@@ -1210,8 +1285,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1210
1285
  */
1211
1286
  PostgresQueryRunner.prototype.dropColumns = function (tableOrName, columns) {
1212
1287
  return __awaiter(this, void 0, void 0, function () {
1213
- var columns_2, columns_2_1, column, e_4_1;
1214
- var e_4, _a;
1288
+ var columns_2, columns_2_1, column, e_5_1;
1289
+ var e_5, _a;
1215
1290
  return __generator(this, function (_b) {
1216
1291
  switch (_b.label) {
1217
1292
  case 0:
@@ -1230,14 +1305,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1230
1305
  return [3 /*break*/, 1];
1231
1306
  case 4: return [3 /*break*/, 7];
1232
1307
  case 5:
1233
- e_4_1 = _b.sent();
1234
- e_4 = { error: e_4_1 };
1308
+ e_5_1 = _b.sent();
1309
+ e_5 = { error: e_5_1 };
1235
1310
  return [3 /*break*/, 7];
1236
1311
  case 6:
1237
1312
  try {
1238
1313
  if (columns_2_1 && !columns_2_1.done && (_a = columns_2.return)) _a.call(columns_2);
1239
1314
  }
1240
- finally { if (e_4) throw e_4.error; }
1315
+ finally { if (e_5) throw e_5.error; }
1241
1316
  return [7 /*endfinally*/];
1242
1317
  case 7: return [2 /*return*/];
1243
1318
  }
@@ -1393,8 +1468,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1393
1468
  */
1394
1469
  PostgresQueryRunner.prototype.createUniqueConstraints = function (tableOrName, uniqueConstraints) {
1395
1470
  return __awaiter(this, void 0, void 0, function () {
1396
- var uniqueConstraints_1, uniqueConstraints_1_1, uniqueConstraint, e_5_1;
1397
- var e_5, _a;
1471
+ var uniqueConstraints_1, uniqueConstraints_1_1, uniqueConstraint, e_6_1;
1472
+ var e_6, _a;
1398
1473
  return __generator(this, function (_b) {
1399
1474
  switch (_b.label) {
1400
1475
  case 0:
@@ -1413,14 +1488,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1413
1488
  return [3 /*break*/, 1];
1414
1489
  case 4: return [3 /*break*/, 7];
1415
1490
  case 5:
1416
- e_5_1 = _b.sent();
1417
- e_5 = { error: e_5_1 };
1491
+ e_6_1 = _b.sent();
1492
+ e_6 = { error: e_6_1 };
1418
1493
  return [3 /*break*/, 7];
1419
1494
  case 6:
1420
1495
  try {
1421
1496
  if (uniqueConstraints_1_1 && !uniqueConstraints_1_1.done && (_a = uniqueConstraints_1.return)) _a.call(uniqueConstraints_1);
1422
1497
  }
1423
- finally { if (e_5) throw e_5.error; }
1498
+ finally { if (e_6) throw e_6.error; }
1424
1499
  return [7 /*endfinally*/];
1425
1500
  case 7: return [2 /*return*/];
1426
1501
  }
@@ -1464,8 +1539,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1464
1539
  */
1465
1540
  PostgresQueryRunner.prototype.dropUniqueConstraints = function (tableOrName, uniqueConstraints) {
1466
1541
  return __awaiter(this, void 0, void 0, function () {
1467
- var uniqueConstraints_2, uniqueConstraints_2_1, uniqueConstraint, e_6_1;
1468
- var e_6, _a;
1542
+ var uniqueConstraints_2, uniqueConstraints_2_1, uniqueConstraint, e_7_1;
1543
+ var e_7, _a;
1469
1544
  return __generator(this, function (_b) {
1470
1545
  switch (_b.label) {
1471
1546
  case 0:
@@ -1484,14 +1559,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1484
1559
  return [3 /*break*/, 1];
1485
1560
  case 4: return [3 /*break*/, 7];
1486
1561
  case 5:
1487
- e_6_1 = _b.sent();
1488
- e_6 = { error: e_6_1 };
1562
+ e_7_1 = _b.sent();
1563
+ e_7 = { error: e_7_1 };
1489
1564
  return [3 /*break*/, 7];
1490
1565
  case 6:
1491
1566
  try {
1492
1567
  if (uniqueConstraints_2_1 && !uniqueConstraints_2_1.done && (_a = uniqueConstraints_2.return)) _a.call(uniqueConstraints_2);
1493
1568
  }
1494
- finally { if (e_6) throw e_6.error; }
1569
+ finally { if (e_7) throw e_7.error; }
1495
1570
  return [7 /*endfinally*/];
1496
1571
  case 7: return [2 /*return*/];
1497
1572
  }
@@ -1739,8 +1814,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1739
1814
  */
1740
1815
  PostgresQueryRunner.prototype.createForeignKeys = function (tableOrName, foreignKeys) {
1741
1816
  return __awaiter(this, void 0, void 0, function () {
1742
- var foreignKeys_1, foreignKeys_1_1, foreignKey, e_7_1;
1743
- var e_7, _a;
1817
+ var foreignKeys_1, foreignKeys_1_1, foreignKey, e_8_1;
1818
+ var e_8, _a;
1744
1819
  return __generator(this, function (_b) {
1745
1820
  switch (_b.label) {
1746
1821
  case 0:
@@ -1759,14 +1834,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1759
1834
  return [3 /*break*/, 1];
1760
1835
  case 4: return [3 /*break*/, 7];
1761
1836
  case 5:
1762
- e_7_1 = _b.sent();
1763
- e_7 = { error: e_7_1 };
1837
+ e_8_1 = _b.sent();
1838
+ e_8 = { error: e_8_1 };
1764
1839
  return [3 /*break*/, 7];
1765
1840
  case 6:
1766
1841
  try {
1767
1842
  if (foreignKeys_1_1 && !foreignKeys_1_1.done && (_a = foreignKeys_1.return)) _a.call(foreignKeys_1);
1768
1843
  }
1769
- finally { if (e_7) throw e_7.error; }
1844
+ finally { if (e_8) throw e_8.error; }
1770
1845
  return [7 /*endfinally*/];
1771
1846
  case 7: return [2 /*return*/];
1772
1847
  }
@@ -1810,8 +1885,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1810
1885
  */
1811
1886
  PostgresQueryRunner.prototype.dropForeignKeys = function (tableOrName, foreignKeys) {
1812
1887
  return __awaiter(this, void 0, void 0, function () {
1813
- var foreignKeys_2, foreignKeys_2_1, foreignKey, e_8_1;
1814
- var e_8, _a;
1888
+ var foreignKeys_2, foreignKeys_2_1, foreignKey, e_9_1;
1889
+ var e_9, _a;
1815
1890
  return __generator(this, function (_b) {
1816
1891
  switch (_b.label) {
1817
1892
  case 0:
@@ -1830,14 +1905,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1830
1905
  return [3 /*break*/, 1];
1831
1906
  case 4: return [3 /*break*/, 7];
1832
1907
  case 5:
1833
- e_8_1 = _b.sent();
1834
- e_8 = { error: e_8_1 };
1908
+ e_9_1 = _b.sent();
1909
+ e_9 = { error: e_9_1 };
1835
1910
  return [3 /*break*/, 7];
1836
1911
  case 6:
1837
1912
  try {
1838
1913
  if (foreignKeys_2_1 && !foreignKeys_2_1.done && (_a = foreignKeys_2.return)) _a.call(foreignKeys_2);
1839
1914
  }
1840
- finally { if (e_8) throw e_8.error; }
1915
+ finally { if (e_9) throw e_9.error; }
1841
1916
  return [7 /*endfinally*/];
1842
1917
  case 7: return [2 /*return*/];
1843
1918
  }
@@ -1881,8 +1956,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1881
1956
  */
1882
1957
  PostgresQueryRunner.prototype.createIndices = function (tableOrName, indices) {
1883
1958
  return __awaiter(this, void 0, void 0, function () {
1884
- var indices_1, indices_1_1, index, e_9_1;
1885
- var e_9, _a;
1959
+ var indices_1, indices_1_1, index, e_10_1;
1960
+ var e_10, _a;
1886
1961
  return __generator(this, function (_b) {
1887
1962
  switch (_b.label) {
1888
1963
  case 0:
@@ -1901,14 +1976,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1901
1976
  return [3 /*break*/, 1];
1902
1977
  case 4: return [3 /*break*/, 7];
1903
1978
  case 5:
1904
- e_9_1 = _b.sent();
1905
- e_9 = { error: e_9_1 };
1979
+ e_10_1 = _b.sent();
1980
+ e_10 = { error: e_10_1 };
1906
1981
  return [3 /*break*/, 7];
1907
1982
  case 6:
1908
1983
  try {
1909
1984
  if (indices_1_1 && !indices_1_1.done && (_a = indices_1.return)) _a.call(indices_1);
1910
1985
  }
1911
- finally { if (e_9) throw e_9.error; }
1986
+ finally { if (e_10) throw e_10.error; }
1912
1987
  return [7 /*endfinally*/];
1913
1988
  case 7: return [2 /*return*/];
1914
1989
  }
@@ -1952,8 +2027,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1952
2027
  */
1953
2028
  PostgresQueryRunner.prototype.dropIndices = function (tableOrName, indices) {
1954
2029
  return __awaiter(this, void 0, void 0, function () {
1955
- var indices_2, indices_2_1, index, e_10_1;
1956
- var e_10, _a;
2030
+ var indices_2, indices_2_1, index, e_11_1;
2031
+ var e_11, _a;
1957
2032
  return __generator(this, function (_b) {
1958
2033
  switch (_b.label) {
1959
2034
  case 0:
@@ -1972,14 +2047,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1972
2047
  return [3 /*break*/, 1];
1973
2048
  case 4: return [3 /*break*/, 7];
1974
2049
  case 5:
1975
- e_10_1 = _b.sent();
1976
- e_10 = { error: e_10_1 };
2050
+ e_11_1 = _b.sent();
2051
+ e_11 = { error: e_11_1 };
1977
2052
  return [3 /*break*/, 7];
1978
2053
  case 6:
1979
2054
  try {
1980
2055
  if (indices_2_1 && !indices_2_1.done && (_a = indices_2.return)) _a.call(indices_2);
1981
2056
  }
1982
- finally { if (e_10) throw e_10.error; }
2057
+ finally { if (e_11) throw e_11.error; }
1983
2058
  return [7 /*endfinally*/];
1984
2059
  case 7: return [2 /*return*/];
1985
2060
  }
@@ -2117,7 +2192,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2117
2192
  */
2118
2193
  PostgresQueryRunner.prototype.loadTables = function (tableNames) {
2119
2194
  return __awaiter(this, void 0, void 0, function () {
2120
- var currentSchemaQuery, currentSchema, tablesCondition, tablesSql, columnsSql, constraintsCondition, constraintsSql, indicesSql, foreignKeysCondition, foreignKeysSql, _a, dbTables, dbColumns, dbConstraints, dbIndices, dbForeignKeys;
2195
+ var currentSchemaQuery, currentSchema, tablesCondition, tablesSql, columnsSql, constraintsCondition, constraintsSql, indicesSql, foreignKeysCondition, hasRelispartitionColumn, isPartitionCondition, foreignKeysSql, _a, dbTables, dbColumns, dbConstraints, dbIndices, dbForeignKeys;
2121
2196
  var _this = this;
2122
2197
  return __generator(this, function (_b) {
2123
2198
  switch (_b.label) {
@@ -2138,7 +2213,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2138
2213
  return "(\"table_schema\" = '" + schema + "' AND \"table_name\" = '" + name + "')";
2139
2214
  }).join(" OR ");
2140
2215
  tablesSql = "SELECT * FROM \"information_schema\".\"tables\" WHERE " + tablesCondition;
2141
- columnsSql = "SELECT *, ('\"' || \"udt_schema\" || '\".\"' || \"udt_name\" || '\"')::\"regtype\" AS \"regtype\" FROM \"information_schema\".\"columns\" WHERE " + tablesCondition;
2216
+ columnsSql = "\n SELECT columns.*,\n pg_catalog.col_description(('\"' || table_catalog || '\".\"' || table_schema || '\".\"' || table_name || '\"')::regclass::oid, ordinal_position) AS description,\n ('\"' || \"udt_schema\" || '\".\"' || \"udt_name\" || '\"')::\"regtype\" AS \"regtype\",\n pg_catalog.format_type(\"col_attr\".\"atttypid\", \"col_attr\".\"atttypmod\") AS \"format_type\"\n FROM \"information_schema\".\"columns\"\n LEFT JOIN \"pg_catalog\".\"pg_attribute\" AS \"col_attr\"\n ON \"col_attr\".\"attname\" = \"columns\".\"column_name\"\n AND \"col_attr\".\"attrelid\" = (\n SELECT\n \"cls\".\"oid\" FROM \"pg_catalog\".\"pg_class\" AS \"cls\"\n LEFT JOIN \"pg_catalog\".\"pg_namespace\" AS \"ns\"\n ON \"ns\".\"oid\" = \"cls\".\"relnamespace\"\n WHERE \"cls\".\"relname\" = \"columns\".\"table_name\"\n AND \"ns\".\"nspname\" = \"columns\".\"table_schema\"\n )\n WHERE\n " + tablesCondition;
2142
2217
  constraintsCondition = tableNames.map(function (tableName) {
2143
2218
  var _a = __read(tableName.split("."), 2), schema = _a[0], name = _a[1];
2144
2219
  if (!name) {
@@ -2154,7 +2229,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2154
2229
  "INNER JOIN \"pg_class\" \"t\" ON \"t\".\"oid\" = \"cnst\".\"conrelid\" " +
2155
2230
  "INNER JOIN \"pg_namespace\" \"ns\" ON \"ns\".\"oid\" = \"cnst\".\"connamespace\" " +
2156
2231
  "LEFT JOIN \"pg_attribute\" \"a\" ON \"a\".\"attrelid\" = \"cnst\".\"conrelid\" AND \"a\".\"attnum\" = ANY (\"cnst\".\"conkey\") " +
2157
- ("WHERE \"t\".\"relkind\" = 'r' AND (" + constraintsCondition + ")");
2232
+ ("WHERE \"t\".\"relkind\" IN ('r', 'p') AND (" + constraintsCondition + ")");
2158
2233
  indicesSql = "SELECT \"ns\".\"nspname\" AS \"table_schema\", \"t\".\"relname\" AS \"table_name\", \"i\".\"relname\" AS \"constraint_name\", \"a\".\"attname\" AS \"column_name\", " +
2159
2234
  "CASE \"ix\".\"indisunique\" WHEN 't' THEN 'TRUE' ELSE'FALSE' END AS \"is_unique\", pg_get_expr(\"ix\".\"indpred\", \"ix\".\"indrelid\") AS \"condition\", " +
2160
2235
  "\"types\".\"typname\" AS \"type_name\" " +
@@ -2165,7 +2240,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2165
2240
  "INNER JOIN \"pg_class\" \"i\" ON \"i\".\"oid\" = \"ix\".\"indexrelid\" " +
2166
2241
  "INNER JOIN \"pg_type\" \"types\" ON \"types\".\"oid\" = \"a\".\"atttypid\" " +
2167
2242
  "LEFT JOIN \"pg_constraint\" \"cnst\" ON \"cnst\".\"conname\" = \"i\".\"relname\" " +
2168
- ("WHERE \"t\".\"relkind\" = 'r' AND \"cnst\".\"contype\" IS NULL AND (" + constraintsCondition + ")");
2243
+ ("WHERE \"t\".\"relkind\" IN ('r', 'p') AND \"cnst\".\"contype\" IS NULL AND (" + constraintsCondition + ")");
2169
2244
  foreignKeysCondition = tableNames.map(function (tableName) {
2170
2245
  var _a = __read(tableName.split("."), 2), schema = _a[0], name = _a[1];
2171
2246
  if (!name) {
@@ -2174,6 +2249,10 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2174
2249
  }
2175
2250
  return "(\"ns\".\"nspname\" = '" + schema + "' AND \"cl\".\"relname\" = '" + name + "')";
2176
2251
  }).join(" OR ");
2252
+ return [4 /*yield*/, this.hasSupportForPartitionedTables()];
2253
+ case 2:
2254
+ hasRelispartitionColumn = _b.sent();
2255
+ isPartitionCondition = hasRelispartitionColumn ? " AND \"cl\".\"relispartition\" = 'f'" : "";
2177
2256
  foreignKeysSql = "SELECT \"con\".\"conname\" AS \"constraint_name\", \"con\".\"nspname\" AS \"table_schema\", \"con\".\"relname\" AS \"table_name\", \"att2\".\"attname\" AS \"column_name\", " +
2178
2257
  "\"ns\".\"nspname\" AS \"referenced_table_schema\", \"cl\".\"relname\" AS \"referenced_table_name\", \"att\".\"attname\" AS \"referenced_column_name\", \"con\".\"confdeltype\" AS \"on_delete\", " +
2179
2258
  "\"con\".\"confupdtype\" AS \"on_update\", \"con\".\"condeferrable\" AS \"deferrable\", \"con\".\"condeferred\" AS \"deferred\" " +
@@ -2189,7 +2268,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2189
2268
  ("WHERE \"con1\".\"contype\" = 'f' AND (" + foreignKeysCondition + ") ") +
2190
2269
  ") \"con\" " +
2191
2270
  "INNER JOIN \"pg_attribute\" \"att\" ON \"att\".\"attrelid\" = \"con\".\"confrelid\" AND \"att\".\"attnum\" = \"con\".\"child\" " +
2192
- "INNER JOIN \"pg_class\" \"cl\" ON \"cl\".\"oid\" = \"con\".\"confrelid\" " +
2271
+ ("INNER JOIN \"pg_class\" \"cl\" ON \"cl\".\"oid\" = \"con\".\"confrelid\" " + isPartitionCondition) +
2193
2272
  "INNER JOIN \"pg_namespace\" \"ns\" ON \"cl\".\"relnamespace\" = \"ns\".\"oid\" " +
2194
2273
  "INNER JOIN \"pg_attribute\" \"att2\" ON \"att2\".\"attrelid\" = \"con\".\"conrelid\" AND \"att2\".\"attnum\" = \"con\".\"parent\"";
2195
2274
  return [4 /*yield*/, Promise.all([
@@ -2199,7 +2278,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2199
2278
  this.query(indicesSql),
2200
2279
  this.query(foreignKeysSql),
2201
2280
  ])];
2202
- case 2:
2281
+ case 3:
2203
2282
  _a = __read.apply(void 0, [_b.sent(), 5]), dbTables = _a[0], dbColumns = _a[1], dbConstraints = _a[2], dbIndices = _a[3], dbForeignKeys = _a[4];
2204
2283
  // if tables were not found in the db, no need to proceed
2205
2284
  if (!dbTables.length)
@@ -2221,7 +2300,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2221
2300
  return [4 /*yield*/, Promise.all(dbColumns
2222
2301
  .filter(function (dbColumn) { return _this.driver.buildTableName(dbColumn["table_name"], dbColumn["table_schema"]) === tableFullName; })
2223
2302
  .map(function (dbColumn) { return __awaiter(_this, void 0, void 0, function () {
2224
- var columnConstraints, tableColumn, type, sql, results, geometryColumnSql, results, geographyColumnSql, results, length_1, uniqueConstraint, isConstraintComposite;
2303
+ var columnConstraints, tableColumn, type, enumTypeName, builtEnumName, sql, results, geometryColumnSql, results, geographyColumnSql, results, length_1, match, uniqueConstraint, isConstraintComposite;
2225
2304
  var _this = this;
2226
2305
  return __generator(this, function (_a) {
2227
2306
  switch (_a.label) {
@@ -2260,40 +2339,54 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2260
2339
  || tableColumn.type === "timestamp with time zone") {
2261
2340
  tableColumn.precision = !this.isDefaultColumnPrecision(table, tableColumn, dbColumn["datetime_precision"]) ? dbColumn["datetime_precision"] : undefined;
2262
2341
  }
2263
- if (!(tableColumn.type.indexOf("enum") !== -1)) return [3 /*break*/, 2];
2342
+ if (!(tableColumn.type.indexOf("enum") !== -1)) return [3 /*break*/, 3];
2343
+ return [4 /*yield*/, this.getEnumTypeName(table, tableColumn)];
2344
+ case 1:
2345
+ enumTypeName = (_a.sent()).enumTypeName;
2346
+ builtEnumName = this.buildEnumName(table, tableColumn, false, true);
2347
+ if (builtEnumName !== enumTypeName)
2348
+ tableColumn.enumName = enumTypeName;
2264
2349
  tableColumn.type = "enum";
2265
2350
  sql = "SELECT \"e\".\"enumlabel\" AS \"value\" FROM \"pg_enum\" \"e\" " +
2266
2351
  "INNER JOIN \"pg_type\" \"t\" ON \"t\".\"oid\" = \"e\".\"enumtypid\" " +
2267
2352
  "INNER JOIN \"pg_namespace\" \"n\" ON \"n\".\"oid\" = \"t\".\"typnamespace\" " +
2268
- ("WHERE \"n\".\"nspname\" = '" + dbTable["table_schema"] + "' AND \"t\".\"typname\" = '" + this.buildEnumName(table, tableColumn.name, false, true) + "'");
2353
+ ("WHERE \"n\".\"nspname\" = '" + dbTable["table_schema"] + "' AND \"t\".\"typname\" = '" + this.buildEnumName(table, tableColumn, false, true) + "'");
2269
2354
  return [4 /*yield*/, this.query(sql)];
2270
- case 1:
2355
+ case 2:
2271
2356
  results = _a.sent();
2272
2357
  tableColumn.enum = results.map(function (result) { return result["value"]; });
2273
- _a.label = 2;
2274
- case 2:
2275
- if (!(tableColumn.type === "geometry")) return [3 /*break*/, 4];
2358
+ _a.label = 3;
2359
+ case 3:
2360
+ if (!(tableColumn.type === "geometry")) return [3 /*break*/, 5];
2276
2361
  geometryColumnSql = "SELECT * FROM (\n SELECT\n \"f_table_schema\" \"table_schema\",\n \"f_table_name\" \"table_name\",\n \"f_geometry_column\" \"column_name\",\n \"srid\",\n \"type\"\n FROM \"geometry_columns\"\n ) AS _\n WHERE (" + tablesCondition + ") AND \"column_name\" = '" + tableColumn.name + "' AND \"table_name\" = '" + dbTable["table_name"] + "'";
2277
2362
  return [4 /*yield*/, this.query(geometryColumnSql)];
2278
- case 3:
2363
+ case 4:
2279
2364
  results = _a.sent();
2280
2365
  tableColumn.spatialFeatureType = results[0].type;
2281
2366
  tableColumn.srid = results[0].srid;
2282
- _a.label = 4;
2283
- case 4:
2284
- if (!(tableColumn.type === "geography")) return [3 /*break*/, 6];
2367
+ _a.label = 5;
2368
+ case 5:
2369
+ if (!(tableColumn.type === "geography")) return [3 /*break*/, 7];
2285
2370
  geographyColumnSql = "SELECT * FROM (\n SELECT\n \"f_table_schema\" \"table_schema\",\n \"f_table_name\" \"table_name\",\n \"f_geography_column\" \"column_name\",\n \"srid\",\n \"type\"\n FROM \"geography_columns\"\n ) AS _\n WHERE (" + tablesCondition + ") AND \"column_name\" = '" + tableColumn.name + "' AND \"table_name\" = '" + dbTable["table_name"] + "'";
2286
2371
  return [4 /*yield*/, this.query(geographyColumnSql)];
2287
- case 5:
2372
+ case 6:
2288
2373
  results = _a.sent();
2289
2374
  tableColumn.spatialFeatureType = results[0].type;
2290
2375
  tableColumn.srid = results[0].srid;
2291
- _a.label = 6;
2292
- case 6:
2376
+ _a.label = 7;
2377
+ case 7:
2293
2378
  // check only columns that have length property
2294
- if (this.driver.withLengthColumnTypes.indexOf(tableColumn.type) !== -1 && dbColumn["character_maximum_length"]) {
2295
- length_1 = dbColumn["character_maximum_length"].toString();
2296
- tableColumn.length = !this.isDefaultColumnLength(table, tableColumn, length_1) ? length_1 : "";
2379
+ if (this.driver.withLengthColumnTypes.indexOf(tableColumn.type) !== -1) {
2380
+ if (tableColumn.isArray) {
2381
+ match = /\((\d+)\)/.exec(dbColumn["format_type"]);
2382
+ length_1 = match ? match[1] : undefined;
2383
+ }
2384
+ else if (dbColumn["character_maximum_length"]) {
2385
+ length_1 = dbColumn["character_maximum_length"].toString();
2386
+ }
2387
+ if (length_1) {
2388
+ tableColumn.length = !this.isDefaultColumnLength(table, tableColumn, length_1) ? length_1 : "";
2389
+ }
2297
2390
  }
2298
2391
  tableColumn.isNullable = dbColumn["is_nullable"] === "YES";
2299
2392
  tableColumn.isPrimary = !!columnConstraints.find(function (constraint) { return constraint["constraint_type"] === "PRIMARY"; });
@@ -2315,9 +2408,10 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2315
2408
  }
2316
2409
  else {
2317
2410
  tableColumn.default = dbColumn["column_default"].replace(/::.*/, "");
2411
+ tableColumn.default = tableColumn.default.replace(/^(-?\d+)$/, "'$1'");
2318
2412
  }
2319
2413
  }
2320
- tableColumn.comment = ""; // dbColumn["COLUMN_COMMENT"];
2414
+ tableColumn.comment = dbColumn["description"] ? dbColumn["description"] : undefined;
2321
2415
  if (dbColumn["character_set_name"])
2322
2416
  tableColumn.charset = dbColumn["character_set_name"];
2323
2417
  if (dbColumn["collation_name"])
@@ -2470,6 +2564,9 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2470
2564
  sql += ", CONSTRAINT \"" + primaryKeyName + "\" PRIMARY KEY (" + columnNames + ")";
2471
2565
  }
2472
2566
  sql += ")";
2567
+ table.columns
2568
+ .filter(function (it) { return it.comment; })
2569
+ .forEach(function (it) { return sql += "; COMMENT ON COLUMN " + _this.escapePath(table) + ".\"" + it.name + "\" IS " + _this.escapeComment(it.comment); });
2473
2570
  return new Query(sql);
2474
2571
  };
2475
2572
  /**
@@ -2732,31 +2829,26 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2732
2829
  schema = table.name.split(".")[0];
2733
2830
  tableName = table.name.split(".")[1];
2734
2831
  }
2832
+ var seqName = tableName + "_" + columnName + "_seq";
2833
+ if (seqName.length > this.connection.driver.maxAliasLength) // note doesn't yet handle corner cases where .length differs from number of UTF-8 bytes
2834
+ seqName = tableName.substring(0, 29) + "_" + columnName.substring(0, Math.max(29, 63 - tableName.length - 5)) + "_seq";
2735
2835
  if (schema && schema !== currentSchema && !skipSchema) {
2736
- return disableEscape ? schema + "." + tableName + "_" + columnName + "_seq" : "\"" + schema + "\".\"" + tableName + "_" + columnName + "_seq\"";
2836
+ return disableEscape ? schema + "." + seqName : "\"" + schema + "\".\"" + seqName + "\"";
2737
2837
  }
2738
2838
  else {
2739
- return disableEscape ? tableName + "_" + columnName + "_seq" : "\"" + tableName + "_" + columnName + "_seq\"";
2839
+ return disableEscape ? "" + seqName : "\"" + seqName + "\"";
2740
2840
  }
2741
2841
  };
2742
2842
  /**
2743
2843
  * Builds ENUM type name from given table and column.
2744
2844
  */
2745
- PostgresQueryRunner.prototype.buildEnumName = function (table, columnOrName, withSchema, disableEscape, toOld) {
2845
+ PostgresQueryRunner.prototype.buildEnumName = function (table, column, withSchema, disableEscape, toOld) {
2746
2846
  if (withSchema === void 0) { withSchema = true; }
2747
- /**
2748
- * If enumName is specified in column options then use it instead
2749
- */
2750
- if (columnOrName instanceof TableColumn && columnOrName.enumName) {
2751
- var enumName_1 = columnOrName.enumName;
2752
- if (toOld)
2753
- enumName_1 = enumName_1 + "_old";
2754
- return disableEscape ? enumName_1 : "\"" + enumName_1 + "\"";
2755
- }
2756
- var columnName = columnOrName instanceof TableColumn ? columnOrName.name : columnOrName;
2757
2847
  var schema = table.name.indexOf(".") === -1 ? this.driver.options.schema : table.name.split(".")[0];
2758
2848
  var tableName = table.name.indexOf(".") === -1 ? table.name : table.name.split(".")[1];
2759
- var enumName = schema && withSchema ? schema + "." + tableName + "_" + columnName.toLowerCase() + "_enum" : tableName + "_" + columnName.toLowerCase() + "_enum";
2849
+ var enumName = column.enumName ? column.enumName : tableName + "_" + column.name.toLowerCase() + "_enum";
2850
+ if (schema && withSchema)
2851
+ enumName = schema + "." + enumName;
2760
2852
  if (toOld)
2761
2853
  enumName = enumName + "_old";
2762
2854
  return enumName.split(".").map(function (i) {
@@ -2765,7 +2857,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2765
2857
  };
2766
2858
  PostgresQueryRunner.prototype.getEnumTypeName = function (table, column) {
2767
2859
  return __awaiter(this, void 0, void 0, function () {
2768
- var currentSchemaQuery, currentSchema, _a, schema, name, result;
2860
+ var currentSchemaQuery, currentSchema, _a, schema, name, result, udtName;
2769
2861
  return __generator(this, function (_b) {
2770
2862
  switch (_b.label) {
2771
2863
  case 0: return [4 /*yield*/, this.query("SELECT * FROM current_schema()")];
@@ -2781,14 +2873,30 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2781
2873
  ("FROM \"information_schema\".\"columns\" WHERE \"table_schema\" = '" + schema + "' AND \"table_name\" = '" + name + "' AND \"column_name\"='" + column.name + "'"))];
2782
2874
  case 2:
2783
2875
  result = _b.sent();
2876
+ udtName = result[0]["udt_name"];
2877
+ if (udtName.indexOf("_") === 0) {
2878
+ udtName = udtName.substr(1, udtName.length);
2879
+ }
2784
2880
  return [2 /*return*/, {
2785
2881
  enumTypeSchema: result[0]["udt_schema"],
2786
- enumTypeName: result[0]["udt_name"]
2882
+ enumTypeName: udtName
2787
2883
  }];
2788
2884
  }
2789
2885
  });
2790
2886
  });
2791
2887
  };
2888
+ /**
2889
+ * Escapes a given comment so it's safe to include in a query.
2890
+ */
2891
+ PostgresQueryRunner.prototype.escapeComment = function (comment) {
2892
+ if (!comment || comment.length === 0) {
2893
+ return "NULL";
2894
+ }
2895
+ comment = comment
2896
+ .replace(/'/g, "''")
2897
+ .replace("\0", ""); // Null bytes aren't allowed in comments
2898
+ return "'" + comment + "'";
2899
+ };
2792
2900
  /**
2793
2901
  * Escapes given table or view path.
2794
2902
  */
@@ -2850,6 +2958,22 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2850
2958
  c += " DEFAULT " + this.driver.uuidGenerator;
2851
2959
  return c;
2852
2960
  };
2961
+ /**
2962
+ * Checks if the PostgreSQL server has support for partitioned tables
2963
+ */
2964
+ PostgresQueryRunner.prototype.hasSupportForPartitionedTables = function () {
2965
+ return __awaiter(this, void 0, void 0, function () {
2966
+ var result;
2967
+ return __generator(this, function (_a) {
2968
+ switch (_a.label) {
2969
+ case 0: return [4 /*yield*/, this.query("SELECT TRUE FROM information_schema.columns WHERE table_name = 'pg_class' and column_name = 'relispartition'")];
2970
+ case 1:
2971
+ result = _a.sent();
2972
+ return [2 /*return*/, result.length ? true : false];
2973
+ }
2974
+ });
2975
+ });
2976
+ };
2853
2977
  return PostgresQueryRunner;
2854
2978
  }(BaseQueryRunner));
2855
2979
  export { PostgresQueryRunner };