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
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PostgresQueryRunner = void 0;
3
4
  var tslib_1 = require("tslib");
4
5
  var QueryFailedError_1 = require("../../error/QueryFailedError");
5
6
  var QueryRunnerAlreadyReleasedError_1 = require("../../error/QueryRunnerAlreadyReleasedError");
@@ -17,6 +18,7 @@ var View_1 = require("../../schema-builder/view/View");
17
18
  var Broadcaster_1 = require("../../subscriber/Broadcaster");
18
19
  var OrmUtils_1 = require("../../util/OrmUtils");
19
20
  var Query_1 = require("../Query");
21
+ var BroadcasterResult_1 = require("../../subscriber/BroadcasterResult");
20
22
  /**
21
23
  * Runs queries on a single postgres database connection.
22
24
  */
@@ -97,21 +99,38 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
97
99
  */
98
100
  PostgresQueryRunner.prototype.startTransaction = function (isolationLevel) {
99
101
  return tslib_1.__awaiter(this, void 0, void 0, function () {
102
+ var beforeBroadcastResult, afterBroadcastResult;
100
103
  return tslib_1.__generator(this, function (_a) {
101
104
  switch (_a.label) {
102
105
  case 0:
103
106
  if (this.isTransactionActive)
104
107
  throw new TransactionAlreadyStartedError_1.TransactionAlreadyStartedError();
108
+ beforeBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
109
+ this.broadcaster.broadcastBeforeTransactionStartEvent(beforeBroadcastResult);
110
+ if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
111
+ return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
112
+ case 1:
113
+ _a.sent();
114
+ _a.label = 2;
115
+ case 2:
105
116
  this.isTransactionActive = true;
106
117
  return [4 /*yield*/, this.query("START TRANSACTION")];
107
- case 1:
118
+ case 3:
108
119
  _a.sent();
109
- if (!isolationLevel) return [3 /*break*/, 3];
120
+ if (!isolationLevel) return [3 /*break*/, 5];
110
121
  return [4 /*yield*/, this.query("SET TRANSACTION ISOLATION LEVEL " + isolationLevel)];
111
- case 2:
122
+ case 4:
112
123
  _a.sent();
113
- _a.label = 3;
114
- case 3: return [2 /*return*/];
124
+ _a.label = 5;
125
+ case 5:
126
+ afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
127
+ this.broadcaster.broadcastAfterTransactionStartEvent(afterBroadcastResult);
128
+ if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 7];
129
+ return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
130
+ case 6:
131
+ _a.sent();
132
+ _a.label = 7;
133
+ case 7: return [2 /*return*/];
115
134
  }
116
135
  });
117
136
  });
@@ -122,16 +141,31 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
122
141
  */
123
142
  PostgresQueryRunner.prototype.commitTransaction = function () {
124
143
  return tslib_1.__awaiter(this, void 0, void 0, function () {
144
+ var beforeBroadcastResult, afterBroadcastResult;
125
145
  return tslib_1.__generator(this, function (_a) {
126
146
  switch (_a.label) {
127
147
  case 0:
128
148
  if (!this.isTransactionActive)
129
149
  throw new TransactionNotStartedError_1.TransactionNotStartedError();
130
- return [4 /*yield*/, this.query("COMMIT")];
150
+ beforeBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
151
+ this.broadcaster.broadcastBeforeTransactionCommitEvent(beforeBroadcastResult);
152
+ if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
153
+ return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
131
154
  case 1:
155
+ _a.sent();
156
+ _a.label = 2;
157
+ case 2: return [4 /*yield*/, this.query("COMMIT")];
158
+ case 3:
132
159
  _a.sent();
133
160
  this.isTransactionActive = false;
134
- return [2 /*return*/];
161
+ afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
162
+ this.broadcaster.broadcastAfterTransactionCommitEvent(afterBroadcastResult);
163
+ if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];
164
+ return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
165
+ case 4:
166
+ _a.sent();
167
+ _a.label = 5;
168
+ case 5: return [2 /*return*/];
135
169
  }
136
170
  });
137
171
  });
@@ -142,16 +176,31 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
142
176
  */
143
177
  PostgresQueryRunner.prototype.rollbackTransaction = function () {
144
178
  return tslib_1.__awaiter(this, void 0, void 0, function () {
179
+ var beforeBroadcastResult, afterBroadcastResult;
145
180
  return tslib_1.__generator(this, function (_a) {
146
181
  switch (_a.label) {
147
182
  case 0:
148
183
  if (!this.isTransactionActive)
149
184
  throw new TransactionNotStartedError_1.TransactionNotStartedError();
150
- return [4 /*yield*/, this.query("ROLLBACK")];
185
+ beforeBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
186
+ this.broadcaster.broadcastBeforeTransactionRollbackEvent(beforeBroadcastResult);
187
+ if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
188
+ return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
151
189
  case 1:
190
+ _a.sent();
191
+ _a.label = 2;
192
+ case 2: return [4 /*yield*/, this.query("ROLLBACK")];
193
+ case 3:
152
194
  _a.sent();
153
195
  this.isTransactionActive = false;
154
- return [2 /*return*/];
196
+ afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
197
+ this.broadcaster.broadcastAfterTransactionRollbackEvent(afterBroadcastResult);
198
+ if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];
199
+ return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
200
+ case 4:
201
+ _a.sent();
202
+ _a.label = 5;
203
+ case 5: return [2 /*return*/];
155
204
  }
156
205
  });
157
206
  });
@@ -160,53 +209,47 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
160
209
  * Executes a given SQL query.
161
210
  */
162
211
  PostgresQueryRunner.prototype.query = function (query, parameters) {
163
- var _this = this;
164
- if (this.isReleased)
165
- throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
166
- return new Promise(function (ok, fail) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
167
- var databaseConnection, queryStartTime_1, err_1;
168
- var _this = this;
212
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
213
+ var databaseConnection, queryStartTime, result, maxQueryExecutionTime, queryEndTime, queryExecutionTime, err_1;
169
214
  return tslib_1.__generator(this, function (_a) {
170
215
  switch (_a.label) {
171
216
  case 0:
172
- _a.trys.push([0, 2, , 3]);
217
+ if (this.isReleased)
218
+ throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
173
219
  return [4 /*yield*/, this.connect()];
174
220
  case 1:
175
221
  databaseConnection = _a.sent();
176
222
  this.driver.connection.logger.logQuery(query, parameters, this);
177
- queryStartTime_1 = +new Date();
178
- databaseConnection.query(query, parameters, function (err, result) {
179
- // log slow queries if maxQueryExecution time is set
180
- var maxQueryExecutionTime = _this.driver.connection.options.maxQueryExecutionTime;
181
- var queryEndTime = +new Date();
182
- var queryExecutionTime = queryEndTime - queryStartTime_1;
183
- if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)
184
- _this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, _this);
185
- if (err) {
186
- _this.driver.connection.logger.logQueryError(err, query, parameters, _this);
187
- fail(new QueryFailedError_1.QueryFailedError(query, parameters, err));
188
- }
189
- else {
190
- switch (result.command) {
191
- case "DELETE":
192
- case "UPDATE":
193
- // for UPDATE and DELETE query additionally return number of affected rows
194
- ok([result.rows, result.rowCount]);
195
- break;
196
- default:
197
- ok(result.rows);
198
- }
199
- }
200
- });
201
- return [3 /*break*/, 3];
223
+ _a.label = 2;
202
224
  case 2:
225
+ _a.trys.push([2, 4, , 5]);
226
+ queryStartTime = +new Date();
227
+ return [4 /*yield*/, databaseConnection.query(query, parameters)];
228
+ case 3:
229
+ result = _a.sent();
230
+ maxQueryExecutionTime = this.driver.connection.options.maxQueryExecutionTime;
231
+ queryEndTime = +new Date();
232
+ queryExecutionTime = queryEndTime - queryStartTime;
233
+ if (maxQueryExecutionTime && queryExecutionTime > maxQueryExecutionTime)
234
+ this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);
235
+ switch (result.command) {
236
+ case "DELETE":
237
+ case "UPDATE":
238
+ // for UPDATE and DELETE query additionally return number of affected rows
239
+ return [2 /*return*/, [result.rows, result.rowCount]];
240
+ break;
241
+ default:
242
+ return [2 /*return*/, result.rows];
243
+ }
244
+ return [3 /*break*/, 5];
245
+ case 4:
203
246
  err_1 = _a.sent();
204
- fail(err_1);
205
- return [3 /*break*/, 3];
206
- case 3: return [2 /*return*/];
247
+ this.driver.connection.logger.logQueryError(err_1, query, parameters, this);
248
+ throw new QueryFailedError_1.QueryFailedError(query, parameters, err_1);
249
+ case 5: return [2 /*return*/];
207
250
  }
208
251
  });
