typeorm 0.3.18-dev.fdb9866 → 0.3.18

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 (269) hide show
  1. package/browser/cache/DbQueryResultCache.js +3 -0
  2. package/browser/cache/DbQueryResultCache.js.map +1 -1
  3. package/browser/data-source/BaseDataSourceOptions.d.ts +4 -0
  4. package/browser/data-source/BaseDataSourceOptions.js.map +1 -1
  5. package/browser/data-source/DataSource.js +3 -0
  6. package/browser/data-source/DataSource.js.map +1 -1
  7. package/browser/decorator/entity/Entity.js +1 -0
  8. package/browser/decorator/entity/Entity.js.map +1 -1
  9. package/browser/decorator/options/EntityOptions.d.ts +4 -0
  10. package/browser/decorator/options/EntityOptions.js.map +1 -1
  11. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +4 -0
  12. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +15 -6
  13. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  14. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +5 -0
  15. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js +16 -6
  16. package/browser/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  17. package/browser/driver/capacitor/CapacitorDriver.js +2 -2
  18. package/browser/driver/capacitor/CapacitorDriver.js.map +1 -1
  19. package/browser/driver/capacitor/CapacitorQueryRunner.js +2 -2
  20. package/browser/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  21. package/browser/driver/cockroachdb/CockroachDriver.js +20 -10
  22. package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
  23. package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +10 -1
  24. package/browser/driver/cockroachdb/CockroachQueryRunner.js +55 -19
  25. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  26. package/browser/driver/cordova/CordovaDriver.js +2 -2
  27. package/browser/driver/cordova/CordovaDriver.js.map +1 -1
  28. package/browser/driver/cordova/CordovaQueryRunner.js +8 -0
  29. package/browser/driver/cordova/CordovaQueryRunner.js.map +1 -1
  30. package/browser/driver/expo/ExpoQueryRunner.js +9 -2
  31. package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
  32. package/browser/driver/mongodb/MongoQueryRunner.d.ts +4 -0
  33. package/browser/driver/mongodb/MongoQueryRunner.js +6 -0
  34. package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
  35. package/browser/driver/mysql/MysqlQueryRunner.d.ts +4 -0
  36. package/browser/driver/mysql/MysqlQueryRunner.js +47 -10
  37. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  38. package/browser/driver/oracle/OracleConnectionOptions.d.ts +14 -0
  39. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  40. package/browser/driver/oracle/OracleDriver.js +6 -0
  41. package/browser/driver/oracle/OracleDriver.js.map +1 -1
  42. package/browser/driver/oracle/OracleQueryRunner.d.ts +4 -0
  43. package/browser/driver/oracle/OracleQueryRunner.js +21 -5
  44. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  45. package/browser/driver/postgres/PostgresDriver.js +1 -4
  46. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  47. package/browser/driver/postgres/PostgresQueryRunner.d.ts +4 -0
  48. package/browser/driver/postgres/PostgresQueryRunner.js +24 -7
  49. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  50. package/browser/driver/react-native/ReactNativeQueryRunner.js +10 -2
  51. package/browser/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  52. package/browser/driver/sap/SapQueryRunner.d.ts +4 -0
  53. package/browser/driver/sap/SapQueryRunner.js +28 -10
  54. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  55. package/browser/driver/spanner/SpannerQueryRunner.d.ts +4 -0
  56. package/browser/driver/spanner/SpannerQueryRunner.js +13 -1
  57. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
  58. package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
  59. package/browser/driver/sqlite/SqliteQueryRunner.js +60 -46
  60. package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  61. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +4 -0
  62. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +16 -7
  63. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  64. package/browser/driver/sqljs/SqljsQueryRunner.js +11 -3
  65. package/browser/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  66. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +0 -5
  67. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  68. package/browser/driver/sqlserver/SqlServerQueryRunner.d.ts +4 -0
  69. package/browser/driver/sqlserver/SqlServerQueryRunner.js +19 -6
  70. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  71. package/browser/entity-manager/MongoEntityManager.js +4 -8
  72. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  73. package/browser/error/EntityNotFoundError.d.ts +2 -0
  74. package/browser/error/EntityNotFoundError.js +2 -0
  75. package/browser/error/EntityNotFoundError.js.map +1 -1
  76. package/browser/find-options/FindOperatorType.d.ts +1 -1
  77. package/browser/find-options/FindOperatorType.js.map +1 -1
  78. package/browser/find-options/operator/Or.d.ts +2 -0
  79. package/browser/find-options/operator/Or.js +6 -0
  80. package/browser/find-options/operator/Or.js.map +1 -0
  81. package/browser/index.d.ts +1 -0
  82. package/browser/index.js +1 -0
  83. package/browser/index.js.map +1 -1
  84. package/browser/logger/AbstractLogger.js +1 -1
  85. package/browser/logger/AbstractLogger.js.map +1 -1
  86. package/browser/metadata/ColumnMetadata.js +4 -0
  87. package/browser/metadata/ColumnMetadata.js.map +1 -1
  88. package/browser/metadata/EntityMetadata.d.ts +7 -3
  89. package/browser/metadata/EntityMetadata.js +8 -3
  90. package/browser/metadata/EntityMetadata.js.map +1 -1
  91. package/browser/metadata-args/TableMetadataArgs.d.ts +4 -0
  92. package/browser/metadata-args/TableMetadataArgs.js.map +1 -1
  93. package/browser/persistence/SubjectExecutor.js +1 -1
  94. package/browser/persistence/SubjectExecutor.js.map +1 -1
  95. package/browser/platform/BrowserPlatformTools.d.ts +0 -7
  96. package/browser/platform/BrowserPlatformTools.js +3 -2
  97. package/browser/platform/BrowserPlatformTools.js.map +1 -1
  98. package/browser/query-builder/InsertQueryBuilder.js +10 -1
  99. package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
  100. package/browser/query-builder/QueryBuilder.d.ts +5 -0
  101. package/browser/query-builder/QueryBuilder.js +35 -23
  102. package/browser/query-builder/QueryBuilder.js.map +1 -1
  103. package/browser/query-builder/QueryExpressionMap.d.ts +2 -1
  104. package/browser/query-builder/QueryExpressionMap.js +0 -4
  105. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  106. package/browser/query-builder/SelectQueryBuilder.js +5 -1
  107. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  108. package/browser/query-builder/WhereClause.d.ts +1 -1
  109. package/browser/query-builder/WhereClause.js.map +1 -1
  110. package/browser/query-builder/index.d.ts +1 -0
  111. package/browser/query-builder/index.js +17 -0
  112. package/browser/query-builder/index.js.map +1 -0
  113. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +9 -0
  114. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +28 -0
  115. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  116. package/browser/query-runner/BaseQueryRunner.js +1 -0
  117. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  118. package/browser/query-runner/QueryRunner.d.ts +4 -0
  119. package/browser/query-runner/QueryRunner.js.map +1 -1
  120. package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +4 -0
  121. package/browser/schema-builder/RdbmsSchemaBuilder.js +15 -0
  122. package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  123. package/browser/schema-builder/options/TableOptions.d.ts +4 -0
  124. package/browser/schema-builder/options/TableOptions.js.map +1 -1
  125. package/browser/schema-builder/table/Table.d.ts +4 -0
  126. package/browser/schema-builder/table/Table.js +3 -0
  127. package/browser/schema-builder/table/Table.js.map +1 -1
  128. package/browser/subscriber/Broadcaster.d.ts +10 -0
  129. package/browser/subscriber/Broadcaster.js +46 -0
  130. package/browser/subscriber/Broadcaster.js.map +1 -1
  131. package/browser/subscriber/EntitySubscriberInterface.d.ts +9 -0
  132. package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
  133. package/browser/subscriber/event/QueryEvent.d.ts +50 -0
  134. package/browser/subscriber/event/QueryEvent.js +3 -0
  135. package/browser/subscriber/event/QueryEvent.js.map +1 -0
  136. package/cache/DbQueryResultCache.js +3 -0
  137. package/cache/DbQueryResultCache.js.map +1 -1
  138. package/data-source/BaseDataSourceOptions.d.ts +4 -0
  139. package/data-source/BaseDataSourceOptions.js.map +1 -1
  140. package/data-source/DataSource.js +3 -0
  141. package/data-source/DataSource.js.map +1 -1
  142. package/decorator/entity/Entity.js +1 -0
  143. package/decorator/entity/Entity.js.map +1 -1
  144. package/decorator/options/EntityOptions.d.ts +4 -0
  145. package/decorator/options/EntityOptions.js.map +1 -1
  146. package/driver/aurora-mysql/AuroraMysqlQueryRunner.d.ts +4 -0
  147. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +15 -6
  148. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  149. package/driver/aurora-postgres/AuroraPostgresQueryRunner.d.ts +5 -0
  150. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js +16 -6
  151. package/driver/aurora-postgres/AuroraPostgresQueryRunner.js.map +1 -1
  152. package/driver/capacitor/CapacitorDriver.js +2 -2
  153. package/driver/capacitor/CapacitorDriver.js.map +1 -1
  154. package/driver/capacitor/CapacitorQueryRunner.js +2 -2
  155. package/driver/capacitor/CapacitorQueryRunner.js.map +1 -1
  156. package/driver/cockroachdb/CockroachDriver.js +20 -10
  157. package/driver/cockroachdb/CockroachDriver.js.map +1 -1
  158. package/driver/cockroachdb/CockroachQueryRunner.d.ts +10 -1
  159. package/driver/cockroachdb/CockroachQueryRunner.js +55 -19
  160. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  161. package/driver/cordova/CordovaDriver.js +2 -2
  162. package/driver/cordova/CordovaDriver.js.map +1 -1
  163. package/driver/cordova/CordovaQueryRunner.js +8 -0
  164. package/driver/cordova/CordovaQueryRunner.js.map +1 -1
  165. package/driver/expo/ExpoQueryRunner.js +9 -2
  166. package/driver/expo/ExpoQueryRunner.js.map +1 -1
  167. package/driver/mongodb/MongoQueryRunner.d.ts +4 -0
  168. package/driver/mongodb/MongoQueryRunner.js +6 -0
  169. package/driver/mongodb/MongoQueryRunner.js.map +1 -1
  170. package/driver/mysql/MysqlQueryRunner.d.ts +4 -0
  171. package/driver/mysql/MysqlQueryRunner.js +47 -10
  172. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  173. package/driver/oracle/OracleConnectionOptions.d.ts +14 -0
  174. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  175. package/driver/oracle/OracleDriver.js +6 -0
  176. package/driver/oracle/OracleDriver.js.map +1 -1
  177. package/driver/oracle/OracleQueryRunner.d.ts +4 -0
  178. package/driver/oracle/OracleQueryRunner.js +21 -5
  179. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  180. package/driver/postgres/PostgresDriver.js +1 -4
  181. package/driver/postgres/PostgresDriver.js.map +1 -1
  182. package/driver/postgres/PostgresQueryRunner.d.ts +4 -0
  183. package/driver/postgres/PostgresQueryRunner.js +24 -7
  184. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  185. package/driver/react-native/ReactNativeQueryRunner.js +10 -2
  186. package/driver/react-native/ReactNativeQueryRunner.js.map +1 -1
  187. package/driver/sap/SapQueryRunner.d.ts +4 -0
  188. package/driver/sap/SapQueryRunner.js +28 -10
  189. package/driver/sap/SapQueryRunner.js.map +1 -1
  190. package/driver/spanner/SpannerQueryRunner.d.ts +4 -0
  191. package/driver/spanner/SpannerQueryRunner.js +13 -1
  192. package/driver/spanner/SpannerQueryRunner.js.map +1 -1
  193. package/driver/sqlite/SqliteDriver.js.map +1 -1
  194. package/driver/sqlite/SqliteQueryRunner.js +60 -46
  195. package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
  196. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +4 -0
  197. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +16 -7
  198. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  199. package/driver/sqljs/SqljsQueryRunner.js +11 -3
  200. package/driver/sqljs/SqljsQueryRunner.js.map +1 -1
  201. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +0 -5
  202. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  203. package/driver/sqlserver/SqlServerQueryRunner.d.ts +4 -0
  204. package/driver/sqlserver/SqlServerQueryRunner.js +19 -6
  205. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  206. package/entity-manager/MongoEntityManager.js +4 -8
  207. package/entity-manager/MongoEntityManager.js.map +1 -1
  208. package/error/EntityNotFoundError.d.ts +2 -0
  209. package/error/EntityNotFoundError.js +2 -0
  210. package/error/EntityNotFoundError.js.map +1 -1
  211. package/find-options/FindOperatorType.d.ts +1 -1
  212. package/find-options/FindOperatorType.js.map +1 -1
  213. package/find-options/operator/Or.d.ts +2 -0
  214. package/find-options/operator/Or.js +10 -0
  215. package/find-options/operator/Or.js.map +1 -0
  216. package/index.d.ts +1 -0
  217. package/index.js +1 -0
  218. package/index.js.map +1 -1
  219. package/index.mjs +2 -0
  220. package/logger/AbstractLogger.js +1 -1
  221. package/logger/AbstractLogger.js.map +1 -1
  222. package/metadata/ColumnMetadata.js +4 -0
  223. package/metadata/ColumnMetadata.js.map +1 -1
  224. package/metadata/EntityMetadata.d.ts +7 -3
  225. package/metadata/EntityMetadata.js +8 -3
  226. package/metadata/EntityMetadata.js.map +1 -1
  227. package/metadata-args/TableMetadataArgs.d.ts +4 -0
  228. package/metadata-args/TableMetadataArgs.js.map +1 -1
  229. package/package.json +273 -1
  230. package/persistence/SubjectExecutor.js +1 -1
  231. package/persistence/SubjectExecutor.js.map +1 -1
  232. package/query-builder/InsertQueryBuilder.js +10 -1
  233. package/query-builder/InsertQueryBuilder.js.map +1 -1
  234. package/query-builder/QueryBuilder.d.ts +5 -0
  235. package/query-builder/QueryBuilder.js +35 -23
  236. package/query-builder/QueryBuilder.js.map +1 -1
  237. package/query-builder/QueryExpressionMap.d.ts +2 -1
  238. package/query-builder/QueryExpressionMap.js +0 -4
  239. package/query-builder/QueryExpressionMap.js.map +1 -1
  240. package/query-builder/SelectQueryBuilder.js +5 -1
  241. package/query-builder/SelectQueryBuilder.js.map +1 -1
  242. package/query-builder/WhereClause.d.ts +1 -1
  243. package/query-builder/WhereClause.js.map +1 -1
  244. package/query-builder/index.d.ts +1 -0
  245. package/query-builder/index.js +21 -0
  246. package/query-builder/index.js.map +1 -0
  247. package/query-builder/transformer/RawSqlResultsToEntityTransformer.d.ts +9 -0
  248. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +28 -0
  249. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  250. package/query-runner/BaseQueryRunner.js +1 -0
  251. package/query-runner/BaseQueryRunner.js.map +1 -1
  252. package/query-runner/QueryRunner.d.ts +4 -0
  253. package/query-runner/QueryRunner.js.map +1 -1
  254. package/schema-builder/RdbmsSchemaBuilder.d.ts +4 -0
  255. package/schema-builder/RdbmsSchemaBuilder.js +15 -0
  256. package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
  257. package/schema-builder/options/TableOptions.d.ts +4 -0
  258. package/schema-builder/options/TableOptions.js.map +1 -1
  259. package/schema-builder/table/Table.d.ts +4 -0
  260. package/schema-builder/table/Table.js +3 -0
  261. package/schema-builder/table/Table.js.map +1 -1
  262. package/subscriber/Broadcaster.d.ts +10 -0
  263. package/subscriber/Broadcaster.js +46 -0
  264. package/subscriber/Broadcaster.js.map +1 -1
  265. package/subscriber/EntitySubscriberInterface.d.ts +9 -0
  266. package/subscriber/EntitySubscriberInterface.js.map +1 -1
  267. package/subscriber/event/QueryEvent.d.ts +50 -0
  268. package/subscriber/event/QueryEvent.js +4 -0
  269. package/subscriber/event/QueryEvent.js.map +1 -0
