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