209
- }); });
252
+ });
210
253
  };
211
254
  /**
212
255
  * Returns raw data stream.
@@ -401,43 +444,58 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
401
444
  if (createForeignKeys === void 0) { createForeignKeys = true; }
402
445
  if (createIndices === void 0) { createIndices = true; }
403
446
  return tslib_1.__awaiter(this, void 0, void 0, function () {
404
- var isTableExist, upQueries, downQueries;
447
+ var isTableExist, upQueries, downQueries, enumColumns, createdEnumTypes, enumColumns_1, enumColumns_1_1, column, hasEnum, enumName, e_1_1;
448
+ var e_1, _a;
405
449
  var _this = this;
406
- return tslib_1.__generator(this, function (_a) {
407
- switch (_a.label) {
450
+ return tslib_1.__generator(this, function (_b) {
451
+ switch (_b.label) {
408
452
  case 0:
409
453
  if (!ifNotExist) return [3 /*break*/, 2];
410
454
  return [4 /*yield*/, this.hasTable(table)];
411
455
  case 1:
412
- isTableExist = _a.sent();
456
+ isTableExist = _b.sent();
413
457
  if (isTableExist)
414
458
  return [2 /*return*/, Promise.resolve()];
415
- _a.label = 2;
459
+ _b.label = 2;
416
460
  case 2:
417
461
  upQueries = [];
418
462
  downQueries = [];
419
- // if table have column with ENUM type, we must create this type in postgres.
420
- return [4 /*yield*/, Promise.all(table.columns
421
- .filter(function (column) { return column.type === "enum" || column.type === "simple-enum"; })
422
- .map(function (column) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
423
- var hasEnum;
424
- return tslib_1.__generator(this, function (_a) {
425
- switch (_a.label) {
426
- case 0: return [4 /*yield*/, this.hasEnumType(table, column)];
427
- case 1:
428
- hasEnum = _a.sent();
429
- // TODO: Should also check if values of existing type matches expected ones
430
- if (!hasEnum) {
431
- upQueries.push(this.createEnumTypeSql(table, column));
432
- downQueries.push(this.dropEnumTypeSql(table, column));
433
- }
434
- return [2 /*return*/, Promise.resolve()];
435
- }
436
- });
437
- }); }))];
463
+ enumColumns = table.columns.filter(function (column) { return column.type === "enum" || column.type === "simple-enum"; });
464
+ createdEnumTypes = [];
465
+ _b.label = 3;
438
466
  case 3:
439
- // if table have column with ENUM type, we must create this type in postgres.
440
- _a.sent();
467
+ _b.trys.push([3, 8, 9, 10]);
468
+ enumColumns_1 = tslib_1.__values(enumColumns), enumColumns_1_1 = enumColumns_1.next();
469
+ _b.label = 4;
470
+ case 4:
471
+ if (!!enumColumns_1_1.done) return [3 /*break*/, 7];
472
+ column = enumColumns_1_1.value;
473
+ return [4 /*yield*/, this.hasEnumType(table, column)];
474
+ case 5:
475
+ hasEnum = _b.sent();
476
+ enumName = this.buildEnumName(table, column);
477
+ // if enum with the same "enumName" is defined more then once, me must prevent double creation
478
+ if (!hasEnum && createdEnumTypes.indexOf(enumName) === -1) {
479
+ createdEnumTypes.push(enumName);
480
+ upQueries.push(this.createEnumTypeSql(table, column, enumName));
481
+ downQueries.push(this.dropEnumTypeSql(table, column, enumName));
482
+ }
483
+ _b.label = 6;
484
+ case 6:
485
+ enumColumns_1_1 = enumColumns_1.next();
486
+ return [3 /*break*/, 4];
487
+ case 7: return [3 /*break*/, 10];
488
+ case 8:
489
+ e_1_1 = _b.sent();
490
+ e_1 = { error: e_1_1 };
491
+ return [3 /*break*/, 10];
492
+ case 9:
493
+ try {
494
+ if (enumColumns_1_1 && !enumColumns_1_1.done && (_a = enumColumns_1.return)) _a.call(enumColumns_1);
495
+ }
496
+ finally { if (e_1) throw e_1.error; }
497
+ return [7 /*endfinally*/];
498
+ case 10:
441
499
  upQueries.push(this.createTableSql(table, createForeignKeys));
442
500
  downQueries.push(this.dropTableSql(table));
443
501
  // if createForeignKeys is true, we must drop created foreign keys in down query.
@@ -454,8 +512,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
454
512
  });
455
513
  }
456
514
  return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
457
- case 4:
458
- _a.sent();
515
+ case 11:
516
+ _b.sent();
459
517
  return [2 /*return*/];
460
518
  }
461
519
  });
@@ -573,8 +631,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
573
631
  */