@@ -19,6 +19,7 @@ const VersionUtils_1 = require("../../util/VersionUtils");
19
19
  const error_1 = require("../../error");
20
20
  const MetadataTableType_1 = require("../types/MetadataTableType");
21
21
  const InstanceChecker_1 = require("../../util/InstanceChecker");
22
+ const BroadcasterResult_1 = require("../../subscriber/BroadcasterResult");
22
23
  /**
23
24
  * Runs queries on a single mysql database connection.
24
25
  */
@@ -87,15 +88,16 @@ class MysqlQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
87
88
  throw err;
88
89
  }
89
90
  if (this.transactionDepth === 0) {
91
+ this.transactionDepth += 1;
90
92
  if (isolationLevel) {
91
93
  await this.query("SET TRANSACTION ISOLATION LEVEL " + isolationLevel);
92
94
  }
93
95
  await this.query("START TRANSACTION");
94
96
  }
95
97
  else {
96
- await this.query(`SAVEPOINT typeorm_${this.transactionDepth}`);
98
+ this.transactionDepth += 1;
99
+ await this.query(`SAVEPOINT typeorm_${this.transactionDepth - 1}`);
97
100
  }
98
- this.transactionDepth += 1;
99
101
  await this.broadcaster.broadcast("AfterTransactionStart");
