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 View_1 = require("../../schema-builder/view/View");
|
|
|
17
17
|
var Broadcaster_1 = require("../../subscriber/Broadcaster");
|
|
18
18
|
var OrmUtils_1 = require("../../util/OrmUtils");
|
|
19
19
|
var Query_1 = require("../Query");
|
|
20
|
+
var BroadcasterResult_1 = require("../../subscriber/BroadcasterResult");
|
|
20
21
|
/**
|
|
21
22
|
* Runs queries on a single postgres database connection.
|
|
22
23
|
*/
|
|
@@ -97,21 +98,38 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
97
98
|
*/
|
|
98
99
|
PostgresQueryRunner.prototype.startTransaction = function (isolationLevel) {
|
|
99
100
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
101
|
+
var beforeBroadcastResult, afterBroadcastResult;
|
|
100
102
|
return tslib_1.__generator(this, function (_a) {
|
|
101
103
|
switch (_a.label) {
|
|
102
104
|
case 0:
|
|
103
105
|
if (this.isTransactionActive)
|
|
104
106
|
throw new TransactionAlreadyStartedError_1.TransactionAlreadyStartedError();
|
|
107
|
+
beforeBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
108
|
+
this.broadcaster.broadcastBeforeTransactionStartEvent(beforeBroadcastResult);
|
|
109
|
+
if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
|
|
110
|
+
return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
|
|
111
|
+
case 1:
|
|
112
|
+
_a.sent();
|
|
113
|
+
_a.label = 2;
|
|
114
|
+
case 2:
|
|
105
115
|
this.isTransactionActive = true;
|
|
106
116
|
return [4 /*yield*/, this.query("START TRANSACTION")];
|
|
107
|
-
case
|
|
117
|
+
case 3:
|
|
108
118
|
_a.sent();
|
|
109
|
-
if (!isolationLevel) return [3 /*break*/,
|
|
119
|
+
if (!isolationLevel) return [3 /*break*/, 5];
|
|
110
120
|
return [4 /*yield*/, this.query("SET TRANSACTION ISOLATION LEVEL " + isolationLevel)];
|
|
111
|
-
case
|
|
121
|
+
case 4:
|
|
112
122
|
_a.sent();
|
|
113
|
-
_a.label =
|
|
114
|
-
case
|
|
123
|
+
_a.label = 5;
|
|
124
|
+
case 5:
|
|
125
|
+
afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
126
|
+
this.broadcaster.broadcastAfterTransactionStartEvent(afterBroadcastResult);
|
|
127
|
+
if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 7];
|
|
128
|
+
return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
|
|
129
|
+
case 6:
|
|
130
|
+
_a.sent();
|
|
131
|
+
_a.label = 7;
|
|
132
|
+
case 7: return [2 /*return*/];
|
|
115
133
|
}
|
|
116
134
|
});
|
|
117
135
|
});
|
|
@@ -122,16 +140,31 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
122
140
|
*/
|
|
123
141
|
PostgresQueryRunner.prototype.commitTransaction = function () {
|
|
124
142
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
143
|
+
var beforeBroadcastResult, afterBroadcastResult;
|
|
125
144
|
return tslib_1.__generator(this, function (_a) {
|
|
126
145
|
switch (_a.label) {
|
|
127
146
|
case 0:
|
|
128
147
|
if (!this.isTransactionActive)
|
|
129
148
|
throw new TransactionNotStartedError_1.TransactionNotStartedError();
|
|
130
|
-
|
|
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)];
|
|
131
153
|
case 1:
|
|
154
|
+
_a.sent();
|
|
155
|
+
_a.label = 2;
|
|
156
|
+
case 2: return [4 /*yield*/, this.query("COMMIT")];
|
|
157
|
+
case 3:
|
|
132
158
|
_a.sent();
|
|
133
159
|
this.isTransactionActive = false;
|
|
134
|
-
|
|
160
|
+
afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
161
|
+
this.broadcaster.broadcastAfterTransactionCommitEvent(afterBroadcastResult);
|
|
162
|
+
if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];
|
|
163
|
+
return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
|
|
164
|
+
case 4:
|
|
165
|
+
_a.sent();
|
|
166
|
+
_a.label = 5;
|
|
167
|
+
case 5: return [2 /*return*/];
|
|
135
168
|
}
|
|
136
169
|
});
|
|
137
170
|
});
|
|
@@ -142,16 +175,31 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
142
175
|
*/
|
|
143
176
|
PostgresQueryRunner.prototype.rollbackTransaction = function () {
|
|
144
177
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
178
|
+
var beforeBroadcastResult, afterBroadcastResult;
|
|
145
179
|
return tslib_1.__generator(this, function (_a) {
|
|
146
180
|
switch (_a.label) {
|
|
147
181
|
case 0:
|
|
148
182
|
if (!this.isTransactionActive)
|
|
149
183
|
throw new TransactionNotStartedError_1.TransactionNotStartedError();
|
|
150
|
-
|
|
184
|
+
beforeBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
185
|
+
this.broadcaster.broadcastBeforeTransactionRollbackEvent(beforeBroadcastResult);
|
|
186
|
+
if (!(beforeBroadcastResult.promises.length > 0)) return [3 /*break*/, 2];
|
|
187
|
+
return [4 /*yield*/, Promise.all(beforeBroadcastResult.promises)];
|
|
151
188
|
case 1:
|
|
189
|
+
_a.sent();
|
|
190
|
+
_a.label = 2;
|
|
191
|
+
case 2: return [4 /*yield*/, this.query("ROLLBACK")];
|
|
192
|
+
case 3:
|
|
152
193
|
_a.sent();
|
|
153
194
|
this.isTransactionActive = false;
|
|
154
|
-
|
|
195
|
+
afterBroadcastResult = new BroadcasterResult_1.BroadcasterResult();
|
|
196
|
+
this.broadcaster.broadcastAfterTransactionRollbackEvent(afterBroadcastResult);
|
|
197
|
+
if (!(afterBroadcastResult.promises.length > 0)) return [3 /*break*/, 5];
|
|
198
|
+
return [4 /*yield*/, Promise.all(afterBroadcastResult.promises)];
|
|
199
|
+
case 4:
|
|
200
|
+
_a.sent();
|
|
201
|
+
_a.label = 5;
|
|
202
|
+
case 5: return [2 /*return*/];
|
|
155
203
|
}
|
|
156
204
|
});
|
|
157
205
|
});
|
|
@@ -738,6 +786,11 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
738
786
|
upQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " ADD CONSTRAINT \"" + uniqueConstraint.name + "\" UNIQUE (\"" + column.name + "\")"));
|
|
739
787
|
downQueries.push(new Query_1.Query("ALTER TABLE " + this.escapePath(table) + " DROP CONSTRAINT \"" + uniqueConstraint.name + "\""));
|
|
740
788
|
}
|
|
789
|
+
// create column's comment
|
|
790
|
+
if (column.comment) {
|
|
791
|
+
upQueries.push(new Query_1.Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + column.name + "\" IS " + this.escapeComment(column.comment)));
|
|
792
|
+
downQueries.push(new Query_1.Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + column.name + "\" IS " + this.escapeComment(column.comment)));
|
|
793
|
+
}
|
|
741
794
|
return [4 /*yield*/, this.executeQueries(upQueries, downQueries)];
|
|
742
795
|
case 6:
|
|
743
796
|
_b.sent();
|
|
@@ -989,8 +1042,8 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
989
1042
|
}
|
|
990
1043
|
}
|
|
991
1044
|
if (oldColumn.comment !== newColumn.comment) {
|
|
992
|
-
upQueries.push(new Query_1.Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + oldColumn.name + "\" IS
|
|
993
|
-
downQueries.push(new Query_1.Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + newColumn.name + "\" IS
|
|
1045
|
+
upQueries.push(new Query_1.Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + oldColumn.name + "\" IS " + this.escapeComment(newColumn.comment)));
|
|
1046
|
+
downQueries.push(new Query_1.Query("COMMENT ON COLUMN " + this.escapePath(table) + ".\"" + newColumn.name + "\" IS " + this.escapeComment(oldColumn.comment)));
|
|
994
1047
|
}
|
|
995
1048
|
if (newColumn.isPrimary !== oldColumn.isPrimary) {
|
|
996
1049
|
primaryColumns = clonedTable.primaryColumns;
|
|
@@ -2119,7 +2172,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2119
2172
|
*/
|
|
2120
2173
|
PostgresQueryRunner.prototype.loadTables = function (tableNames) {
|
|
2121
2174
|
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;
|
|
2175
|
+
var currentSchemaQuery, currentSchema, tablesCondition, tablesSql, columnsSql, constraintsCondition, constraintsSql, indicesSql, foreignKeysCondition, hasRelispartitionColumn, isPartitionCondition, foreignKeysSql, _a, dbTables, dbColumns, dbConstraints, dbIndices, dbForeignKeys;
|
|
2123
2176
|
var _this = this;
|
|
2124
2177
|
return tslib_1.__generator(this, function (_b) {
|
|
2125
2178
|
switch (_b.label) {
|
|
@@ -2140,7 +2193,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2140
2193
|
return "(\"table_schema\" = '" + schema + "' AND \"table_name\" = '" + name + "')";
|
|
2141
2194
|
}).join(" OR ");
|
|
2142
2195
|
tablesSql = "SELECT * FROM \"information_schema\".\"tables\" WHERE " + tablesCondition;
|
|
2143
|
-
columnsSql = "SELECT
|
|
2196
|
+
columnsSql = "\n SELECT\n *,\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 FROM \"information_schema\".\"columns\"\n WHERE\n " + tablesCondition;
|
|
2144
2197
|
constraintsCondition = tableNames.map(function (tableName) {
|
|
2145
2198
|
var _a = tslib_1.__read(tableName.split("."), 2), schema = _a[0], name = _a[1];
|
|
2146
2199
|
if (!name) {
|
|
@@ -2156,7 +2209,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2156
2209
|
"INNER JOIN \"pg_class\" \"t\" ON \"t\".\"oid\" = \"cnst\".\"conrelid\" " +
|
|
2157
2210
|
"INNER JOIN \"pg_namespace\" \"ns\" ON \"ns\".\"oid\" = \"cnst\".\"connamespace\" " +
|
|
2158
2211
|
"LEFT JOIN \"pg_attribute\" \"a\" ON \"a\".\"attrelid\" = \"cnst\".\"conrelid\" AND \"a\".\"attnum\" = ANY (\"cnst\".\"conkey\") " +
|
|
2159
|
-
("WHERE \"t\".\"relkind\"
|
|
2212
|
+
("WHERE \"t\".\"relkind\" IN ('r', 'p') AND (" + constraintsCondition + ")");
|
|
2160
2213
|
indicesSql = "SELECT \"ns\".\"nspname\" AS \"table_schema\", \"t\".\"relname\" AS \"table_name\", \"i\".\"relname\" AS \"constraint_name\", \"a\".\"attname\" AS \"column_name\", " +
|
|
2161
2214
|
"CASE \"ix\".\"indisunique\" WHEN 't' THEN 'TRUE' ELSE'FALSE' END AS \"is_unique\", pg_get_expr(\"ix\".\"indpred\", \"ix\".\"indrelid\") AS \"condition\", " +
|
|
2162
2215
|
"\"types\".\"typname\" AS \"type_name\" " +
|
|
@@ -2167,7 +2220,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2167
2220
|
"INNER JOIN \"pg_class\" \"i\" ON \"i\".\"oid\" = \"ix\".\"indexrelid\" " +
|
|
2168
2221
|
"INNER JOIN \"pg_type\" \"types\" ON \"types\".\"oid\" = \"a\".\"atttypid\" " +
|
|
2169
2222
|
"LEFT JOIN \"pg_constraint\" \"cnst\" ON \"cnst\".\"conname\" = \"i\".\"relname\" " +
|
|
2170
|
-
("WHERE \"t\".\"relkind\"
|
|
2223
|
+
("WHERE \"t\".\"relkind\" IN ('r', 'p') AND \"cnst\".\"contype\" IS NULL AND (" + constraintsCondition + ")");
|
|
2171
2224
|
foreignKeysCondition = tableNames.map(function (tableName) {
|
|
2172
2225
|
var _a = tslib_1.__read(tableName.split("."), 2), schema = _a[0], name = _a[1];
|
|
2173
2226
|
if (!name) {
|
|
@@ -2176,6 +2229,10 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2176
2229
|
}
|
|
2177
2230
|
return "(\"ns\".\"nspname\" = '" + schema + "' AND \"cl\".\"relname\" = '" + name + "')";
|
|
2178
2231
|
}).join(" OR ");
|
|
2232
|
+
return [4 /*yield*/, this.hasSupportForPartitionedTables()];
|
|
2233
|
+
case 2:
|
|
2234
|
+
hasRelispartitionColumn = _b.sent();
|
|
2235
|
+
isPartitionCondition = hasRelispartitionColumn ? " AND \"cl\".\"relispartition\" = 'f'" : "";
|
|
2179
2236
|
foreignKeysSql = "SELECT \"con\".\"conname\" AS \"constraint_name\", \"con\".\"nspname\" AS \"table_schema\", \"con\".\"relname\" AS \"table_name\", \"att2\".\"attname\" AS \"column_name\", " +
|
|
2180
2237
|
"\"ns\".\"nspname\" AS \"referenced_table_schema\", \"cl\".\"relname\" AS \"referenced_table_name\", \"att\".\"attname\" AS \"referenced_column_name\", \"con\".\"confdeltype\" AS \"on_delete\", " +
|
|
2181
2238
|
"\"con\".\"confupdtype\" AS \"on_update\", \"con\".\"condeferrable\" AS \"deferrable\", \"con\".\"condeferred\" AS \"deferred\" " +
|
|
@@ -2191,7 +2248,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2191
2248
|
("WHERE \"con1\".\"contype\" = 'f' AND (" + foreignKeysCondition + ") ") +
|
|
2192
2249
|
") \"con\" " +
|
|
2193
2250
|
"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\" " +
|
|
2251
|
+
("INNER JOIN \"pg_class\" \"cl\" ON \"cl\".\"oid\" = \"con\".\"confrelid\" " + isPartitionCondition) +
|
|
2195
2252
|
"INNER JOIN \"pg_namespace\" \"ns\" ON \"cl\".\"relnamespace\" = \"ns\".\"oid\" " +
|
|
2196
2253
|
"INNER JOIN \"pg_attribute\" \"att2\" ON \"att2\".\"attrelid\" = \"con\".\"conrelid\" AND \"att2\".\"attnum\" = \"con\".\"parent\"";
|
|
2197
2254
|
return [4 /*yield*/, Promise.all([
|
|
@@ -2201,7 +2258,7 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2201
2258
|
this.query(indicesSql),
|
|
2202
2259
|
this.query(foreignKeysSql),
|
|
2203
2260
|
])];
|
|
2204
|
-
case
|
|
2261
|
+
case 3:
|
|
2205
2262
|
_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
2263
|
// if tables were not found in the db, no need to proceed
|
|
2207
2264
|
if (!dbTables.length)
|
|
@@ -2317,9 +2374,10 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2317
2374
|
}
|
|
2318
2375
|
else {
|
|
2319
2376
|
tableColumn.default = dbColumn["column_default"].replace(/::.*/, "");
|
|
2377
|
+
tableColumn.default = tableColumn.default.replace(/^(-?\d+)$/, "'$1'");
|
|
2320
2378
|
}
|
|
2321
2379
|
}
|
|
2322
|
-
tableColumn.comment = ""
|
|
2380
|
+
tableColumn.comment = dbColumn["description"] == null ? undefined : dbColumn["description"];
|
|
2323
2381
|
if (dbColumn["character_set_name"])
|
|
2324
2382
|
tableColumn.charset = dbColumn["character_set_name"];
|
|
2325
2383
|
if (dbColumn["collation_name"])
|
|
@@ -2472,6 +2530,9 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2472
2530
|
sql += ", CONSTRAINT \"" + primaryKeyName + "\" PRIMARY KEY (" + columnNames + ")";
|
|
2473
2531
|
}
|
|
2474
2532
|
sql += ")";
|
|
2533
|
+
table.columns
|
|
2534
|
+
.filter(function (it) { return it.comment; })
|
|
2535
|
+
.forEach(function (it) { return sql += "; COMMENT ON COLUMN " + _this.escapePath(table) + ".\"" + it.name + "\" IS " + _this.escapeComment(it.comment); });
|
|
2475
2536
|
return new Query_1.Query(sql);
|
|
2476
2537
|
};
|
|
2477
2538
|
/**
|
|
@@ -2791,6 +2852,18 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2791
2852
|
});
|
|
2792
2853
|
});
|
|
2793
2854
|
};
|
|
2855
|
+
/**
|
|
2856
|
+
* Escapes a given comment so it's safe to include in a query.
|
|
2857
|
+
*/
|
|
2858
|
+
PostgresQueryRunner.prototype.escapeComment = function (comment) {
|
|
2859
|
+
if (comment === undefined || comment.length === 0) {
|
|
2860
|
+
return 'NULL';
|
|
2861
|
+
}
|
|
2862
|
+
comment = comment
|
|
2863
|
+
.replace("'", "''")
|
|
2864
|
+
.replace("\0", ""); // Null bytes aren't allowed in comments
|
|
2865
|
+
return "'" + comment + "'";
|
|
2866
|
+
};
|
|
2794
2867
|
/**
|
|
2795
2868
|
* Escapes given table or view path.
|
|
2796
2869
|
*/
|
|
@@ -2852,6 +2925,22 @@ var PostgresQueryRunner = /** @class */ (function (_super) {
|
|
|
2852
2925
|
c += " DEFAULT " + this.driver.uuidGenerator;
|
|
2853
2926
|
return c;
|
|
2854
2927
|
};
|
|
2928
|
+
/**
|
|
2929
|
+
* Checks if the PostgreSQL server has support for partitioned tables
|
|
2930
|
+
*/
|
|
2931
|
+
PostgresQueryRunner.prototype.hasSupportForPartitionedTables = function () {
|
|
2932
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
2933
|
+
var result;
|
|
2934
|
+
return tslib_1.__generator(this, function (_a) {
|
|
2935
|
+
switch (_a.label) {
|
|
2936
|
+
case 0: return [4 /*yield*/, this.query("SELECT TRUE FROM information_schema.columns WHERE table_name = 'pg_class' and column_name = 'relispartition'")];
|
|
2937
|
+
case 1:
|
|
2938
|
+
result = _a.sent();
|
|
2939
|
+
return [2 /*return*/, result.length ? true : false];
|
|
2940
|
+
}
|
|
2941
|
+
});
|
|
2942
|
+
});
|
|
2943
|
+
};
|
|
2855
2944
|
return PostgresQueryRunner;
|
|
2856
2945
|
}(BaseQueryRunner_1.BaseQueryRunner));
|
|
2857
2946
|
exports.PostgresQueryRunner = PostgresQueryRunner;
|