574
632
  PostgresQueryRunner.prototype.renameTable = function (oldTableOrName, newTableName) {
575
633
  return tslib_1.__awaiter(this, void 0, void 0, function () {
576
- var upQueries, downQueries, oldTable, _a, newTable, oldTableName, schemaName, columnNames, oldPkName, newPkName, enumColumns, enumColumns_1, enumColumns_1_1, column, oldEnumType, e_1_1;
577
- var e_1, _b;
634
+ var upQueries, downQueries, oldTable, _a, newTable, oldTableName, schemaName, columnNames, oldPkName, newPkName, enumColumns, enumColumns_2, enumColumns_2_1, column, oldEnumType, e_2_1;
635
+ var e_2, _b;
578
636
  var _this = this;
579
637
  return tslib_1.__generator(this, function (_c) {
580
638
  switch (_c.label) {
@@ -604,6 +662,17 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
604
662
  upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(newTable) + " RENAME CONSTRAINT \"" + oldPkName + "\" TO \"" + newPkName + "\""));
605
663
  downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(newTable) + " RENAME CONSTRAINT \"" + newPkName + "\" TO \"" + oldPkName + "\""));
606
664
  }
665
+ // rename sequences
666
+ newTable.columns.map(function (col) {
667
+ if (col.isGenerated && col.generationStrategy === "increment") {
668
+ var seqName = _this.buildSequenceName(oldTable, col.name, undefined, true, true);
669
+ var newSeqName = _this.buildSequenceName(newTable, col.name, undefined, true, true);
670
+ var up = schemaName ? "ALTER SEQUENCE \"" + schemaName + "\".\"" + seqName + "\" RENAME TO \"" + newSeqName + "\"" : "ALTER SEQUENCE \"" + seqName + "\" RENAME TO \"" + newSeqName + "\"";
671
+ var down = schemaName ? "ALTER SEQUENCE \"" + schemaName + "\".\"" + newSeqName + "\" RENAME TO \"" + seqName + "\"" : "ALTER SEQUENCE \"" + newSeqName + "\" RENAME TO \"" + seqName + "\"";
672
+ upQueries.push(new Query_1.Query(up));
673
+ downQueries.push(new Query_1.Query(down));
674
+ }
675
+ });
607
676
  // rename unique constraints
608
677
  newTable.uniques.forEach(function (unique) {
609
678
  // build new constraint name
@@ -641,11 +710,11 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
641
710
  _c.label = 4;
642
711
  case 4:
643
712
  _c.trys.push([4, 9, 10, 11]);
644
- enumColumns_1 = tslib_1.__values(enumColumns), enumColumns_1_1 = enumColumns_1.next();
713
+ enumColumns_2 = tslib_1.__values(enumColumns), enumColumns_2_1 = enumColumns_2.next();
645
714
  _c.label = 5;
646
715
  case 5:
647
- if (!!enumColumns_1_1.done) return [3 /*break*/, 8];
648
- column = enumColumns_1_1.value;
716
+ if (!!enumColumns_2_1.done) return [3 /*break*/, 8];
717
+ column = enumColumns_2_1.value;
649
718
  return [4 /*yield*/, this.getEnumTypeName(oldTable, column)];
650
719
  case 6:
651
720
  oldEnumType = _c.sent();
@@ -653,18 +722,18 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
653
722
  downQueries.push(new Query_1.Query("ALTER TYPE " + this.buildEnumName(newTable, column) + " RENAME TO \"" + oldEnumType.enumTypeName + "\""));
654
723
  _c.label = 7;
655
724
  case 7:
656
- enumColumns_1_1 = enumColumns_1.next();
725
+ enumColumns_2_1 = enumColumns_2.next();
657
726
  return [3 /*break*/, 5];
658
727
  case 8: return [3 /*break*/, 11];
659
728
  case 9:
660
- e_1_1 = _c.sent();
661
- e_1 = { error: e_1_1 };
729
+ e_2_1 = _c.sent();
730
+ e_2 = { error: e_2_1 };
662
731
  return [3 /*break*/, 11];
663
732
  case 10:
664
733
  try {
665
- if (enumColumns_1_1 && !enumColumns_1_1.done && (_b = enumColumns_1.return)) _b.call(enumColumns_1);
734
+ if (enumColumns_2_1 && !enumColumns_2_1.done && (_b = enumColumns_2.return)) _b.call(enumColumns_2);
666
735
  }
667
- finally { if (e_1) throw e_1.error; }
736
+ finally { if (e_2) throw e_2.error; }
668
737
  return [7 /*endfinally*/];
669
738
  case 11: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
670
739
  case 12:
@@ -738,6 +807,11 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
738
807
  upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + uniqueConstraint.name + "\" UNIQUE (\"" + column.name + "\")"));
739
808
  downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + uniqueConstraint.name + "\""));
740
809
  }
810
+ // create column's comment
811
+ if (column.comment) {
812
+ upQueries.push(new Query_1.Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + column.name + "\" IS " + this.escapeComment(column.comment)));
813
+ downQueries.push(new Query_1.Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + column.name + "\" IS " + this.escapeComment(column.comment)));
814
+ }
741
815
  return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
742
816
  case 6:
743
817
  _b.sent();
@@ -753,8 +827,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
753
827
  */
754
828
  PostgresQueryRunner.prototype.addColumns = function (tableOrName, columns) {
755
829
  return tslib_1.__awaiter(this, void 0, void 0, function () {
756
- var columns_1, columns_1_1, column, e_2_1;
757
- var e_2, _a;
830
+ var columns_1, columns_1_1, column, e_3_1;
831
+ var e_3, _a;
758
832
  return tslib_1.__generator(this, function (_b) {
759
833
  switch (_b.label) {
760
834
  case 0:
@@ -773,14 +847,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
773
847
  return [3 /*break*/, 1];
774
848
  case 4: return [3 /*break*/, 7];
775
849
  case 5:
776
- e_2_1 = _b.sent();
777
- e_2 = { error: e_2_1 };
850
+ e_3_1 = _b.sent();
851
+ e_3 = { error: e_3_1 };
778
852
  return [3 /*break*/, 7];
779
853
  case 6:
780
854
  try {
781
855
  if (columns_1_1 && !columns_1_1.done && (_a = columns_1.return)) _a.call(columns_1);
782
856
  }
783
- finally { if (e_2) throw e_2.error; }
857
+ finally { if (e_3) throw e_3.error; }
784
858
  return [7 /*endfinally*/];
785
859
  case 7: return [2 /*return*/];
786
860
  }
@@ -825,7 +899,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
825
899
  */
826
900
  PostgresQueryRunner.prototype.changeColumn = function (tableOrName, oldTableColumnOrName, newColumn) {
827
901
  return tslib_1.__awaiter(this, void 0, void 0, function () {
828
- 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;
902
+ 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;
829
903
  var _this = this;
830
904
  return tslib_1.__generator(this, function (_b) {
831
905
  switch (_b.label) {
@@ -842,12 +916,13 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
842
916
  clonedTable = table.clone();
843
917
  upQueries = [];
844
918
  downQueries = [];
919
+ defaultValueChanged = false;
845
920
  oldColumn = oldTableColumnOrName instanceof TableColumn_1.TableColumn
846
921
  ? oldTableColumnOrName
847
922
  : table.columns.find(function (column) { return column.name === oldTableColumnOrName; });
848
923
  if (!oldColumn)
849
924
  throw new Error("Column \"" + oldTableColumnOrName + "\" was not found in the \"" + table.name + "\" table.");
850
- if (!(oldColumn.type !== newColumn.type || oldColumn.length !== newColumn.length)) return [3 /*break*/, 6];
925
+ if (!(oldColumn.type !== newColumn.type || oldColumn.length !== newColumn.length || newColumn.isArray !== oldColumn.isArray)) return [3 /*break*/, 6];
851
926
  // To avoid data conversion, we just recreate column
852
927
  return [4 /*yield*/, this.dropColumn(table, oldColumn)];
853
928
  case 4:
@@ -858,7 +933,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
858
933
  _b.sent();
859
934
  // update cloned table
860
935
  clonedTable = table.clone();
861
- return [3 /*break*/, 12];
936
+ return [3 /*break*/, 10];
862
937
  case 6:
863
938
  if (!(oldColumn.name !== newColumn.name)) return [3 /*break*/, 9];
864
939
  // rename column
@@ -942,42 +1017,42 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
942
1017
  upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + this.driver.createFullType(newColumn)));
943
1018
  downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + this.driver.createFullType(oldColumn)));
944
1019
  }
945
- if (!((newColumn.type === "enum" || newColumn.type === "simple-enum")
1020
+ if ((newColumn.type === "enum" || newColumn.type === "simple-enum")
946
1021
  && (oldColumn.type === "enum" || oldColumn.type === "simple-enum")
947
- && !OrmUtils_1.OrmUtils.isArraysEqual(newColumn.enum, oldColumn.enum))) return [3 /*break*/, 11];
948
- enumName = this.buildEnumName(table, newColumn);
949
- arraySuffix = newColumn.isArray ? "[]" : "";
950
- oldEnumName = this.buildEnumName(table, newColumn, true, false, true);
951
- oldEnumNameWithoutSchema = this.buildEnumName(table, newColumn, false, false, true);
952
- return [4 /*yield*/, this.getEnumTypeName(table, oldColumn)];
953
- case 10:
954
- enumTypeBeforeColumnChange = _b.sent();
955
- // rename old ENUM
956
- upQueries.push(new Query_1.Query("ALTER TYPE \"" + enumTypeBeforeColumnChange.enumTypeSchema + "\".\"" + enumTypeBeforeColumnChange.enumTypeName + "\" RENAME TO " + oldEnumNameWithoutSchema));
957
- downQueries.push(new Query_1.Query("ALTER TYPE " + oldEnumName + " RENAME TO \"" + enumTypeBeforeColumnChange.enumTypeName + "\""));
958
- // create new ENUM
959
- upQueries.push(this.createEnumTypeSql(table, newColumn));
960
- downQueries.push(this.dropEnumTypeSql(table, oldColumn));
961
- // if column have default value, we must drop it to avoid issues with type casting
962
- if (newColumn.default !== null && newColumn.default !== undefined) {
963
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" DROP DEFAULT"));
964
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" SET DEFAULT " + newColumn.default));
965
- }
966
- upType = "" + enumName + arraySuffix + " USING \"" + newColumn.name + "\"::\"text\"::" + enumName + arraySuffix;
967
- downType = "" + oldEnumName + arraySuffix + " USING \"" + newColumn.name + "\"::\"text\"::" + oldEnumName + arraySuffix;
968
- // update column to use new type
969
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + upType));
970
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + downType));
971
- // if column have default value and we dropped it before, we must bring it back
972
- if (newColumn.default !== null && newColumn.default !== undefined) {
973
- upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" SET DEFAULT " + newColumn.default));
974
- downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" DROP DEFAULT"));
1022
+ && (!OrmUtils_1.OrmUtils.isArraysEqual(newColumn.enum, oldColumn.enum) || newColumn.enumName !== oldColumn.enumName)) {
1023
+ arraySuffix = newColumn.isArray ? "[]" : "";
1024
+ newEnumName = this.buildEnumName(table, newColumn);
1025
+ oldEnumName = this.buildEnumName(table, oldColumn);
1026
+ oldEnumNameWithoutSchema = this.buildEnumName(table, oldColumn, false);
1027
+ oldEnumNameWithSchema_old = this.buildEnumName(table, oldColumn, true, false, true);
1028
+ oldEnumNameWithoutSchema_old = this.buildEnumName(table, oldColumn, false, false, true);
1029
+ // rename old ENUM
1030
+ upQueries.push(new Query_1.Query("ALTER TYPE " + oldEnumName + " RENAME TO " + oldEnumNameWithoutSchema_old));
1031
+ downQueries.push(new Query_1.Query("ALTER TYPE " + oldEnumNameWithSchema_old + " RENAME TO " + oldEnumNameWithoutSchema));
1032
+ // create new ENUM
1033
+ upQueries.push(this.createEnumTypeSql(table, newColumn, newEnumName));
1034
+ downQueries.push(this.dropEnumTypeSql(table, newColumn, newEnumName));
1035
+ // if column have default value, we must drop it to avoid issues with type casting
1036
+ if (oldColumn.default !== null && oldColumn.default !== undefined) {
1037
+ // mark default as changed to prevent double update
1038
+ defaultValueChanged = true;
1039
+ upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + oldColumn.name + "\" DROP DEFAULT"));
1040
+ downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + oldColumn.name + "\" SET DEFAULT " + oldColumn.default));
1041
+ }
1042
+ upType = "" + newEnumName + arraySuffix + " USING \"" + newColumn.name + "\"::\"text\"::" + newEnumName + arraySuffix;
1043
+ downType = "" + oldEnumNameWithSchema_old + arraySuffix + " USING \"" + newColumn.name + "\"::\"text\"::" + oldEnumNameWithSchema_old + arraySuffix;
1044
+ // update column to use new type
1045
+ upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + upType));
1046
+ downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + downType));
1047
+ // restore column default or create new one
1048
+ if (newColumn.default !== null && newColumn.default !== undefined) {
1049
+ upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" SET DEFAULT " + newColumn.default));
1050
+ downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" DROP DEFAULT"));
1051
+ }
1052
+ // remove old ENUM
1053
+ upQueries.push(this.dropEnumTypeSql(table, oldColumn, oldEnumNameWithSchema_old));
1054
+ downQueries.push(this.createEnumTypeSql(table, oldColumn, oldEnumNameWithSchema_old));
975
1055
  }