100
102
  }
101
103
  /**
@@ -107,13 +109,14 @@ class MysqlQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
107
109
  throw new TransactionNotStartedError_1.TransactionNotStartedError();
108
110
  await this.broadcaster.broadcast("BeforeTransactionCommit");
109
111
  if (this.transactionDepth > 1) {
110
- await this.query(`RELEASE SAVEPOINT typeorm_${this.transactionDepth - 1}`);
112
+ this.transactionDepth -= 1;
113
+ await this.query(`RELEASE SAVEPOINT typeorm_${this.transactionDepth}`);
111
114
  }
112
115
  else {
116
+ this.transactionDepth -= 1;
113
117
  await this.query("COMMIT");
114
118
  this.isTransactionActive = false;
115
119
  }
116
- this.transactionDepth -= 1;
117
120
  await this.broadcaster.broadcast("AfterTransactionCommit");
118
121
  }
119
122
  /**
@@ -125,13 +128,14 @@ class MysqlQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
125
128
  throw new TransactionNotStartedError_1.TransactionNotStartedError();
126
129
  await this.broadcaster.broadcast("BeforeTransactionRollback");
127
130
  if (this.transactionDepth > 1) {
128
- await this.query(`ROLLBACK TO SAVEPOINT typeorm_${this.transactionDepth - 1}`);
131
+ this.transactionDepth -= 1;
132
+ await this.query(`ROLLBACK TO SAVEPOINT typeorm_${this.transactionDepth}`);
129
133
  }
130
134
  else {
135
+ this.transactionDepth -= 1;
131
136
  await this.query("ROLLBACK");
132
137
  this.isTransactionActive = false;
133
138
  }
134
- this.transactionDepth -= 1;
135
139
  await this.broadcaster.broadcast("AfterTransactionRollback");
136
140
  }
137
141
  /**
@@ -141,11 +145,13 @@ class MysqlQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
141
145
  if (this.isReleased)
142
146
  throw new QueryRunnerAlreadyReleasedError_1.QueryRunnerAlreadyReleasedError();
143
147
  return new Promise(async (ok, fail) => {
148
+ const broadcasterResult = new BroadcasterResult_1.BroadcasterResult();
144
149
  try {
145
150
  const databaseConnection = await this.connect();
146
151
  this.driver.connection.logger.logQuery(query, parameters, this);
152
+ this.broadcaster.broadcastBeforeQueryEvent(broadcasterResult, query, parameters);
147
153
  const queryStartTime = +new Date();
148
- databaseConnection.query(query, parameters, (err, raw) => {
154
+ databaseConnection.query(query, parameters, async (err, raw) => {
149
155
  // log slow queries if maxQueryExecution time is set
150
156
  const maxQueryExecutionTime = this.driver.options.maxQueryExecutionTime;
151
157
  const queryEndTime = +new Date();
@@ -155,8 +161,10 @@ class MysqlQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
155
161
  this.driver.connection.logger.logQuerySlow(queryExecutionTime, query, parameters, this);
156
162
  if (err) {
157
163
  this.driver.connection.logger.logQueryError(err, query, parameters, this);
164
+ this.broadcaster.broadcastAfterQueryEvent(broadcasterResult, query, parameters, false, undefined, undefined, err);
158
165
  return fail(new QueryFailedError_1.QueryFailedError(query, parameters, err));
159
166
  }
167
+ this.broadcaster.broadcastAfterQueryEvent(broadcasterResult, query, parameters, true, queryExecutionTime, raw, undefined);
160
168
  const result = new QueryResult_1.QueryResult();
161
169
  result.raw = raw;
162
170
  try {
@@ -179,6 +187,9 @@ class MysqlQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
179
187
  catch (err) {
180
188
  fail(err);
181
189
  }
190
+ finally {
191
+ await broadcasterResult.wait();
192
+ }
182
193
  });
183
194
  }
184
195
  /**
@@ -491,6 +502,28 @@ class MysqlQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
491
502
  oldTable.name = newTable.name;
492
503
  this.replaceCachedTable(oldTable, newTable);
493
504
  }
505
+ /**
506
+ * Change table comment.
507
+ */
508
+ async changeTableComment(tableOrName, newComment) {
509
+ const upQueries = [];
510
+ const downQueries = [];
511
+ const table = InstanceChecker_1.InstanceChecker.isTable(tableOrName)
512
+ ? tableOrName
513
+ : await this.getCachedTable(tableOrName);
514
+ newComment = this.escapeComment(newComment);
515
+ const comment = this.escapeComment(table.comment);
516
+ if (newComment === comment) {
517
+ return;
518
+ }
519
+ const newTable = table.clone();
520
+ upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(newTable)} COMMENT ${newComment}`));
521
+ downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} COMMENT ${comment}`));
522
+ await this.executeQueries(upQueries, downQueries);
523
+ // change table comment and replace it in cached tabled;
524
+ table.comment = newTable.comment;
525
+ this.replaceCachedTable(table, newTable);
526
+ }
494
527
  /**
495
528
  * Creates a new column from the column in the table.
496
529
  */
