typeorm 0.2.28 → 0.2.29
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.
- package/README.md +7 -2
- package/browser/connection/ConnectionOptionsReader.js +27 -27
- package/browser/connection/ConnectionOptionsReader.js.map +1 -1
- package/browser/decorator/entity/ChildEntity.js +1 -1
- package/browser/decorator/entity/ChildEntity.js.map +1 -1
- package/browser/driver/DriverUtils.js +20 -12
- package/browser/driver/DriverUtils.js.map +1 -1
- package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js +53 -6
- package/browser/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
- package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +53 -6
- package/browser/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachDriver.js +3 -3
- package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.d.ts +4 -0
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +112 -42
- package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/browser/driver/expo/ExpoQueryRunner.js +72 -14
- package/browser/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/browser/driver/mongodb/MongoConnectionOptions.d.ts +4 -0
- package/browser/driver/mongodb/MongoConnectionOptions.js.map +1 -1
- package/browser/driver/mongodb/MongoDriver.d.ts +7 -3
- package/browser/driver/mongodb/MongoDriver.js +15 -14
- package/browser/driver/mongodb/MongoDriver.js.map +1 -1
- package/browser/driver/mongodb/MongoQueryRunner.d.ts +3 -3
- package/browser/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/browser/driver/mysql/MysqlDriver.js +4 -4
- package/browser/driver/mysql/MysqlDriver.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.d.ts +4 -0
- package/browser/driver/mysql/MysqlQueryRunner.js +107 -38
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/driver/oracle/OracleQueryRunner.js +52 -6
- package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.js +7 -7
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.d.ts +8 -0
- package/browser/driver/postgres/PostgresQueryRunner.js +107 -18
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/react-native/ReactNativeDriver.js +1 -2
- package/browser/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/browser/driver/sap/SapQueryRunner.js +56 -8
- package/browser/driver/sap/SapQueryRunner.js.map +1 -1
- package/browser/driver/sqlite/SqliteQueryRunner.js +4 -0
- package/browser/driver/sqlite/SqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +55 -7
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +133 -62
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/entity-manager/MongoEntityManager.js +14 -3
- package/browser/entity-manager/MongoEntityManager.js.map +1 -1
- package/browser/find-options/FindOneOptions.d.ts +4 -0
- package/browser/find-options/FindOneOptions.js.map +1 -1
- package/browser/find-options/FindOperator.d.ts +20 -1
- package/browser/find-options/FindOperator.js +27 -1
- package/browser/find-options/FindOperator.js.map +1 -1
- package/browser/find-options/FindOperatorType.d.ts +1 -1
- package/browser/find-options/FindOperatorType.js.map +1 -1
- package/browser/find-options/FindOptionsUtils.js +5 -1
- package/browser/find-options/FindOptionsUtils.js.map +1 -1
- package/browser/find-options/operator/ILike.d.ts +6 -0
- package/browser/find-options/operator/ILike.js +10 -0
- package/browser/find-options/operator/ILike.js.map +1 -0
- package/browser/find-options/operator/Raw.d.ts +14 -2
- package/browser/find-options/operator/Raw.js +5 -6
- package/browser/find-options/operator/Raw.js.map +1 -1
- package/browser/index.d.ts +2 -0
- package/browser/index.js +1 -0
- package/browser/index.js.map +1 -1
- package/browser/logger/Logger.d.ts +1 -1
- package/browser/logger/Logger.js.map +1 -1
- package/browser/metadata/ColumnMetadata.js +14 -3
- package/browser/metadata/ColumnMetadata.js.map +1 -1
- package/browser/metadata/types/EventListenerTypes.d.ts +7 -7
- package/browser/metadata/types/EventListenerTypes.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataBuilder.js +14 -8
- package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataValidator.js +8 -5
- package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/browser/persistence/EntityPersistExecutor.js +1 -1
- package/browser/persistence/EntityPersistExecutor.js.map +1 -1
- package/browser/persistence/Subject.js +2 -1
- package/browser/persistence/Subject.js.map +1 -1
- package/browser/query-builder/DeleteQueryBuilder.js +2 -1
- package/browser/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/browser/query-builder/InsertQueryBuilder.js +31 -8
- package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryBuilder.d.ts +7 -0
- package/browser/query-builder/QueryBuilder.js +125 -32
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryExpressionMap.d.ts +4 -0
- package/browser/query-builder/QueryExpressionMap.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.d.ts +5 -0
- package/browser/query-builder/SelectQueryBuilder.js +73 -40
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-builder/UpdateQueryBuilder.js +2 -1
- package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js +6 -3
- package/browser/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/browser/query-runner/QueryRunner.d.ts +1 -1
- package/browser/query-runner/QueryRunner.js.map +1 -1
- package/browser/repository/TreeRepository.js +2 -2
- package/browser/repository/TreeRepository.js.map +1 -1
- package/browser/subscriber/Broadcaster.d.ts +24 -0
- package/browser/subscriber/Broadcaster.js +120 -0
- package/browser/subscriber/Broadcaster.js.map +1 -1
- package/browser/subscriber/EntitySubscriberInterface.d.ts +27 -0
- package/browser/subscriber/EntitySubscriberInterface.js.map +1 -1
- package/browser/subscriber/event/TransactionCommitEvent.d.ts +22 -0
- package/browser/subscriber/event/TransactionCommitEvent.js +3 -0
- package/browser/subscriber/event/TransactionCommitEvent.js.map +1 -0
- package/browser/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
- package/browser/subscriber/event/TransactionRollbackEvent.js +3 -0
- package/browser/subscriber/event/TransactionRollbackEvent.js.map +1 -0
- package/browser/subscriber/event/TransactionStartEvent.d.ts +22 -0
- package/browser/subscriber/event/TransactionStartEvent.js +3 -0
- package/browser/subscriber/event/TransactionStartEvent.js.map +1 -0
- package/browser/util/DateUtils.js +1 -7
- package/browser/util/DateUtils.js.map +1 -1
- package/commands/EntityCreateCommand.js +5 -2
- package/commands/EntityCreateCommand.js.map +1 -1
- package/commands/InitCommand.js +1 -1
- package/commands/InitCommand.js.map +1 -1
- package/commands/MigrationCreateCommand.js +4 -1
- package/commands/MigrationCreateCommand.js.map +1 -1
- package/commands/MigrationGenerateCommand.js +26 -28
- package/commands/MigrationGenerateCommand.js.map +1 -1
- package/commands/QueryCommand.d.ts +2 -0
- package/commands/QueryCommand.js +12 -3
- package/commands/QueryCommand.js.map +1 -1
- package/commands/SubscriberCreateCommand.js +5 -2
- package/commands/SubscriberCreateCommand.js.map +1 -1
- package/connection/ConnectionOptionsReader.js +27 -27
- package/connection/ConnectionOptionsReader.js.map +1 -1
- package/decorator/entity/ChildEntity.js +1 -1
- package/decorator/entity/ChildEntity.js.map +1 -1
- package/driver/DriverUtils.js +19 -11
- package/driver/DriverUtils.js.map +1 -1
- package/driver/aurora-data-api/AuroraDataApiQueryRunner.js +53 -6
- package/driver/aurora-data-api/AuroraDataApiQueryRunner.js.map +1 -1
- package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js +53 -6
- package/driver/aurora-data-api-pg/AuroraDataApiPostgresQueryRunner.js.map +1 -1
- package/driver/cockroachdb/CockroachDriver.js +3 -3
- package/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.d.ts +4 -0
- package/driver/cockroachdb/CockroachQueryRunner.js +112 -42
- package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/driver/expo/ExpoQueryRunner.js +72 -14
- package/driver/expo/ExpoQueryRunner.js.map +1 -1
- package/driver/mongodb/MongoConnectionOptions.d.ts +4 -0
- package/driver/mongodb/MongoConnectionOptions.js.map +1 -1
- package/driver/mongodb/MongoDriver.d.ts +7 -3
- package/driver/mongodb/MongoDriver.js +15 -14
- package/driver/mongodb/MongoDriver.js.map +1 -1
- package/driver/mongodb/MongoQueryRunner.d.ts +3 -3
- package/driver/mongodb/MongoQueryRunner.js.map +1 -1
- package/driver/mysql/MysqlDriver.js +4 -4
- package/driver/mysql/MysqlDriver.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.d.ts +4 -0
- package/driver/mysql/MysqlQueryRunner.js +107 -38
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/driver/oracle/OracleQueryRunner.js +52 -6
- package/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresDriver.js +7 -7
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.d.ts +8 -0
- package/driver/postgres/PostgresQueryRunner.js +107 -18
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/react-native/ReactNativeDriver.js +1 -2
- package/driver/react-native/ReactNativeDriver.js.map +1 -1
- package/driver/sap/SapQueryRunner.js +56 -8
- package/driver/sap/SapQueryRunner.js.map +1 -1
- package/driver/sqlite/SqliteQueryRunner.js +4 -0
- package/driver/sqlite/SqliteQueryRunner.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +55 -7
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.js +133 -62
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/entity-manager/MongoEntityManager.js +14 -3
- package/entity-manager/MongoEntityManager.js.map +1 -1
- package/find-options/FindOneOptions.d.ts +4 -0
- package/find-options/FindOneOptions.js.map +1 -1
- package/find-options/FindOperator.d.ts +20 -1
- package/find-options/FindOperator.js +27 -1
- package/find-options/FindOperator.js.map +1 -1
- package/find-options/FindOperatorType.d.ts +1 -1
- package/find-options/FindOperatorType.js.map +1 -1
- package/find-options/FindOptionsUtils.js +5 -1
- package/find-options/FindOptionsUtils.js.map +1 -1
- package/find-options/operator/ILike.d.ts +6 -0
- package/find-options/operator/ILike.js +13 -0
- package/find-options/operator/ILike.js.map +1 -0
- package/find-options/operator/Raw.d.ts +14 -2
- package/find-options/operator/Raw.js +5 -6
- package/find-options/operator/Raw.js.map +1 -1
- package/index.d.ts +2 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/logger/Logger.d.ts +1 -1
- package/logger/Logger.js.map +1 -1
- package/metadata/ColumnMetadata.js +14 -3
- package/metadata/ColumnMetadata.js.map +1 -1
- package/metadata/types/EventListenerTypes.d.ts +7 -7
- package/metadata/types/EventListenerTypes.js.map +1 -1
- package/metadata-builder/EntityMetadataBuilder.js +14 -8
- package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataValidator.js +8 -5
- package/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/package.json +3 -2
- package/persistence/EntityPersistExecutor.js +1 -1
- package/persistence/EntityPersistExecutor.js.map +1 -1
- package/persistence/Subject.js +2 -1
- package/persistence/Subject.js.map +1 -1
- package/query-builder/DeleteQueryBuilder.js +2 -1
- package/query-builder/DeleteQueryBuilder.js.map +1 -1
- package/query-builder/InsertQueryBuilder.js +31 -8
- package/query-builder/InsertQueryBuilder.js.map +1 -1
- package/query-builder/QueryBuilder.d.ts +7 -0
- package/query-builder/QueryBuilder.js +124 -31
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/QueryExpressionMap.d.ts +4 -0
- package/query-builder/QueryExpressionMap.js.map +1 -1
- package/query-builder/SelectQueryBuilder.d.ts +5 -0
- package/query-builder/SelectQueryBuilder.js +73 -40
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-builder/UpdateQueryBuilder.js +2 -1
- package/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js +6 -3
- package/query-builder/transformer/RawSqlResultsToEntityTransformer.js.map +1 -1
- package/query-runner/QueryRunner.d.ts +1 -1
- package/query-runner/QueryRunner.js.map +1 -1
- package/repository/TreeRepository.js +2 -2
- package/repository/TreeRepository.js.map +1 -1
- package/subscriber/Broadcaster.d.ts +24 -0
- package/subscriber/Broadcaster.js +120 -0
- package/subscriber/Broadcaster.js.map +1 -1
- package/subscriber/EntitySubscriberInterface.d.ts +27 -0
- package/subscriber/EntitySubscriberInterface.js.map +1 -1
- package/subscriber/event/TransactionCommitEvent.d.ts +22 -0
- package/subscriber/event/TransactionCommitEvent.js +4 -0
- package/subscriber/event/TransactionCommitEvent.js.map +1 -0
- package/subscriber/event/TransactionRollbackEvent.d.ts +22 -0
- package/subscriber/event/TransactionRollbackEvent.js +4 -0
- package/subscriber/event/TransactionRollbackEvent.js.map +1 -0
- package/subscriber/event/TransactionStartEvent.d.ts +22 -0
- package/subscriber/event/TransactionStartEvent.js +4 -0
- package/subscriber/event/TransactionStartEvent.js.map +1 -0
- package/typeorm-model-shim.js +145 -128
- package/util/DateUtils.js +1 -7
- package/util/DateUtils.js.map +1 -1
|
@@ -17,6 +17,7 @@ var BaseQueryRunner_1 = require("../../query-runner/BaseQueryRunner");
|
|
|
17
17
|
var OrmUtils_1 = require("../../util/OrmUtils");
|
|
18
18
|
var TableCheck_1 = require("../../schema-builder/table/TableCheck");
|
|
19
19
|
var TableExclusion_1 = require("../../schema-builder/table/TableExclusion");
|
|
20
|
+
var BroadcasterResult_1 = require("../../subscriber/BroadcasterResult");
|
|
20
21
|
/**
|
|
21
22
|
* Runs queries on a single postgres database connection.
|
|
22
23
|
*/
|
|
@@ -92,26 +93,42 @@ var CockroachQueryRunner = /** @class */ (function (_super) {
|
|
|
92
93
|
*/
|
|
93
94
|
CockroachQueryRunner.prototype.startTransaction = function (isolationLevel) {
|
|
94
95
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
96
|
+
var beforeBroadcastResult, afterBroadcastResult;
|
|
95
97
|
return tslib_1.__generator(this, function (_a) {
|
|
96
98
|
switch (_a.label) {
|
|
97
99
|
case 0:
|
|
98
100
|
if (this.isTransactionActive)
|
|
99
101
|
throw new TransactionAlreadyStartedError_1.TransactionAlreadyStartedError();
|
|
102
|
+
beforeBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
103
|
+
this.broadcaster.broadcastBeforeTransactionStartEvent(beforeBroadcastResult);
|
|
104
|
+
if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
|
|
105
|
+
return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
|
|
106
|
+
case 1:
|
|
107
|
+
_a.sent();
|
|
108
|
+
_a.label = 2;
|
|
109
|
+
case 2:
|
|
100
110
|
this.isTransactionActive = true;
|
|
101
111
|
return [4 /*yield*/, this.query("START TRANSACTION")];
|
|
102
|
-
case
|
|
112
|
+
case 3:
|
|
103
113
|
_a.sent();
|
|
104
114
|
return [4 /*yield*/, this.query("SAVEPOINT cockroach_restart")];
|
|
105
|
-
case
|
|
115
|
+
case 4:
|
|
106
116
|
_a.sent();
|
|
107
|
-
if (!isolationLevel) return [3 /*break*/,
|
|
117
|
+
if (!isolationLevel) return [3 /*break*/, 6];
|
|
108
118
|
return [4 /*yield*/, this.query("SET TRANSACTION ISOLATION LEVEL " + isolationLevel)];
|
|
109
|
-
case
|
|
119
|
+
case 5:
|
|
110
120
|
_a.sent();
|
|
111
|
-
_a.label =
|
|
112
|
-
case
|
|
121
|
+
_a.label = 6;
|
|
122
|
+
case 6:
|
|
113
123
|
this.storeQueries = true;
|
|
114
|
-
|
|
124
|
+
afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
125
|
+
this.broadcaster.broadcastAfterTransactionStartEvent(afterBroadcastResult);
|
|
126
|
+
if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 8];
|
|
127
|
+
return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
|
|
128
|
+
case 7:
|
|
129
|
+
_a.sent();
|
|
130
|
+
_a.label = 8;
|
|
131
|
+
case 8: return [2 /*return*/];
|
|
115
132
|
}
|
|
116
133
|
});
|
|
117
134
|
});
|
|
@@ -122,64 +139,80 @@ var CockroachQueryRunner = /** @class */ (function (_super) {
|
|
|
122
139
|
*/
|
|
123
140
|
CockroachQueryRunner.prototype.commitTransaction = function () {
|
|
124
141
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
125
|
-
var e_1, _a, _b, q, e_2_1;
|
|
142
|
+
var beforeBroadcastResult, e_1, _a, _b, q, e_2_1, afterBroadcastResult;
|
|
126
143
|
var e_2, _c;
|
|
127
144
|
return tslib_1.__generator(this, function (_d) {
|
|
128
145
|
switch (_d.label) {
|
|
129
146
|
case 0:
|
|
130
147
|
if (!this.isTransactionActive)
|
|
131
148
|
throw new TransactionNotStartedError_1.TransactionNotStartedError();
|
|
132
|
-
|
|
133
|
-
|
|
149
|
+
beforeBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
150
|
+
this.broadcaster.broadcastBeforeTransactionCommitEvent(beforeBroadcastResult);
|
|
151
|
+
if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
|
|
152
|
+
return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
|
|
134
153
|
case 1:
|
|
135
|
-
_d.
|
|
136
|
-
|
|
154
|
+
_d.sent();
|
|
155
|
+
_d.label = 2;
|
|
137
156
|
case 2:
|
|
157
|
+
this.storeQueries = false;
|
|
158
|
+
_d.label = 3;
|
|
159
|
+
case 3:
|
|
160
|
+
_d.trys.push([3, 6, , 18]);
|
|
161
|
+
return [4 /*yield*/, this.query("RELEASE SAVEPOINT cockroach_restart")];
|
|
162
|
+
case 4:
|
|
138
163
|
_d.sent();
|
|
139
164
|
return [4 /*yield*/, this.query("COMMIT")];
|
|
140
|
-
case
|
|
165
|
+
case 5:
|
|
141
166
|
_d.sent();
|
|
142
167
|
this.queries = [];
|
|
143
168
|
this.isTransactionActive = false;
|
|
144
|
-
return [3 /*break*/,
|
|
145
|
-
case
|
|
169
|
+
return [3 /*break*/, 18];
|
|
170
|
+
case 6:
|
|
146
171
|
e_1 = _d.sent();
|
|
147
|
-
if (!(e_1.code === "40001")) return [3 /*break*/,
|
|
172
|
+
if (!(e_1.code === "40001")) return [3 /*break*/, 17];
|
|
148
173
|
return [4 /*yield*/, this.query("ROLLBACK TO SAVEPOINT cockroach_restart")];
|
|
149
|
-
case
|
|
174
|
+
case 7:
|
|
150
175
|
_d.sent();
|
|
151
|
-
_d.label =
|
|
152
|
-
case
|
|
153
|
-
_d.trys.push([
|
|
176
|
+
_d.label = 8;
|
|
177
|
+
case 8:
|
|
178
|
+
_d.trys.push([8, 13, 14, 15]);
|
|
154
179
|
_a = tslib_1.__values(this.queries), _b = _a.next();
|
|
155
|
-
_d.label =
|
|
156
|
-
case
|
|
157
|
-
if (!!_b.done) return [3 /*break*/,
|
|
180
|
+
_d.label = 9;
|
|
181
|
+
case 9:
|
|
182
|
+
if (!!_b.done) return [3 /*break*/, 12];
|
|
158
183
|
q = _b.value;
|
|
159
184
|
return [4 /*yield*/, this.query(q.query, q.parameters)];
|
|
160
|
-
case
|
|
185
|
+
case 10:
|
|
161
186
|
_d.sent();
|
|
162
|
-
_d.label =
|
|
163
|
-
case 9:
|
|
164
|
-
_b = _a.next();
|
|
165
|
-
return [3 /*break*/, 7];
|
|
166
|
-
case 10: return [3 /*break*/, 13];
|
|
187
|
+
_d.label = 11;
|
|
167
188
|
case 11:
|
|
189
|
+
_b = _a.next();
|
|
190
|
+
return [3 /*break*/, 9];
|
|
191
|
+
case 12: return [3 /*break*/, 15];
|
|
192
|
+
case 13:
|
|
168
193
|
e_2_1 = _d.sent();
|
|
169
194
|
e_2 = { error: e_2_1 };
|
|
170
|
-
return [3 /*break*/,
|
|
171
|
-
case
|
|
195
|
+
return [3 /*break*/, 15];
|
|
196
|
+
case 14:
|
|
172
197
|
try {
|
|
173
198
|
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
|
|
174
199
|
}
|
|
175
200
|
finally { if (e_2) throw e_2.error; }
|
|
176
201
|
return [7 /*endfinally*/];
|
|
177
|
-
case
|
|
178
|
-
case
|
|
202
|
+
case 15: return [4 /*yield*/, this.commitTransaction()];
|
|
203
|
+
case 16:
|
|
204
|
+
_d.sent();
|
|
205
|
+
_d.label = 17;
|
|
206
|
+
case 17: return [3 /*break*/, 18];
|
|
207
|
+
case 18:
|
|
208
|
+
afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
209
|
+
this.broadcaster.broadcastAfterTransactionCommitEvent(afterBroadcastResult);
|
|
210
|
+
if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 20];
|
|
211
|
+
return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
|
|
212
|
+
case 19:
|
|
179
213
|
_d.sent();
|
|
180
|
-
_d.label =
|
|
181
|
-
case
|
|
182
|
-
case 16: return [2 /*return*/];
|
|
214
|
+
_d.label = 20;
|
|
215
|
+
case 20: return [2 /*return*/];
|
|
183
216
|
}
|
|
184
217
|
});
|
|
185
218
|
});
|
|
@@ -190,18 +223,34 @@ var CockroachQueryRunner = /** @class */ (function (_super) {
|
|
|
190
223
|
*/
|
|
191
224
|
CockroachQueryRunner.prototype.rollbackTransaction = function () {
|
|
192
225
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
226
|
+
var beforeBroadcastResult, afterBroadcastResult;
|
|
193
227
|
return tslib_1.__generator(this, function (_a) {
|
|
194
228
|
switch (_a.label) {
|
|
195
229
|
case 0:
|
|
196
230
|
if (!this.isTransactionActive)
|
|
197
231
|
throw new TransactionNotStartedError_1.TransactionNotStartedError();
|
|
232
|
+
beforeBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
233
|
+
this.broadcaster.broadcastBeforeTransactionRollbackEvent(beforeBroadcastResult);
|
|
234
|
+
if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
|
|
235
|
+
return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
|
|
236
|
+
case 1:
|
|
237
|
+
_a.sent();
|
|
238
|
+
_a.label = 2;
|
|
239
|
+
case 2:
|
|
198
240
|
this.storeQueries = false;
|
|
199
241
|
return [4 /*yield*/, this.query("ROLLBACK")];
|
|
200
|
-
case
|
|
242
|
+
case 3:
|
|
201
243
|
_a.sent();
|
|
202
244
|
this.queries = [];
|
|
203
245
|
this.isTransactionActive = false;
|
|
204
|
-
|
|
246
|
+
afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
247
|
+
this.broadcaster.broadcastAfterTransactionRollbackEvent(afterBroadcastResult);
|
|
248
|
+
if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];
|
|
249
|
+
return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
|
|
250
|
+
case 4:
|
|
251
|
+
_a.sent();
|
|
252
|
+
_a.label = 5;
|
|
253
|
+
case 5: return [2 /*return*/];
|
|
205
254
|
}
|
|
206
255
|
});
|
|
207
256
|
});
|
|
@@ -776,6 +825,11 @@ var CockroachQueryRunner = /** @class */ (function (_super) {
|
|
|
776
825
|
upQueries.push(this.createUniqueConstraintSql(table, uniqueConstraint));
|
|
777
826
|
downQueries.push(this.dropIndexSql(table, uniqueConstraint.name)); // CockroachDB creates indices for unique constraints
|
|
778
827
|
}
|
|
828
|
+
// create column's comment
|
|
829
|
+
if (column.comment) {
|
|
830
|
+
upQueries.push(new Query_1.Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + column.name + "\" IS " + this.escapeComment(column.comment)));
|
|
831
|
+
downQueries.push(new Query_1.Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + column.name + "\" IS " + this.escapeComment(column.comment)));
|
|
832
|
+
}
|
|
779
833
|
return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
|
|
780
834
|
case 4:
|
|
781
835
|
_b.sent();
|
|
@@ -972,8 +1026,8 @@ var CockroachQueryRunner = /** @class */ (function (_super) {
|
|
|
972
1026
|
}
|
|
973
1027
|
}
|
|
974
1028
|
if (oldColumn.comment !== newColumn.comment) {
|
|
975
|
-
upQueries.push(new Query_1.Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + oldColumn.name + "\" IS
|
|
976
|
-
downQueries.push(new Query_1.Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + newColumn.name + "\" IS
|
|
1029
|
+
upQueries.push(new Query_1.Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + oldColumn.name + "\" IS " + this.escapeComment(newColumn.comment)));
|
|
1030
|
+
downQueries.push(new Query_1.Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + newColumn.name + "\" IS " + this.escapeComment(oldColumn.comment)));
|
|
977
1031
|
}
|
|
978
1032
|
if (newColumn.isPrimary !== oldColumn.isPrimary) {
|
|
979
1033
|
primaryColumns = clonedTable.primaryColumns;
|
|
@@ -2073,7 +2127,7 @@ var CockroachQueryRunner = /** @class */ (function (_super) {
|
|
|
2073
2127
|
return "(\"table_schema\" = '" + schema + "' AND \"table_name\" = '" + name + "')";
|
|
2074
2128
|
}).join(" OR ");
|
|
2075
2129
|
tablesSql = "SELECT * FROM \"information_schema\".\"tables\" WHERE " + tablesCondition;
|
|
2076
|
-
columnsSql = "SELECT
|
|
2130
|
+
columnsSql = "\n SELECT\n *,\n pg_catalog.col_description(('\"' || table_catalog || '\".\"' || table_schema || '\".\"' || table_name || '\"')::regclass::oid, ordinal_position) as description\n FROM \"information_schema\".\"columns\"\n WHERE \"is_hidden\" = 'NO' AND " + tablesCondition;
|
|
2077
2131
|
constraintsCondition = tableNames.map(function (tableName) {
|
|
2078
2132
|
var _a = tslib_1.__read(tableName.split("."), 2), schema = _a[0], name = _a[1];
|
|
2079
2133
|
if (!name) {
|
|
@@ -2215,9 +2269,10 @@ var CockroachQueryRunner = /** @class */ (function (_super) {
|
|
|
2215
2269
|
}
|
|
2216
2270
|
else {
|
|
2217
2271
|
tableColumn.default = dbColumn["column_default"].replace(/:::.*/, "");
|
|
2272
|
+
tableColumn.default = tableColumn.default.replace(/^(-?[\d\.]+)$/, "($1)");
|
|
2218
2273
|
}
|
|
2219
2274
|
}
|
|
2220
|
-
tableColumn.comment = ""
|
|
2275
|
+
tableColumn.comment = dbColumn["description"] == null ? undefined : dbColumn["description"];
|
|
2221
2276
|
if (dbColumn["character_set_name"])
|
|
2222
2277
|
tableColumn.charset = dbColumn["character_set_name"];
|
|
2223
2278
|
return [2 /*return*/, tableColumn];
|
|
@@ -2361,6 +2416,9 @@ var CockroachQueryRunner = /** @class */ (function (_super) {
|
|
|
2361
2416
|
sql += ", CONSTRAINT \"" + primaryKeyName + "\" PRIMARY KEY (" + columnNames + ")";
|
|
2362
2417
|
}
|
|
2363
2418
|
sql += ")";
|
|
2419
|
+
table.columns
|
|
2420
|
+
.filter(function (it) { return it.comment; })
|
|
2421
|
+
.forEach(function (it) { return sql += "; COMMENT ON COLUMN " + _this.escapePath(table) + ".\"" + it.name + "\" IS " + _this.escapeComment(it.comment); });
|
|
2364
2422
|
return new Query_1.Query(sql);
|
|
2365
2423
|
};
|
|
2366
2424
|
/**
|
|
@@ -2535,6 +2593,18 @@ var CockroachQueryRunner = /** @class */ (function (_super) {
|
|
|
2535
2593
|
var columnName = columnOrName instanceof TableColumn_1.TableColumn ? columnOrName.name : columnOrName;
|
|
2536
2594
|
return disableEscape ? table.name + "_" + columnName + "_seq" : "\"" + table.name + "_" + columnName + "_seq\"";
|
|
2537
2595
|
};
|
|
2596
|
+
/**
|
|
2597
|
+
* Escapes a given comment so it's safe to include in a query.
|
|
2598
|
+
*/
|
|
2599
|
+
CockroachQueryRunner.prototype.escapeComment = function (comment) {
|
|
2600
|
+
if (comment === undefined || comment.length === 0) {
|
|
2601
|
+
return 'NULL';
|
|
2602
|
+
}
|
|
2603
|
+
comment = comment
|
|
2604
|
+
.replace("'", "''")
|
|
2605
|
+
.replace("\0", ""); // Null bytes aren't allowed in comments
|
|
2606
|
+
return "'" + comment + "'";
|
|
2607
|
+
};
|
|
2538
2608
|
/**
|
|
2539
2609
|
* Escapes given table or view path.
|
|
2540
2610
|
*/
|