976
- // remove old ENUM
977
- upQueries.push(this.dropEnumTypeSql(table, newColumn, oldEnumName));
978
- downQueries.push(this.createEnumTypeSql(table, oldColumn, oldEnumName));
979
- _b.label = 11;
980
- case 11:
981
1056
  if (oldColumn.isNullable !== newColumn.isNullable) {
982
1057
  if (newColumn.isNullable) {
983
1058
  upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + oldColumn.name + "\" DROP NOT NULL"));
@@ -989,8 +1064,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
989
1064
  }
990
1065
  }
991
1066
  if (oldColumn.comment !== newColumn.comment) {
992
- upQueries.push(new Query_1.Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + oldColumn.name + "\" IS '" + newColumn.comment + "'"));
993
- downQueries.push(new Query_1.Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + newColumn.name + "\" IS '" + oldColumn.comment + "'"));
1067
+ upQueries.push(new Query_1.Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + oldColumn.name + "\" IS " + this.escapeComment(newColumn.comment)));
1068
+ downQueries.push(new Query_1.Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + newColumn.name + "\" IS " + this.escapeComment(oldColumn.comment)));
994
1069
  }
995
1070
  if (newColumn.isPrimary !== oldColumn.isPrimary) {
996
1071
  primaryColumns = clonedTable.primaryColumns;
@@ -1057,7 +1132,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1057
1132
  downQueries.push(new Query_1.Query("CREATE SEQUENCE " + this.buildSequenceName(table, newColumn) + " OWNED BY " + this.escapePath(table) + ".\"" + newColumn.name + "\""));
1058
1133
  }
1059
1134
  }
1060
- if (newColumn.default !== oldColumn.default) {
1135
+ // the default might have changed when the enum changed
1136
+ if (newColumn.default !== oldColumn.default && !defaultValueChanged) {
1061
1137
  if (newColumn.default !== null && newColumn.default !== undefined) {
1062
1138
  upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" SET DEFAULT " + newColumn.default));
1063
1139
  if (oldColumn.default !== null && oldColumn.default !== undefined) {
@@ -1076,9 +1152,9 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1076
1152
  upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + this.driver.createFullType(newColumn)));
1077
1153
  downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ALTER COLUMN \"" + newColumn.name + "\" TYPE " + this.driver.createFullType(oldColumn)));
1078
1154
  }
1079
- _b.label = 12;
1080
- case 12: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
1081
- case 13:
1155
+ _b.label = 10;
1156
+ case 10: return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
1157
+ case 11:
1082
1158
  _b.sent();
1083
1159
  this.replaceCachedTable(table, clonedTable);
1084
1160
  return [2 /*return*/];
@@ -1091,8 +1167,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1091
1167
  */