@@ -1370,7 +1403,7 @@ class MysqlQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1370
1403
  const dbTables = [];
1371
1404
  if (!tableNames) {
1372
1405
  // Since we don't have any of this data we have to do a scan
1373
- const tablesSql = `SELECT \`TABLE_SCHEMA\`, \`TABLE_NAME\` FROM \`INFORMATION_SCHEMA\`.\`TABLES\``;
1406
+ const tablesSql = `SELECT \`TABLE_SCHEMA\`, \`TABLE_NAME\`, \`TABLE_COMMENT\` FROM \`INFORMATION_SCHEMA\`.\`TABLES\``;
1374
1407
  dbTables.push(...(await this.query(tablesSql)));
1375
1408
  }
1376
1409
  else {
@@ -1384,7 +1417,7 @@ class MysqlQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1384
1417
  if (!database) {
1385
1418
  database = currentDatabase;
1386
1419
  }
1387
- return `SELECT \`TABLE_SCHEMA\`, \`TABLE_NAME\` FROM \`INFORMATION_SCHEMA\`.\`TABLES\` WHERE \`TABLE_SCHEMA\` = '${database}' AND \`TABLE_NAME\` = '${name}'`;
1420
+ return `SELECT \`TABLE_SCHEMA\`, \`TABLE_NAME\`, \`TABLE_COMMENT\` FROM \`INFORMATION_SCHEMA\`.\`TABLES\` WHERE \`TABLE_SCHEMA\` = '${database}' AND \`TABLE_NAME\` = '${name}'`;
1388
1421
  })
