typeorm 0.3.7-dev.ec05f1d → 0.3.8-dev.03317a3

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 (185) hide show
  1. package/browser/data-source/DataSource.d.ts +2 -0
  2. package/browser/data-source/DataSource.js +2 -0
  3. package/browser/data-source/DataSource.js.map +1 -1
  4. package/browser/driver/Driver.d.ts +4 -0
  5. package/browser/driver/Driver.js.map +1 -1
  6. package/browser/driver/DriverUtils.d.ts +1 -0
  7. package/browser/driver/DriverUtils.js +5 -0
  8. package/browser/driver/DriverUtils.js.map +1 -1
  9. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js +4 -1
  10. package/browser/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  11. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +4 -0
  12. package/browser/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  13. package/browser/driver/better-sqlite3/BetterSqlite3Driver.d.ts +1 -1
  14. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js +4 -3
  15. package/browser/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  16. package/browser/driver/cockroachdb/CockroachQueryRunner.js +4 -1
  17. package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  18. package/browser/driver/mysql/MysqlDriver.d.ts +4 -0
  19. package/browser/driver/mysql/MysqlDriver.js +1 -0
  20. package/browser/driver/mysql/MysqlDriver.js.map +1 -1
  21. package/browser/driver/mysql/MysqlQueryRunner.js +9 -1
  22. package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
  23. package/browser/driver/oracle/OracleConnectionOptions.d.ts +1 -1
  24. package/browser/driver/oracle/OracleConnectionOptions.js.map +1 -1
  25. package/browser/driver/oracle/OracleQueryRunner.js +4 -1
  26. package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
  27. package/browser/driver/postgres/PostgresConnectionOptions.d.ts +1 -1
  28. package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  29. package/browser/driver/postgres/PostgresDriver.d.ts +4 -0
  30. package/browser/driver/postgres/PostgresDriver.js +3 -2
  31. package/browser/driver/postgres/PostgresDriver.js.map +1 -1
  32. package/browser/driver/postgres/PostgresQueryRunner.d.ts +1 -1
  33. package/browser/driver/postgres/PostgresQueryRunner.js +22 -13
  34. package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
  35. package/browser/driver/sap/SapQueryRunner.d.ts +7 -0
  36. package/browser/driver/sap/SapQueryRunner.js +28 -3
  37. package/browser/driver/sap/SapQueryRunner.js.map +1 -1
  38. package/browser/driver/spanner/SpannerQueryRunner.js +4 -1
  39. package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -1
  40. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +1 -1
  41. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +20 -13
  42. package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  43. package/browser/driver/sqlserver/SqlServerConnectionOptions.d.ts +7 -2
  44. package/browser/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  45. package/browser/driver/sqlserver/SqlServerQueryRunner.js +4 -1
  46. package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  47. package/browser/entity-manager/EntityManager.js +1 -0
  48. package/browser/entity-manager/EntityManager.js.map +1 -1
  49. package/browser/entity-manager/MongoEntityManager.d.ts +1 -1
  50. package/browser/entity-manager/MongoEntityManager.js +17 -10
  51. package/browser/entity-manager/MongoEntityManager.js.map +1 -1
  52. package/browser/find-options/FindOneOptions.d.ts +1 -0
  53. package/browser/find-options/FindOneOptions.js.map +1 -1
  54. package/browser/find-options/FindOptionsOrder.d.ts +1 -1
  55. package/browser/find-options/FindOptionsOrder.js.map +1 -1
  56. package/browser/find-options/FindOptionsRelations.d.ts +1 -1
  57. package/browser/find-options/FindOptionsRelations.js.map +1 -1
  58. package/browser/find-options/FindOptionsSelect.d.ts +1 -1
  59. package/browser/find-options/FindOptionsSelect.js.map +1 -1
  60. package/browser/find-options/FindOptionsWhere.d.ts +1 -1
  61. package/browser/find-options/FindOptionsWhere.js.map +1 -1
  62. package/browser/migration/MigrationExecutor.d.ts +8 -0
  63. package/browser/migration/MigrationExecutor.js +13 -5
  64. package/browser/migration/MigrationExecutor.js.map +1 -1
  65. package/browser/persistence/SubjectTopoligicalSorter.js +6 -1
  66. package/browser/persistence/SubjectTopoligicalSorter.js.map +1 -1
  67. package/browser/query-builder/QueryExpressionMap.d.ts +4 -0
  68. package/browser/query-builder/QueryExpressionMap.js +1 -0
  69. package/browser/query-builder/QueryExpressionMap.js.map +1 -1
  70. package/browser/query-builder/SelectQueryBuilder.d.ts +4 -0
  71. package/browser/query-builder/SelectQueryBuilder.js +57 -18
  72. package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
  73. package/browser/query-builder/UpdateQueryBuilder.js +1 -0
  74. package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
  75. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +2 -1
  76. package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  77. package/browser/query-runner/BaseQueryRunner.d.ts +5 -0
  78. package/browser/query-runner/BaseQueryRunner.js +7 -0
  79. package/browser/query-runner/BaseQueryRunner.js.map +1 -1
  80. package/browser/schema-builder/options/TableOptions.d.ts +4 -0
  81. package/browser/schema-builder/options/TableOptions.js.map +1 -1
  82. package/browser/schema-builder/table/Table.d.ts +4 -0
  83. package/browser/schema-builder/table/Table.js +8 -0
  84. package/browser/schema-builder/table/Table.js.map +1 -1
  85. package/browser/util/DateUtils.d.ts +1 -1
  86. package/browser/util/DateUtils.js +7 -8
  87. package/browser/util/DateUtils.js.map +1 -1
  88. package/commands/CommandUtils.js +7 -3
  89. package/commands/CommandUtils.js.map +1 -1
  90. package/commands/InitCommand.js +1 -1
  91. package/commands/InitCommand.js.map +1 -1
  92. package/commands/MigrationRevertCommand.d.ts +2 -0
  93. package/commands/MigrationRevertCommand.js +6 -0
  94. package/commands/MigrationRevertCommand.js.map +1 -1
  95. package/commands/MigrationRunCommand.d.ts +2 -0
  96. package/commands/MigrationRunCommand.js +8 -0
  97. package/commands/MigrationRunCommand.js.map +1 -1
  98. package/data-source/DataSource.d.ts +2 -0
  99. package/data-source/DataSource.js +2 -0
  100. package/data-source/DataSource.js.map +1 -1
  101. package/driver/Driver.d.ts +4 -0
  102. package/driver/Driver.js.map +1 -1
  103. package/driver/DriverUtils.d.ts +1 -0
  104. package/driver/DriverUtils.js +5 -0
  105. package/driver/DriverUtils.js.map +1 -1
  106. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js +4 -1
  107. package/driver/aurora-mysql/AuroraMysqlQueryRunner.js.map +1 -1
  108. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.d.ts +4 -0
  109. package/driver/better-sqlite3/BetterSqlite3ConnectionOptions.js.map +1 -1
  110. package/driver/better-sqlite3/BetterSqlite3Driver.d.ts +1 -1
  111. package/driver/better-sqlite3/BetterSqlite3Driver.js +6 -5
  112. package/driver/better-sqlite3/BetterSqlite3Driver.js.map +1 -1
  113. package/driver/cockroachdb/CockroachQueryRunner.js +4 -1
  114. package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
  115. package/driver/mysql/MysqlDriver.d.ts +4 -0
  116. package/driver/mysql/MysqlDriver.js +1 -0
  117. package/driver/mysql/MysqlDriver.js.map +1 -1
  118. package/driver/mysql/MysqlQueryRunner.js +9 -1
  119. package/driver/mysql/MysqlQueryRunner.js.map +1 -1
  120. package/driver/oracle/OracleConnectionOptions.d.ts +1 -1
  121. package/driver/oracle/OracleConnectionOptions.js.map +1 -1
  122. package/driver/oracle/OracleQueryRunner.js +4 -1
  123. package/driver/oracle/OracleQueryRunner.js.map +1 -1
  124. package/driver/postgres/PostgresConnectionOptions.d.ts +1 -1
  125. package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
  126. package/driver/postgres/PostgresDriver.d.ts +4 -0
  127. package/driver/postgres/PostgresDriver.js +3 -2
  128. package/driver/postgres/PostgresDriver.js.map +1 -1
  129. package/driver/postgres/PostgresQueryRunner.d.ts +1 -1
  130. package/driver/postgres/PostgresQueryRunner.js +22 -13
  131. package/driver/postgres/PostgresQueryRunner.js.map +1 -1
  132. package/driver/sap/SapQueryRunner.d.ts +7 -0
  133. package/driver/sap/SapQueryRunner.js +28 -3
  134. package/driver/sap/SapQueryRunner.js.map +1 -1
  135. package/driver/spanner/SpannerQueryRunner.js +4 -1
  136. package/driver/spanner/SpannerQueryRunner.js.map +1 -1
  137. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.d.ts +1 -1
  138. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +20 -13
  139. package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
  140. package/driver/sqlserver/SqlServerConnectionOptions.d.ts +7 -2
  141. package/driver/sqlserver/SqlServerConnectionOptions.js.map +1 -1
  142. package/driver/sqlserver/SqlServerQueryRunner.js +4 -1
  143. package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
  144. package/entity-manager/EntityManager.js +1 -0
  145. package/entity-manager/EntityManager.js.map +1 -1
  146. package/entity-manager/MongoEntityManager.d.ts +1 -1
  147. package/entity-manager/MongoEntityManager.js +17 -10
  148. package/entity-manager/MongoEntityManager.js.map +1 -1
  149. package/find-options/FindOneOptions.d.ts +1 -0
  150. package/find-options/FindOneOptions.js.map +1 -1
  151. package/find-options/FindOptionsOrder.d.ts +1 -1
  152. package/find-options/FindOptionsOrder.js.map +1 -1
  153. package/find-options/FindOptionsRelations.d.ts +1 -1
  154. package/find-options/FindOptionsRelations.js.map +1 -1
  155. package/find-options/FindOptionsSelect.d.ts +1 -1
  156. package/find-options/FindOptionsSelect.js.map +1 -1
  157. package/find-options/FindOptionsWhere.d.ts +1 -1
  158. package/find-options/FindOptionsWhere.js.map +1 -1
  159. package/migration/MigrationExecutor.d.ts +8 -0
  160. package/migration/MigrationExecutor.js +13 -5
  161. package/migration/MigrationExecutor.js.map +1 -1
  162. package/package.json +1 -1
  163. package/persistence/SubjectTopoligicalSorter.js +6 -1
  164. package/persistence/SubjectTopoligicalSorter.js.map +1 -1
  165. package/query-builder/QueryExpressionMap.d.ts +4 -0
  166. package/query-builder/QueryExpressionMap.js +1 -0
  167. package/query-builder/QueryExpressionMap.js.map +1 -1
  168. package/query-builder/SelectQueryBuilder.d.ts +4 -0
  169. package/query-builder/SelectQueryBuilder.js +57 -18
  170. package/query-builder/SelectQueryBuilder.js.map +1 -1
  171. package/query-builder/UpdateQueryBuilder.js +1 -0
  172. package/query-builder/UpdateQueryBuilder.js.map +1 -1
  173. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +2 -1
  174. package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
  175. package/query-runner/BaseQueryRunner.d.ts +5 -0
  176. package/query-runner/BaseQueryRunner.js +7 -0
  177. package/query-runner/BaseQueryRunner.js.map +1 -1
  178. package/schema-builder/options/TableOptions.d.ts +4 -0
  179. package/schema-builder/options/TableOptions.js.map +1 -1
  180. package/schema-builder/table/Table.d.ts +4 -0
  181. package/schema-builder/table/Table.js +8 -0
  182. package/schema-builder/table/Table.js.map +1 -1
  183. package/util/DateUtils.d.ts +1 -1
  184. package/util/DateUtils.js +7 -8
  185. package/util/DateUtils.js.map +1 -1