1092
1168
  PostgresQueryRunner.prototype.changeColumns = function (tableOrName, changedColumns) {
1093
1169
  return tslib_1.__awaiter(this, void 0, void 0, function () {
1094
- var changedColumns_1, changedColumns_1_1, _a, oldColumn, newColumn, e_3_1;
1095
- var e_3, _b;
1170
+ var changedColumns_1, changedColumns_1_1, _a, oldColumn, newColumn, e_4_1;
1171
+ var e_4, _b;
1096
1172
  return tslib_1.__generator(this, function (_c) {
1097
1173
  switch (_c.label) {
1098
1174
  case 0:
@@ -1111,14 +1187,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1111
1187
  return [3 /*break*/, 1];
1112
1188
  case 4: return [3 /*break*/, 7];
1113
1189
  case 5:
1114
- e_3_1 = _c.sent();
1115
- e_3 = { error: e_3_1 };
1190
+ e_4_1 = _c.sent();
1191
+ e_4 = { error: e_4_1 };
1116
1192
  return [3 /*break*/, 7];
1117
1193
  case 6:
1118
1194
  try {
1119
1195
  if (changedColumns_1_1 && !changedColumns_1_1.done && (_b = changedColumns_1.return)) _b.call(changedColumns_1);
1120
1196
  }
1121
- finally { if (e_3) throw e_3.error; }
1197
+ finally { if (e_4) throw e_4.error; }
1122
1198
  return [7 /*endfinally*/];
1123
1199
  case 7: return [2 /*return*/];
1124
1200
  }
@@ -1212,8 +1288,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1212
1288
  */
1213
1289
  PostgresQueryRunner.prototype.dropColumns = function (tableOrName, columns) {
1214
1290
  return tslib_1.__awaiter(this, void 0, void 0, function () {
1215
- var columns_2, columns_2_1, column, e_4_1;
1216
- var e_4, _a;
1291
+ var columns_2, columns_2_1, column, e_5_1;
1292
+ var e_5, _a;
1217
1293
  return tslib_1.__generator(this, function (_b) {
1218
1294
  switch (_b.label) {
1219
1295
  case 0:
@@ -1232,14 +1308,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1232
1308
  return [3 /*break*/, 1];
1233
1309
  case 4: return [3 /*break*/, 7];
1234
1310
  case 5:
1235
- e_4_1 = _b.sent();
1236
- e_4 = { error: e_4_1 };
1311
+ e_5_1 = _b.sent();
1312
+ e_5 = { error: e_5_1 };
1237
1313
  return [3 /*break*/, 7];
1238
1314
  case 6:
1239
1315
  try {
1240
1316
  if (columns_2_1 && !columns_2_1.done && (_a = columns_2.return)) _a.call(columns_2);
1241
1317
  }
1242
- finally { if (e_4) throw e_4.error; }
1318
+ finally { if (e_5) throw e_5.error; }
1243
1319
  return [7 /*endfinally*/];
1244
1320
  case 7: return [2 /*return*/];
1245
1321
  }
@@ -1395,8 +1471,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1395
1471
  */
1396
1472
  PostgresQueryRunner.prototype.createUniqueConstraints = function (tableOrName, uniqueConstraints) {
1397
1473
  return tslib_1.__awaiter(this, void 0, void 0, function () {
1398
- var uniqueConstraints_1, uniqueConstraints_1_1, uniqueConstraint, e_5_1;
1399
- var e_5, _a;
1474
+ var uniqueConstraints_1, uniqueConstraints_1_1, uniqueConstraint, e_6_1;
1475
+ var e_6, _a;
1400
1476
  return tslib_1.__generator(this, function (_b) {
1401
1477
  switch (_b.label) {
1402
1478
  case 0:
@@ -1415,14 +1491,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1415
1491
  return [3 /*break*/, 1];
1416
1492
  case 4: return [3 /*break*/, 7];
1417
1493
  case 5:
1418
- e_5_1 = _b.sent();
1419
- e_5 = { error: e_5_1 };
1494
+ e_6_1 = _b.sent();
1495
+ e_6 = { error: e_6_1 };
1420
1496
  return [3 /*break*/, 7];
1421
1497
  case 6:
1422
1498
  try {
1423
1499
  if (uniqueConstraints_1_1 && !uniqueConstraints_1_1.done && (_a = uniqueConstraints_1.return)) _a.call(uniqueConstraints_1);
1424
1500
  }
1425
- finally { if (e_5) throw e_5.error; }
1501
+ finally { if (e_6) throw e_6.error; }
1426
1502
  return [7 /*endfinally*/];
1427
1503
  case 7: return [2 /*return*/];
1428
1504
  }
@@ -1466,8 +1542,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1466
1542
  */
1467
1543
  PostgresQueryRunner.prototype.dropUniqueConstraints = function (tableOrName, uniqueConstraints) {
1468
1544
  return tslib_1.__awaiter(this, void 0, void 0, function () {
1469
- var uniqueConstraints_2, uniqueConstraints_2_1, uniqueConstraint, e_6_1;
1470
- var e_6, _a;
1545
+ var uniqueConstraints_2, uniqueConstraints_2_1, uniqueConstraint, e_7_1;
1546
+ var e_7, _a;
1471
1547
  return tslib_1.__generator(this, function (_b) {
1472
1548
  switch (_b.label) {
1473
1549
  case 0:
@@ -1486,14 +1562,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1486
1562
  return [3 /*break*/, 1];
1487
1563
  case 4: return [3 /*break*/, 7];
1488
1564
  case 5:
1489
- e_6_1 = _b.sent();
1490
- e_6 = { error: e_6_1 };
1565
+ e_7_1 = _b.sent();
1566
+ e_7 = { error: e_7_1 };
1491
1567
  return [3 /*break*/, 7];
1492
1568
  case 6:
1493
1569
  try {
1494
1570
  if (uniqueConstraints_2_1 && !uniqueConstraints_2_1.done && (_a = uniqueConstraints_2.return)) _a.call(uniqueConstraints_2);
1495
1571
  }
1496
- finally { if (e_6) throw e_6.error; }
1572
+ finally { if (e_7) throw e_7.error; }
1497
1573
  return [7 /*endfinally*/];
1498
1574
  case 7: return [2 /*return*/];
1499
1575
  }
@@ -1741,8 +1817,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1741
1817
  */
1742
1818
  PostgresQueryRunner.prototype.createForeignKeys = function (tableOrName, foreignKeys) {
1743
1819
  return tslib_1.__awaiter(this, void 0, void 0, function () {
1744
- var foreignKeys_1, foreignKeys_1_1, foreignKey, e_7_1;
1745
- var e_7, _a;
1820
+ var foreignKeys_1, foreignKeys_1_1, foreignKey, e_8_1;
1821
+ var e_8, _a;
1746
1822
  return tslib_1.__generator(this, function (_b) {
1747
1823
  switch (_b.label) {
1748
1824
  case 0:
@@ -1761,14 +1837,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1761
1837
  return [3 /*break*/, 1];
1762
1838
  case 4: return [3 /*break*/, 7];
1763
1839
  case 5:
1764
- e_7_1 = _b.sent();
1765
- e_7 = { error: e_7_1 };
1840
+ e_8_1 = _b.sent();
1841
+ e_8 = { error: e_8_1 };
1766
1842
  return [3 /*break*/, 7];
1767
1843
  case 6:
1768
1844
  try {
1769
1845
  if (foreignKeys_1_1 && !foreignKeys_1_1.done && (_a = foreignKeys_1.return)) _a.call(foreignKeys_1);
1770
1846
  }
1771
- finally { if (e_7) throw e_7.error; }
1847
+ finally { if (e_8) throw e_8.error; }
1772
1848
  return [7 /*endfinally*/];
1773
1849
  case 7: return [2 /*return*/];
1774
1850
  }
@@ -1812,8 +1888,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1812
1888
  */
1813
1889
  PostgresQueryRunner.prototype.dropForeignKeys = function (tableOrName, foreignKeys) {
1814
1890
  return tslib_1.__awaiter(this, void 0, void 0, function () {
1815
- var foreignKeys_2, foreignKeys_2_1, foreignKey, e_8_1;
1816
- var e_8, _a;
1891
+ var foreignKeys_2, foreignKeys_2_1, foreignKey, e_9_1;
1892
+ var e_9, _a;
1817
1893
  return tslib_1.__generator(this, function (_b) {
1818
1894
  switch (_b.label) {
1819
1895
  case 0:
@@ -1832,14 +1908,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1832
1908
  return [3 /*break*/, 1];
1833
1909
  case 4: return [3 /*break*/, 7];
1834
1910
  case 5:
1835
- e_8_1 = _b.sent();
1836
- e_8 = { error: e_8_1 };
1911
+ e_9_1 = _b.sent();
1912
+ e_9 = { error: e_9_1 };
1837
1913
  return [3 /*break*/, 7];
1838
1914
  case 6:
1839
1915
  try {
1840
1916
  if (foreignKeys_2_1 && !foreignKeys_2_1.done && (_a = foreignKeys_2.return)) _a.call(foreignKeys_2);
1841
1917
  }
1842
- finally { if (e_8) throw e_8.error; }
1918
+ finally { if (e_9) throw e_9.error; }
1843
1919
  return [7 /*endfinally*/];
1844
1920
  case 7: return [2 /*return*/];
1845
1921
  }
@@ -1883,8 +1959,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1883
1959
  */
1884
1960
  PostgresQueryRunner.prototype.createIndices = function (tableOrName, indices) {
1885
1961
  return tslib_1.__awaiter(this, void 0, void 0, function () {
1886
- var indices_1, indices_1_1, index, e_9_1;
1887
- var e_9, _a;
1962
+ var indices_1, indices_1_1, index, e_10_1;
1963
+ var e_10, _a;
1888
1964
  return tslib_1.__generator(this, function (_b) {
1889
1965
  switch (_b.label) {
1890
1966
  case 0:
@@ -1903,14 +1979,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1903
1979
  return [3 /*break*/, 1];
1904
1980
  case 4: return [3 /*break*/, 7];
1905
1981
  case 5:
1906
- e_9_1 = _b.sent();
1907
- e_9 = { error: e_9_1 };
1982
+ e_10_1 = _b.sent();
1983
+ e_10 = { error: e_10_1 };
1908
1984
  return [3 /*break*/, 7];
1909
1985
  case 6:
1910
1986
  try {
1911
1987
  if (indices_1_1 && !indices_1_1.done && (_a = indices_1.return)) _a.call(indices_1);
1912
1988
  }
1913
- finally { if (e_9) throw e_9.error; }
1989
+ finally { if (e_10) throw e_10.error; }
1914
1990
  return [7 /*endfinally*/];
1915
1991
  case 7: return [2 /*return*/];
1916
1992
  }
@@ -1954,8 +2030,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1954
2030
  */
1955
2031
  PostgresQueryRunner.prototype.dropIndices = function (tableOrName, indices) {
1956
2032
  return tslib_1.__awaiter(this, void 0, void 0, function () {
1957
- var indices_2, indices_2_1, index, e_10_1;
1958
- var e_10, _a;
2033
+ var indices_2, indices_2_1, index, e_11_1;
2034
+ var e_11, _a;
1959
2035
  return tslib_1.__generator(this, function (_b) {
1960
2036
  switch (_b.label) {
1961
2037
  case 0:
@@ -1974,14 +2050,14 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
1974
2050
  return [3 /*break*/, 1];
1975
2051
  case 4: return [3 /*break*/, 7];
1976
2052
  case 5:
1977
- e_10_1 = _b.sent();
1978
- e_10 = { error: e_10_1 };
2053
+ e_11_1 = _b.sent();
2054
+ e_11 = { error: e_11_1 };
1979
2055
  return [3 /*break*/, 7];
1980
2056
  case 6:
1981
2057
  try {
1982
2058
  if (indices_2_1 && !indices_2_1.done && (_a = indices_2.return)) _a.call(indices_2);
1983
2059
  }
1984
- finally { if (e_10) throw e_10.error; }
2060
+ finally { if (e_11) throw e_11.error; }
1985
2061
  return [7 /*endfinally*/];
1986
2062
  case 7: return [2 /*return*/];
1987
2063
  }
@@ -2119,7 +2195,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2119
2195
  */
2120
2196
  PostgresQueryRunner.prototype.loadTables = function (tableNames) {
2121
2197
  return tslib_1.__awaiter(this, void 0, void 0, function () {
2122
- var currentSchemaQuery, currentSchema, tablesCondition, tablesSql, columnsSql, constraintsCondition, constraintsSql, indicesSql, foreignKeysCondition, foreignKeysSql, _a, dbTables, dbColumns, dbConstraints, dbIndices, dbForeignKeys;
2198
+ var currentSchemaQuery, currentSchema, tablesCondition, tablesSql, columnsSql, constraintsCondition, constraintsSql, indicesSql, foreignKeysCondition, hasRelispartitionColumn, isPartitionCondition, foreignKeysSql, _a, dbTables, dbColumns, dbConstraints, dbIndices, dbForeignKeys;
2123
2199
  var _this = this;
2124
2200
  return tslib_1.__generator(this, function (_b) {
2125
2201
  switch (_b.label) {
@@ -2140,7 +2216,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2140
2216
  return "(\"table_schema\" = '" + schema + "' AND \"table_name\" = '" + name + "')";
2141
2217
  }).join(" OR ");
2142
2218
  tablesSql = "SELECT * FROM \"information_schema\".\"tables\" WHERE " + tablesCondition;
2143
- columnsSql = "SELECT *, ('\"' || \"udt_schema\" || '\".\"' || \"udt_name\" || '\"')::\"regtype\" AS \"regtype\" FROM \"information_schema\".\"columns\" WHERE " + tablesCondition;
2219
+ 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;
2144
2220
  constraintsCondition = tableNames.map(function (tableName) {
2145
2221
  var _a = tslib_1.__read(tableName.split("."), 2), schema = _a[0], name = _a[1];
2146
2222
  if (!name) {
@@ -2156,7 +2232,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2156
2232
  "INNER JOIN \"pg_class\" \"t\" ON \"t\".\"oid\" = \"cnst\".\"conrelid\" " +
2157
2233
  "INNER JOIN \"pg_namespace\" \"ns\" ON \"ns\".\"oid\" = \"cnst\".\"connamespace\" " +
2158
2234
  "LEFT JOIN \"pg_attribute\" \"a\" ON \"a\".\"attrelid\" = \"cnst\".\"conrelid\" AND \"a\".\"attnum\" = ANY (\"cnst\".\"conkey\") " +
2159
- ("WHERE \"t\".\"relkind\" = 'r' AND (" + constraintsCondition + ")");
2235
+ ("WHERE \"t\".\"relkind\" IN ('r', 'p') AND (" + constraintsCondition + ")");
2160
2236
  indicesSql = "SELECT \"ns\".\"nspname\" AS \"table_schema\", \"t\".\"relname\" AS \"table_name\", \"i\".\"relname\" AS \"constraint_name\", \"a\".\"attname\" AS \"column_name\", " +
2161
2237
  "CASE \"ix\".\"indisunique\" WHEN 't' THEN 'TRUE' ELSE'FALSE' END AS \"is_unique\", pg_get_expr(\"ix\".\"indpred\", \"ix\".\"indrelid\") AS \"condition\", " +
2162
2238
  "\"types\".\"typname\" AS \"type_name\" " +
@@ -2167,7 +2243,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2167
2243
  "INNER JOIN \"pg_class\" \"i\" ON \"i\".\"oid\" = \"ix\".\"indexrelid\" " +
2168
2244
  "INNER JOIN \"pg_type\" \"types\" ON \"types\".\"oid\" = \"a\".\"atttypid\" " +
2169
2245
  "LEFT JOIN \"pg_constraint\" \"cnst\" ON \"cnst\".\"conname\" = \"i\".\"relname\" " +
2170
- ("WHERE \"t\".\"relkind\" = 'r' AND \"cnst\".\"contype\" IS NULL AND (" + constraintsCondition + ")");
2246
+ ("WHERE \"t\".\"relkind\" IN ('r', 'p') AND \"cnst\".\"contype\" IS NULL AND (" + constraintsCondition + ")");
2171
2247
  foreignKeysCondition = tableNames.map(function (tableName) {
2172
2248
  var _a = tslib_1.__read(tableName.split("."), 2), schema = _a[0], name = _a[1];
2173
2249
  if (!name) {
@@ -2176,6 +2252,10 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2176
2252
  }
2177
2253
  return "(\"ns\".\"nspname\" = '" + schema + "' AND \"cl\".\"relname\" = '" + name + "')";
2178
2254
  }).join(" OR ");
2255
+ return [4 /*yield*/, this.hasSupportForPartitionedTables()];
2256
+ case 2:
2257
+ hasRelispartitionColumn = _b.sent();
2258
+ isPartitionCondition = hasRelispartitionColumn ? " AND \"cl\".\"relispartition\" = 'f'" : "";
2179
2259
  foreignKeysSql = "SELECT \"con\".\"conname\" AS \"constraint_name\", \"con\".\"nspname\" AS \"table_schema\", \"con\".\"relname\" AS \"table_name\", \"att2\".\"attname\" AS \"column_name\", " +
2180
2260
  "\"ns\".\"nspname\" AS \"referenced_table_schema\", \"cl\".\"relname\" AS \"referenced_table_name\", \"att\".\"attname\" AS \"referenced_column_name\", \"con\".\"confdeltype\" AS \"on_delete\", " +
2181
2261
  "\"con\".\"confupdtype\" AS \"on_update\", \"con\".\"condeferrable\" AS \"deferrable\", \"con\".\"condeferred\" AS \"deferred\" " +
@@ -2191,7 +2271,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2191
2271
  ("WHERE \"con1\".\"contype\" = 'f' AND (" + foreignKeysCondition + ") ") +
2192
2272
  ") \"con\" " +
2193
2273
  "INNER JOIN \"pg_attribute\" \"att\" ON \"att\".\"attrelid\" = \"con\".\"confrelid\" AND \"att\".\"attnum\" = \"con\".\"child\" " +
2194
- "INNER JOIN \"pg_class\" \"cl\" ON \"cl\".\"oid\" = \"con\".\"confrelid\" " +
2274
+ ("INNER JOIN \"pg_class\" \"cl\" ON \"cl\".\"oid\" = \"con\".\"confrelid\" " + isPartitionCondition) +
2195
2275
  "INNER JOIN \"pg_namespace\" \"ns\" ON \"cl\".\"relnamespace\" = \"ns\".\"oid\" " +
2196
2276
  "INNER JOIN \"pg_attribute\" \"att2\" ON \"att2\".\"attrelid\" = \"con\".\"conrelid\" AND \"att2\".\"attnum\" = \"con\".\"parent\"";
2197
2277
  return [4 /*yield*/, Promise.all([
@@ -2201,7 +2281,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2201
2281
  this.query(indicesSql),
2202
2282
  this.query(foreignKeysSql),
2203
2283
  ])];
2204
- case 2:
2284
+ case 3:
2205
2285
  _a = tslib_1.__read.apply(void 0, [_b.sent(), 5]), dbTables = _a[0], dbColumns = _a[1], dbConstraints = _a[2], dbIndices = _a[3], dbForeignKeys = _a[4];
2206
2286
  // if tables were not found in the db, no need to proceed
2207
2287
  if (!dbTables.length)
@@ -2223,7 +2303,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2223
2303
  return [4 /*yield*/, Promise.all(dbColumns
2224
2304
  .filter(function (dbColumn) { return _this.driver.buildTableName(dbColumn["table_name"], dbColumn["table_schema"]) === tableFullName; })
2225
2305
  .map(function (dbColumn) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
2226
- var columnConstraints, tableColumn, type, sql, results, geometryColumnSql, results, geographyColumnSql, results, length, uniqueConstraint, isConstraintComposite;
2306
+ var columnConstraints, tableColumn, type, enumTypeName, builtEnumName, sql, results, geometryColumnSql, results, geographyColumnSql, results, length, match, uniqueConstraint, isConstraintComposite;
2227
2307
  var _this = this;
2228
2308
  return tslib_1.__generator(this, function (_a) {
2229
2309
  switch (_a.label) {
@@ -2262,40 +2342,55 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2262
2342
  || tableColumn.type === "timestamp with time zone") {
2263
2343
  tableColumn.precision = !this.isDefaultColumnPrecision(table, tableColumn, dbColumn["datetime_precision"]) ? dbColumn["datetime_precision"] : undefined;
2264
2344
  }
2265
- if (!(tableColumn.type.indexOf("enum") !== -1)) return [3 /*break*/, 2];
2345
+ if (!(tableColumn.type.indexOf("enum") !== -1)) return [3 /*break*/, 3];
2346
+ return [4 /*yield*/, this.getEnumTypeName(table, tableColumn)];
2347
+ case 1:
2348
+ enumTypeName = (_a.sent()).enumTypeName;
2349
+ builtEnumName = this.buildEnumName(table, tableColumn, false, true);
2350
+ if (builtEnumName !== enumTypeName)
2351
+ tableColumn.enumName = enumTypeName;
2266
2352
  tableColumn.type = "enum";
2267
2353
  sql = "SELECT \"e\".\"enumlabel\" AS \"value\" FROM \"pg_enum\" \"e\" " +
2268
2354
  "INNER JOIN \"pg_type\" \"t\" ON \"t\".\"oid\" = \"e\".\"enumtypid\" " +
2269
2355
  "INNER JOIN \"pg_namespace\" \"n\" ON \"n\".\"oid\" = \"t\".\"typnamespace\" " +
2270
- ("WHERE \"n\".\"nspname\" = '" + dbTable["table_schema"] + "' AND \"t\".\"typname\" = '" + this.buildEnumName(table, tableColumn.name, false, true) + "'");
2356
+ ("WHERE \"n\".\"nspname\" = '" + dbTable["table_schema"] + "' AND \"t\".\"typname\" = '" + this.buildEnumName(table, tableColumn, false, true) + "'");
2271
2357
  return [4 /*yield*/, this.query(sql)];
2272
- case 1:
2358
+ case 2:
2273
2359
  results = _a.sent();
2274
2360
  tableColumn.enum = results.map(function (result) { return result["value"]; });
2275
- _a.label = 2;
2276
- case 2:
2277
- if (!(tableColumn.type === "geometry")) return [3 /*break*/, 4];
2361
+ _a.label = 3;
2362
+ case 3:
2363
+ if (!(tableColumn.type === "geometry")) return [3 /*break*/, 5];
2278
2364
  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"] + "'";
2279
2365
  return [4 /*yield*/, this.query(geometryColumnSql)];
2280
- case 3:
2366
+ case 4:
2281
2367
  results = _a.sent();
2282
2368
  tableColumn.spatialFeatureType = results[0].type;
2283
2369
  tableColumn.srid = results[0].srid;
2284
- _a.label = 4;
2285
- case 4:
2286
- if (!(tableColumn.type === "geography")) return [3 /*break*/, 6];
2370
+ _a.label = 5;
2371
+ case 5:
2372
+ if (!(tableColumn.type === "geography")) return [3 /*break*/, 7];
2287
2373
  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"] + "'";
2288
2374
  return [4 /*yield*/, this.query(geographyColumnSql)];
2289
- case 5:
2375
+ case 6:
2290
2376
  results = _a.sent();
2291
2377
  tableColumn.spatialFeatureType = results[0].type;
2292
2378
  tableColumn.srid = results[0].srid;
2293
- _a.label = 6;
2294
- case 6:
2379
+ _a.label = 7;
2380
+ case 7:
2295
2381
  // check only columns that have length property
2296
- if (this.driver.withLengthColumnTypes.indexOf(tableColumn.type) !== -1 && dbColumn["character_maximum_length"]) {
2297
- length = dbColumn["character_maximum_length"].toString();
2298
- tableColumn.length = !this.isDefaultColumnLength(table, tableColumn, length) ? length : "";
2382
+ if (this.driver.withLengthColumnTypes.indexOf(tableColumn.type) !== -1) {
2383
+ length = void 0;
2384
+ if (tableColumn.isArray) {
2385
+ match = /\((\d+)\)/.exec(dbColumn["format_type"]);
2386
+ length = match ? match[1] : undefined;
2387
+ }
2388
+ else if (dbColumn["character_maximum_length"]) {
2389
+ length = dbColumn["character_maximum_length"].toString();
2390
+ }
2391
+ if (length) {
2392
+ tableColumn.length = !this.isDefaultColumnLength(table, tableColumn, length) ? length : "";
2393
+ }
2299
2394
  }
2300
2395
  tableColumn.isNullable = dbColumn["is_nullable"] === "YES";
2301
2396
  tableColumn.isPrimary = !!columnConstraints.find(function (constraint) { return constraint["constraint_type"] === "PRIMARY"; });
@@ -2317,9 +2412,10 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2317
2412
  }
2318
2413
  else {
2319
2414
  tableColumn.default = dbColumn["column_default"].replace(/::.*/, "");
2415
+ tableColumn.default = tableColumn.default.replace(/^(-?\d+)$/, "'$1'");
2320
2416
  }
2321
2417
  }
2322
- tableColumn.comment = ""; // dbColumn["COLUMN_COMMENT"];
2418
+ tableColumn.comment = dbColumn["description"] ? dbColumn["description"] : undefined;
2323
2419
  if (dbColumn["character_set_name"])
2324
2420
  tableColumn.charset = dbColumn["character_set_name"];
2325
2421
  if (dbColumn["collation_name"])
@@ -2472,6 +2568,9 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2472
2568
  sql += ", CONSTRAINT \"" + primaryKeyName + "\" PRIMARY KEY (" + columnNames + ")";
2473
2569
  }
2474
2570
  sql += ")";
2571
+ table.columns
2572
+ .filter(function (it) { return it.comment; })
2573
+ .forEach(function (it) { return sql += "; COMMENT ON COLUMN " + _this.escapePath(table) + ".\"" + it.name + "\" IS " + _this.escapeComment(it.comment); });
2475
2574
  return new Query_1.Query(sql);
2476
2575
  };
2477
2576
  /**
@@ -2734,31 +2833,26 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2734
2833
  schema = table.name.split(".")[0];
2735
2834
  tableName = table.name.split(".")[1];
2736
2835
  }
2836
+ var seqName = tableName + "_" + columnName + "_seq";
2837
+ if (seqName.length > this.connection.driver.maxAliasLength) // note doesn't yet handle corner cases where .length differs from number of UTF-8 bytes
2838
+ seqName = tableName.substring(0, 29) + "_" + columnName.substring(0, Math.max(29, 63 - tableName.length - 5)) + "_seq";
2737
2839
  if (schema && schema !== currentSchema && !skipSchema) {
2738
- return disableEscape ? schema + "." + tableName + "_" + columnName + "_seq" : "\"" + schema + "\".\"" + tableName + "_" + columnName + "_seq\"";
2840
+ return disableEscape ? schema + "." + seqName : "\"" + schema + "\".\"" + seqName + "\"";
2739
2841
  }
2740
2842
  else {
2741
- return disableEscape ? tableName + "_" + columnName + "_seq" : "\"" + tableName + "_" + columnName + "_seq\"";
2843
+ return disableEscape ? "" + seqName : "\"" + seqName + "\"";
2742
2844
  }
2743
2845
  };
2744
2846
  /**
2745
2847
  * Builds ENUM type name from given table and column.
2746
2848
  */
2747
- PostgresQueryRunner.prototype.buildEnumName = function (table, columnOrName, withSchema, disableEscape, toOld) {
2849
+ PostgresQueryRunner.prototype.buildEnumName = function (table, column, withSchema, disableEscape, toOld) {
2748
2850
  if (withSchema === void 0) { withSchema = true; }
2749
- /**
2750
- * If enumName is specified in column options then use it instead
2751
- */
2752
- if (columnOrName instanceof TableColumn_1.TableColumn && columnOrName.enumName) {
2753
- var enumName_1 = columnOrName.enumName;
2754
- if (toOld)
2755
- enumName_1 = enumName_1 + "_old";
2756
- return disableEscape ? enumName_1 : "\"" + enumName_1 + "\"";
2757
- }
2758
- var columnName = columnOrName instanceof TableColumn_1.TableColumn ? columnOrName.name : columnOrName;
2759
2851
  var schema = table.name.indexOf(".") === -1 ? this.driver.options.schema : table.name.split(".")[0];
2760
2852
  var tableName = table.name.indexOf(".") === -1 ? table.name : table.name.split(".")[1];
2761
- var enumName = schema && withSchema ? schema + "." + tableName + "_" + columnName.toLowerCase() + "_enum" : tableName + "_" + columnName.toLowerCase() + "_enum";
2853
+ var enumName = column.enumName ? column.enumName : tableName + "_" + column.name.toLowerCase() + "_enum";
2854
+ if (schema && withSchema)
2855
+ enumName = schema + "." + enumName;
2762
2856
  if (toOld)
2763
2857
  enumName = enumName + "_old";
2764
2858
  return enumName.split(".").map(function (i) {
@@ -2767,7 +2861,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2767
2861
  };
2768
2862
  PostgresQueryRunner.prototype.getEnumTypeName = function (table, column) {
2769
2863
  return tslib_1.__awaiter(this, void 0, void 0, function () {
2770
- var currentSchemaQuery, currentSchema, _a, schema, name, result;
2864
+ var currentSchemaQuery, currentSchema, _a, schema, name, result, udtName;
2771
2865
  return tslib_1.__generator(this, function (_b) {
2772
2866
  switch (_b.label) {
2773
2867
  case 0: return [4 /*yield*/, this.query("SELECT * FROM current_schema()")];
@@ -2783,14 +2877,30 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2783
2877
  ("FROM \"information_schema\".\"columns\" WHERE \"table_schema\" = '" + schema + "' AND \"table_name\" = '" + name + "' AND \"column_name\"='" + column.name + "'"))];
2784
2878
  case 2:
2785
2879
  result = _b.sent();
2880
+ udtName = result[0]["udt_name"];
2881
+ if (udtName.indexOf("_") === 0) {
2882
+ udtName = udtName.substr(1, udtName.length);
2883
+ }
2786
2884
  return [2 /*return*/, {
2787
2885
  enumTypeSchema: result[0]["udt_schema"],
2788
- enumTypeName: result[0]["udt_name"]
2886
+ enumTypeName: udtName
2789
2887
  }];
2790
2888
  }
2791
2889
  });
2792
2890
  });
2793
2891
  };
2892
+ /**
2893
+ * Escapes a given comment so it's safe to include in a query.
2894
+ */
2895
+ PostgresQueryRunner.prototype.escapeComment = function (comment) {
2896
+ if (!comment || comment.length === 0) {
2897
+ return "NULL";
2898
+ }
2899
+ comment = comment
2900
+ .replace(/'/g, "''")
2901
+ .replace("\0", ""); // Null bytes aren't allowed in comments
2902
+ return "'" + comment + "'";
2903
+ };
2794
2904
  /**
2795
2905
  * Escapes given table or view path.
2796
2906
  */
@@ -2852,6 +2962,22 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
2852
2962
  c += " DEFAULT " + this.driver.uuidGenerator;
2853
2963
  return c;
2854
2964
  };
2965
+ /**
2966
+ * Checks if the PostgreSQL server has support for partitioned tables
2967
+ */
2968
+ PostgresQueryRunner.prototype.hasSupportForPartitionedTables = function () {
2969
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
2970
+ var result;
2971
+ return tslib_1.__generator(this, function (_a) {
2972
+ switch (_a.label) {
2973
+ case 0: return [4 /*yield*/, this.query("SELECT TRUE FROM information_schema.columns WHERE table_name = 'pg_class' and column_name = 'relispartition'")];
2974
+ case 1:
2975
+ result = _a.sent();
2976
+ return [2 /*return*/, result.length ? true : false];
2977
+ }
2978
+ });
2979
+ });
2980
+ };
2855
2981
  return PostgresQueryRunner;
2856
2982
  }(BaseQueryRunner_1.BaseQueryRunner));
2857
2983
  exports.PostgresQueryRunner = PostgresQueryRunner;