1389
1422
  .join(" UNION ");
1390
1423
  dbTables.push(...(await this.query(tablesSql)));
@@ -1616,7 +1649,7 @@ class MysqlQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1616
1649
  ? "VIRTUAL"
1617
1650
  : "STORED";
1618
1651
  // We cannot relay on information_schema.columns.generation_expression, because it is formatted different.
1619
- const asExpressionQuery = await this.selectTypeormMetadataSql({
1652
+ const asExpressionQuery = this.selectTypeormMetadataSql({
1620
1653
  schema: dbTable["TABLE_SCHEMA"],
1621
1654
  table: dbTable["TABLE_NAME"],
1622
1655
  type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
@@ -1759,6 +1792,7 @@ class MysqlQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1759
1792
  isFulltext: constraint["INDEX_TYPE"] === "FULLTEXT",
1760
1793
  });
1761
1794
  });
1795
+ table.comment = dbTable["TABLE_COMMENT"];
1762
1796
  return table;
1763
1797
  }));
1764
1798
  }
@@ -1855,6 +1889,9 @@ class MysqlQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1855
1889
  sql += `, PRIMARY KEY (${columnNames})`;
1856
1890
  }
1857
1891
  sql += `) ENGINE=${table.engine || "InnoDB"}`;
1892
+ if (table.comment) {
1893
+ sql += ` COMMENT="${table.comment}"`;
1894
+ }
1858
1895
  return new Query_1.Query(sql);
1859
1896
  }
1860
1897
  /**