@@ -52,6 +52,13 @@ export declare class SapQueryRunner extends BaseQueryRunner implements QueryRunn
52
52
  * Error will be thrown if transaction was not started.
53
53
  */
54
54
  rollbackTransaction(): Promise<void>;
55
+ /**
56
+ * @description Switches on/off AUTOCOMMIT mode
57
+ * @link https://help.sap.com/docs/HANA_SERVICE_CF/7c78579ce9b14a669c1f3295b0d8ca16/d538d11053bd4f3f847ec5ce817a3d4c.html?locale=en-US
58
+ */
59
+ setAutoCommit(options: {
60
+ status: "on" | "off";
61
+ }): Promise<void>;
55
62
  /**
56
63
  * Executes a given SQL query.
57
64
  */
@@ -20,6 +20,7 @@ const QueryResult_1 = require("../../query-runner/QueryResult");
20
20
  const QueryLock_1 = require("../../query-runner/QueryLock");
21
21
  const MetadataTableType_1 = require("../types/MetadataTableType");
22
22
  const InstanceChecker_1 = require("../../util/InstanceChecker");
23
+ const util_1 = require("util");
23
24
  /**
24
25
  * Runs queries on a single SQL Server database connection.
25
26
  */
@@ -70,6 +71,11 @@ class SapQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
70
71
  throw new TransactionAlreadyStartedError_1.TransactionAlreadyStartedError();
71
72
  await this.broadcaster.broadcast("BeforeTransactionStart");
72
73
  this.isTransactionActive = true;
74
+ /**
75
+ * Disable AUTOCOMMIT while running transaction.
76
+ * Otherwise, COMMIT/ROLLBACK doesn't work in autocommit mode.
77
+ */
78
+ await this.setAutoCommit({ status: "off" });
73
79
  if (isolationLevel) {
74
80
  await this.query(`SET TRANSACTION ISOLATION LEVEL ${isolationLevel || ""}`);
75
81
  }
@@ -87,6 +93,7 @@ class SapQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
87
93
  await this.broadcaster.broadcast("BeforeTransactionCommit");
88
94
  await this.query("COMMIT");
89
95
  this.isTransactionActive = false;
96
+ await this.setAutoCommit({ status: "on" });
90
97
  await this.broadcaster.broadcast("AfterTransactionCommit");
91
98
  }
92
99
  /**
@@ -101,8 +108,25 @@ class SapQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
101
108
  await this.broadcaster.broadcast("BeforeTransactionRollback");
102
109
  await this.query("ROLLBACK");
103
110
  this.isTransactionActive = false;
111
+ await this.setAutoCommit({ status: "on" });
104
112
  await this.broadcaster.broadcast("AfterTransactionRollback");
105
113
  }
114
+ /**
115
+ * @description Switches on/off AUTOCOMMIT mode
116
+ * @link https://help.sap.com/docs/HANA_SERVICE_CF/7c78579ce9b14a669c1f3295b0d8ca16/d538d11053bd4f3f847ec5ce817a3d4c.html?locale=en-US
117
+ */
118
+ async setAutoCommit(options) {
119
+ const connection = await this.connect();
120
+ const execute = (0, util_1.promisify)(connection.exec.bind(connection));
121
+ connection.setAutoCommit(options.status === "on");
122
+ const query = `SET TRANSACTION AUTOCOMMIT DDL ${options.status.toUpperCase()};`;
123
+ try {
124
+ await execute(query);
125
+ }
126
+ catch (error) {
127
+ throw new error_1.QueryFailedError(query, [], error);
128
+ }
129
+ }
106
130
  /**
107
131
  * Executes a given SQL query.
108
132
  */
@@ -114,8 +138,6 @@ class SapQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
114
138
  const result = new QueryResult_1.QueryResult();
115
139
  try {
116
140
  const databaseConnection = await this.connect();
117
- // we disable autocommit because ROLLBACK does not work in autocommit mode
118
- databaseConnection.setAutoCommit(!this.isTransactionActive);
119
141
  this.driver.connection.logger.logQuery(query, parameters, this);
120
142
  const queryStartTime = +new Date();
121
143
  const isInsertQuery = query.substr(0, 11) === "INSERT INTO";
@@ -1274,7 +1296,7 @@ class SapQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1274
1296
  : await this.getCachedTable(tableOrName);
1275
1297
  // new index may be passed without name. In this case we generate index name manually.
1276
1298
  if (!index.name)
1277
- index.name = this.connection.namingStrategy.indexName(table, index.columnNames, index.where);
1299
+ index.name = this.generateIndexName(table, index);
1278
1300
  const up = this.createIndexSql(table, index);
1279
1301
  const down = this.dropIndexSql(table, index);
1280
1302
  await this.executeQueries(up, down);
@@ -1299,6 +1321,9 @@ class SapQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
1299
1321
  : table.indices.find((i) => i.name === indexOrName);
1300
1322
  if (!index)
1301
1323
  throw new error_1.TypeORMError(`Supplied index ${indexOrName} was not found in table ${table.name}`);
1324
+ // old index may be passed without name. In this case we generate index name manually.
1325
+ if (!index.name)
1326
+ index.name = this.generateIndexName(table, index);
1302
1327
  const up = this.dropIndexSql(table, index);
1303
1328
  const down = this.createIndexSql(table, index);
1304
1329
  await this.executeQueries(up, down);