typeorm 0.3.6-dev.4687be8 → 0.3.6-dev.49cbe23
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 +33 -4
- package/browser/cache/DbQueryResultCache.js +9 -1
- package/browser/cache/DbQueryResultCache.js.map +1 -1
- package/browser/cache/RedisQueryResultCache.js +3 -0
- package/browser/cache/RedisQueryResultCache.js.map +1 -1
- package/browser/data-source/DataSourceOptions.d.ts +2 -1
- package/browser/data-source/DataSourceOptions.js.map +1 -1
- package/browser/decorator/Index.js +1 -0
- package/browser/decorator/Index.js.map +1 -1
- package/browser/decorator/columns/PrimaryColumn.js +4 -1
- package/browser/decorator/columns/PrimaryColumn.js.map +1 -1
- package/browser/decorator/options/ColumnOptions.d.ts +2 -2
- package/browser/decorator/options/ColumnOptions.js.map +1 -1
- package/browser/decorator/options/IndexOptions.d.ts +8 -0
- package/browser/decorator/options/IndexOptions.js.map +1 -1
- package/browser/driver/DriverFactory.js +4 -0
- package/browser/driver/DriverFactory.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachDriver.js +4 -1
- package/browser/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/browser/driver/cockroachdb/CockroachQueryRunner.js +133 -11
- package/browser/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/browser/driver/mysql/MysqlDriver.d.ts +1 -0
- package/browser/driver/mysql/MysqlDriver.js +94 -23
- package/browser/driver/mysql/MysqlDriver.js.map +1 -1
- package/browser/driver/mysql/MysqlQueryRunner.js +203 -24
- package/browser/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/browser/driver/oracle/OracleDriver.js +79 -15
- package/browser/driver/oracle/OracleDriver.js.map +1 -1
- package/browser/driver/oracle/OracleQueryRunner.js +118 -21
- package/browser/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.js +95 -18
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.js +60 -38
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/spanner/SpannerConnectionCredentialsOptions.d.ts +17 -0
- package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js +3 -0
- package/browser/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -0
- package/browser/driver/spanner/SpannerConnectionOptions.d.ts +120 -0
- package/browser/driver/spanner/SpannerConnectionOptions.js +3 -0
- package/browser/driver/spanner/SpannerConnectionOptions.js.map +1 -0
- package/browser/driver/spanner/SpannerDriver.d.ts +241 -0
- package/browser/driver/spanner/SpannerDriver.js +604 -0
- package/browser/driver/spanner/SpannerDriver.js.map +1 -0
- package/browser/driver/spanner/SpannerQueryRunner.d.ts +350 -0
- package/browser/driver/spanner/SpannerQueryRunner.js +1445 -0
- package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -0
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js +21 -16
- package/browser/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +165 -20
- package/browser/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerDriver.d.ts +3 -1
- package/browser/driver/sqlserver/SqlServerDriver.js +99 -26
- package/browser/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/browser/driver/sqlserver/SqlServerQueryRunner.js +153 -17
- package/browser/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/browser/driver/types/ColumnTypes.d.ts +1 -1
- package/browser/driver/types/ColumnTypes.js.map +1 -1
- package/browser/driver/types/DatabaseType.d.ts +1 -1
- package/browser/driver/types/DatabaseType.js.map +1 -1
- package/browser/entity-schema/EntitySchemaColumnOptions.d.ts +2 -2
- package/browser/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaIndexOptions.d.ts +8 -0
- package/browser/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
- package/browser/entity-schema/EntitySchemaTransformer.js +1 -0
- package/browser/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/browser/logger/AdvancedConsoleLogger.d.ts +1 -1
- package/browser/logger/AdvancedConsoleLogger.js +1 -1
- package/browser/logger/AdvancedConsoleLogger.js.map +1 -1
- package/browser/metadata/ColumnMetadata.d.ts +2 -2
- package/browser/metadata/ColumnMetadata.js.map +1 -1
- package/browser/metadata/IndexMetadata.d.ts +8 -0
- package/browser/metadata/IndexMetadata.js +9 -0
- package/browser/metadata/IndexMetadata.js.map +1 -1
- package/browser/metadata-args/IndexMetadataArgs.d.ts +8 -0
- package/browser/metadata-args/IndexMetadataArgs.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataBuilder.js +13 -6
- package/browser/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/browser/metadata-builder/EntityMetadataValidator.js +8 -0
- package/browser/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +13 -6
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/platform/PlatformTools.js +5 -0
- package/browser/platform/PlatformTools.js.map +1 -1
- package/browser/query-builder/InsertQueryBuilder.js +15 -3
- package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.js +14 -2
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-builder/UpdateQueryBuilder.js +18 -7
- package/browser/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/browser/query-runner/BaseQueryRunner.d.ts +10 -0
- package/browser/query-runner/BaseQueryRunner.js +25 -1
- package/browser/query-runner/BaseQueryRunner.js.map +1 -1
- package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +6 -2
- package/browser/schema-builder/RdbmsSchemaBuilder.js +26 -6
- package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/browser/schema-builder/options/TableColumnOptions.d.ts +2 -2
- package/browser/schema-builder/options/TableColumnOptions.js.map +1 -1
- package/browser/schema-builder/options/TableIndexOptions.d.ts +8 -0
- package/browser/schema-builder/options/TableIndexOptions.js.map +1 -1
- package/browser/schema-builder/table/TableColumn.d.ts +2 -2
- package/browser/schema-builder/table/TableColumn.js.map +1 -1
- package/browser/schema-builder/table/TableIndex.d.ts +8 -0
- package/browser/schema-builder/table/TableIndex.js +3 -0
- package/browser/schema-builder/table/TableIndex.js.map +1 -1
- package/cache/DbQueryResultCache.js +9 -1
- package/cache/DbQueryResultCache.js.map +1 -1
- package/cache/RedisQueryResultCache.js +3 -0
- package/cache/RedisQueryResultCache.js.map +1 -1
- package/commands/InitCommand.js +1 -1
- package/commands/InitCommand.js.map +1 -1
- package/commands/MigrationGenerateCommand.js +3 -2
- package/commands/MigrationGenerateCommand.js.map +1 -1
- package/data-source/DataSourceOptions.d.ts +2 -1
- package/data-source/DataSourceOptions.js.map +1 -1
- package/decorator/Index.js +1 -0
- package/decorator/Index.js.map +1 -1
- package/decorator/columns/PrimaryColumn.js +4 -1
- package/decorator/columns/PrimaryColumn.js.map +1 -1
- package/decorator/options/ColumnOptions.d.ts +2 -2
- package/decorator/options/ColumnOptions.js.map +1 -1
- package/decorator/options/IndexOptions.d.ts +8 -0
- package/decorator/options/IndexOptions.js.map +1 -1
- package/driver/DriverFactory.js +4 -0
- package/driver/DriverFactory.js.map +1 -1
- package/driver/cockroachdb/CockroachDriver.js +4 -1
- package/driver/cockroachdb/CockroachDriver.js.map +1 -1
- package/driver/cockroachdb/CockroachQueryRunner.js +133 -11
- package/driver/cockroachdb/CockroachQueryRunner.js.map +1 -1
- package/driver/mysql/MysqlDriver.d.ts +1 -0
- package/driver/mysql/MysqlDriver.js +94 -23
- package/driver/mysql/MysqlDriver.js.map +1 -1
- package/driver/mysql/MysqlQueryRunner.js +203 -24
- package/driver/mysql/MysqlQueryRunner.js.map +1 -1
- package/driver/oracle/OracleDriver.js +79 -15
- package/driver/oracle/OracleDriver.js.map +1 -1
- package/driver/oracle/OracleQueryRunner.js +118 -21
- package/driver/oracle/OracleQueryRunner.js.map +1 -1
- package/driver/postgres/PostgresDriver.js +95 -18
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.js +60 -38
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/spanner/SpannerConnectionCredentialsOptions.d.ts +17 -0
- package/driver/spanner/SpannerConnectionCredentialsOptions.js +4 -0
- package/driver/spanner/SpannerConnectionCredentialsOptions.js.map +1 -0
- package/driver/spanner/SpannerConnectionOptions.d.ts +120 -0
- package/driver/spanner/SpannerConnectionOptions.js +4 -0
- package/driver/spanner/SpannerConnectionOptions.js.map +1 -0
- package/driver/spanner/SpannerDriver.d.ts +241 -0
- package/driver/spanner/SpannerDriver.js +608 -0
- package/driver/spanner/SpannerDriver.js.map +1 -0
- package/driver/spanner/SpannerQueryRunner.d.ts +350 -0
- package/driver/spanner/SpannerQueryRunner.js +1449 -0
- package/driver/spanner/SpannerQueryRunner.js.map +1 -0
- package/driver/sqlite-abstract/AbstractSqliteDriver.js +21 -16
- package/driver/sqlite-abstract/AbstractSqliteDriver.js.map +1 -1
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js +165 -20
- package/driver/sqlite-abstract/AbstractSqliteQueryRunner.js.map +1 -1
- package/driver/sqlserver/SqlServerDriver.d.ts +3 -1
- package/driver/sqlserver/SqlServerDriver.js +99 -26
- package/driver/sqlserver/SqlServerDriver.js.map +1 -1
- package/driver/sqlserver/SqlServerQueryRunner.js +153 -17
- package/driver/sqlserver/SqlServerQueryRunner.js.map +1 -1
- package/driver/types/ColumnTypes.d.ts +1 -1
- package/driver/types/ColumnTypes.js.map +1 -1
- package/driver/types/DatabaseType.d.ts +1 -1
- package/driver/types/DatabaseType.js.map +1 -1
- package/entity-schema/EntitySchemaColumnOptions.d.ts +2 -2
- package/entity-schema/EntitySchemaColumnOptions.js.map +1 -1
- package/entity-schema/EntitySchemaIndexOptions.d.ts +8 -0
- package/entity-schema/EntitySchemaIndexOptions.js.map +1 -1
- package/entity-schema/EntitySchemaTransformer.js +1 -0
- package/entity-schema/EntitySchemaTransformer.js.map +1 -1
- package/logger/AdvancedConsoleLogger.d.ts +1 -1
- package/logger/AdvancedConsoleLogger.js +1 -1
- package/logger/AdvancedConsoleLogger.js.map +1 -1
- package/metadata/ColumnMetadata.d.ts +2 -2
- package/metadata/ColumnMetadata.js.map +1 -1
- package/metadata/IndexMetadata.d.ts +8 -0
- package/metadata/IndexMetadata.js +9 -0
- package/metadata/IndexMetadata.js.map +1 -1
- package/metadata-args/IndexMetadataArgs.d.ts +8 -0
- package/metadata-args/IndexMetadataArgs.js.map +1 -1
- package/metadata-builder/EntityMetadataBuilder.js +13 -6
- package/metadata-builder/EntityMetadataBuilder.js.map +1 -1
- package/metadata-builder/EntityMetadataValidator.js +8 -0
- package/metadata-builder/EntityMetadataValidator.js.map +1 -1
- package/metadata-builder/JunctionEntityMetadataBuilder.js +13 -6
- package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/package.json +1 -1
- package/platform/PlatformTools.js +5 -0
- package/platform/PlatformTools.js.map +1 -1
- package/query-builder/InsertQueryBuilder.js +15 -3
- package/query-builder/InsertQueryBuilder.js.map +1 -1
- package/query-builder/SelectQueryBuilder.js +14 -2
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-builder/UpdateQueryBuilder.js +18 -7
- package/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/query-runner/BaseQueryRunner.d.ts +10 -0
- package/query-runner/BaseQueryRunner.js +25 -1
- package/query-runner/BaseQueryRunner.js.map +1 -1
- package/schema-builder/RdbmsSchemaBuilder.d.ts +6 -2
- package/schema-builder/RdbmsSchemaBuilder.js +26 -6
- package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/schema-builder/options/TableColumnOptions.d.ts +2 -2
- package/schema-builder/options/TableColumnOptions.js.map +1 -1
- package/schema-builder/options/TableIndexOptions.d.ts +8 -0
- package/schema-builder/options/TableIndexOptions.js.map +1 -1
- package/schema-builder/table/TableColumn.d.ts +2 -2
- package/schema-builder/table/TableColumn.js.map +1 -1
- package/schema-builder/table/TableIndex.d.ts +8 -0
- package/schema-builder/table/TableIndex.js +3 -0
- package/schema-builder/table/TableIndex.js.map +1 -1
|
@@ -383,6 +383,30 @@ class CockroachQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
383
383
|
downQueries.push(this.dropIndexSql(table, index));
|
|
384
384
|
});
|
|
385
385
|
}
|
|
386
|
+
// if table have column with generated type, we must add the expression to the metadata table
|
|
387
|
+
const generatedColumns = table.columns.filter((column) => column.generatedType && column.asExpression);
|
|
388
|
+
for (const column of generatedColumns) {
|
|
389
|
+
const currentSchema = await this.getCurrentSchema();
|
|
390
|
+
let { schema } = this.driver.parseTableName(table);
|
|
391
|
+
if (!schema) {
|
|
392
|
+
schema = currentSchema;
|
|
393
|
+
}
|
|
394
|
+
const insertQuery = this.insertTypeormMetadataSql({
|
|
395
|
+
schema: schema,
|
|
396
|
+
table: table.name,
|
|
397
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
398
|
+
name: column.name,
|
|
399
|
+
value: column.asExpression,
|
|
400
|
+
});
|
|
401
|
+
const deleteQuery = this.deleteTypeormMetadataSql({
|
|
402
|
+
schema: schema,
|
|
403
|
+
table: table.name,
|
|
404
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
405
|
+
name: column.name,
|
|
406
|
+
});
|
|
407
|
+
upQueries.push(insertQuery);
|
|
408
|
+
downQueries.push(deleteQuery);
|
|
409
|
+
}
|
|
386
410
|
await this.executeQueries(upQueries, downQueries);
|
|
387
411
|
}
|
|
388
412
|
/**
|
|
@@ -420,6 +444,30 @@ class CockroachQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
420
444
|
upQueries.push(new Query_1.Query(`DROP SEQUENCE ${this.escapePath(this.buildSequencePath(table, column))}`));
|
|
421
445
|
downQueries.push(new Query_1.Query(`CREATE SEQUENCE ${this.escapePath(this.buildSequencePath(table, column))}`));
|
|
422
446
|
});
|
|
447
|
+
// if table had columns with generated type, we must remove the expression from the metadata table
|
|
448
|
+
const generatedColumns = table.columns.filter((column) => column.generatedType && column.asExpression);
|
|
449
|
+
for (const column of generatedColumns) {
|
|
450
|
+
const currentSchema = await this.getCurrentSchema();
|
|
451
|
+
let { schema } = this.driver.parseTableName(table);
|
|
452
|
+
if (!schema) {
|
|
453
|
+
schema = currentSchema;
|
|
454
|
+
}
|
|
455
|
+
const deleteQuery = this.deleteTypeormMetadataSql({
|
|
456
|
+
schema: schema,
|
|
457
|
+
table: table.name,
|
|
458
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
459
|
+
name: column.name,
|
|
460
|
+
});
|
|
461
|
+
const insertQuery = this.insertTypeormMetadataSql({
|
|
462
|
+
schema: schema,
|
|
463
|
+
table: table.name,
|
|
464
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
465
|
+
name: column.name,
|
|
466
|
+
value: column.asExpression,
|
|
467
|
+
});
|
|
468
|
+
upQueries.push(deleteQuery);
|
|
469
|
+
downQueries.push(insertQuery);
|
|
470
|
+
}
|
|
423
471
|
await this.executeQueries(upQueries, downQueries);
|
|
424
472
|
}
|
|
425
473
|
/**
|
|
@@ -547,6 +595,28 @@ class CockroachQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
547
595
|
upQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} ADD CONSTRAINT "${pkName}" PRIMARY KEY (${columnNames})`));
|
|
548
596
|
downQueries.push(new Query_1.Query(`ALTER TABLE ${this.escapePath(table)} DROP CONSTRAINT "${pkName}"`));
|
|
549
597
|
}
|
|
598
|
+
if (column.generatedType && column.asExpression) {
|
|
599
|
+
const currentSchema = await this.getCurrentSchema();
|
|
600
|
+
let { schema } = this.driver.parseTableName(table);
|
|
601
|
+
if (!schema) {
|
|
602
|
+
schema = currentSchema;
|
|
603
|
+
}
|
|
604
|
+
const insertQuery = this.insertTypeormMetadataSql({
|
|
605
|
+
schema: schema,
|
|
606
|
+
table: table.name,
|
|
607
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
608
|
+
name: column.name,
|
|
609
|
+
value: column.asExpression,
|
|
610
|
+
});
|
|
611
|
+
const deleteQuery = this.deleteTypeormMetadataSql({
|
|
612
|
+
schema: schema,
|
|
613
|
+
table: table.name,
|
|
614
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
615
|
+
name: column.name,
|
|
616
|
+
});
|
|
617
|
+
upQueries.push(insertQuery);
|
|
618
|
+
downQueries.push(deleteQuery);
|
|
619
|
+
}
|
|
550
620
|
// create column index
|
|
551
621
|
const columnIndex = clonedTable.indices.find((index) => index.columnNames.length === 1 &&
|
|
552
622
|
index.columnNames[0] === column.name);
|
|
@@ -631,7 +701,9 @@ class CockroachQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
631
701
|
if (!oldColumn)
|
|
632
702
|
throw new error_1.TypeORMError(`Column "${oldTableColumnOrName}" was not found in the "${table.name}" table.`);
|
|
633
703
|
if (oldColumn.type !== newColumn.type ||
|
|
634
|
-
oldColumn.length !== newColumn.length
|
|
704
|
+
oldColumn.length !== newColumn.length ||
|
|
705
|
+
oldColumn.generatedType !== newColumn.generatedType ||
|
|
706
|
+
oldColumn.asExpression !== newColumn.asExpression) {
|
|
635
707
|
// To avoid data conversion, we just recreate column
|
|
636
708
|
await this.dropColumn(table, oldColumn);
|
|
637
709
|
await this.addColumn(table, newColumn);
|
|
@@ -904,6 +976,28 @@ class CockroachQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
904
976
|
upQueries.push(new Query_1.Query(`DROP SEQUENCE ${this.escapePath(this.buildSequencePath(table, column))}`));
|
|
905
977
|
downQueries.push(new Query_1.Query(`CREATE SEQUENCE ${this.escapePath(this.buildSequencePath(table, column))}`));
|
|
906
978
|
}
|
|
979
|
+
if (column.generatedType && column.asExpression) {
|
|
980
|
+
const currentSchema = await this.getCurrentSchema();
|
|
981
|
+
let { schema } = this.driver.parseTableName(table);
|
|
982
|
+
if (!schema) {
|
|
983
|
+
schema = currentSchema;
|
|
984
|
+
}
|
|
985
|
+
const deleteQuery = this.deleteTypeormMetadataSql({
|
|
986
|
+
schema: schema,
|
|
987
|
+
table: table.name,
|
|
988
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
989
|
+
name: column.name,
|
|
990
|
+
});
|
|
991
|
+
const insertQuery = this.insertTypeormMetadataSql({
|
|
992
|
+
schema: schema,
|
|
993
|
+
table: table.name,
|
|
994
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
995
|
+
name: column.name,
|
|
996
|
+
value: column.asExpression,
|
|
997
|
+
});
|
|
998
|
+
upQueries.push(deleteQuery);
|
|
999
|
+
downQueries.push(insertQuery);
|
|
1000
|
+
}
|
|
907
1001
|
await this.executeQueries(upQueries, downQueries);
|
|
908
1002
|
clonedTable.removeColumn(column);
|
|
909
1003
|
this.replaceCachedTable(table, clonedTable);
|
|
@@ -1338,12 +1432,14 @@ class CockroachQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1338
1432
|
return `("table_schema" = '${table_schema}' AND "table_name" = '${table_name}')`;
|
|
1339
1433
|
})
|
|
1340
1434
|
.join(" OR ");
|
|
1341
|
-
const columnsSql = `
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1435
|
+
const columnsSql = `SELECT "columns".*, "attr"."attgenerated" as "generated_type", ` +
|
|
1436
|
+
`pg_catalog.col_description(('"' || table_catalog || '"."' || table_schema || '"."' || table_name || '"')::regclass::oid, ordinal_position) as description ` +
|
|
1437
|
+
`FROM "information_schema"."columns" ` +
|
|
1438
|
+
`LEFT JOIN "pg_class" AS "cls" ON "cls"."relname" = "table_name" ` +
|
|
1439
|
+
`LEFT JOIN "pg_namespace" AS "ns" ON "ns"."oid" = "cls"."relnamespace" AND "ns"."nspname" = "table_schema" ` +
|
|
1440
|
+
`LEFT JOIN "pg_attribute" AS "attr" ON "attr"."attrelid" = "cls"."oid" AND "attr"."attname" = "column_name" AND "attr"."attnum" = "ordinal_position" ` +
|
|
1441
|
+
`WHERE "is_hidden" = 'NO' AND ` +
|
|
1442
|
+
columnsCondiiton;
|
|
1347
1443
|
const constraintsCondition = dbTables
|
|
1348
1444
|
.map(({ table_name, table_schema }) => {
|
|
1349
1445
|
return `("ns"."nspname" = '${table_schema}' AND "t"."relname" = '${table_name}')`;
|
|
@@ -1512,6 +1608,27 @@ class CockroachQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1512
1608
|
tableColumn.default.replace(/^(-?[\d\.]+)$/, "($1)");
|
|
1513
1609
|
}
|
|
1514
1610
|
}
|
|
1611
|
+
if (dbColumn["is_generated"] === "YES" &&
|
|
1612
|
+
dbColumn["generation_expression"]) {
|
|
1613
|
+
tableColumn.generatedType =
|
|
1614
|
+
dbColumn["generated_type"] === "s"
|
|
1615
|
+
? "STORED"
|
|
1616
|
+
: "VIRTUAL";
|
|
1617
|
+
// We cannot relay on information_schema.columns.generation_expression, because it is formatted different.
|
|
1618
|
+
const asExpressionQuery = await this.selectTypeormMetadataSql({
|
|
1619
|
+
schema: dbTable["table_schema"],
|
|
1620
|
+
table: dbTable["table_name"],
|
|
1621
|
+
type: MetadataTableType_1.MetadataTableType.GENERATED_COLUMN,
|
|
1622
|
+
name: tableColumn.name,
|
|
1623
|
+
});
|
|
1624
|
+
const results = await this.query(asExpressionQuery.query, asExpressionQuery.parameters);
|
|
1625
|
+
if (results[0] && results[0].value) {
|
|
1626
|
+
tableColumn.asExpression = results[0].value;
|
|
1627
|
+
}
|
|
1628
|
+
else {
|
|
1629
|
+
tableColumn.asExpression = "";
|
|
1630
|
+
}
|
|
1631
|
+
}
|
|
1515
1632
|
tableColumn.comment =
|
|
1516
1633
|
dbColumn["description"] == null
|
|
1517
1634
|
? undefined
|
|
@@ -1904,10 +2021,15 @@ class CockroachQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1904
2021
|
}
|
|
1905
2022
|
if (!column.isGenerated)
|
|
1906
2023
|
c += " " + this.connection.driver.createFullType(column);
|
|
1907
|
-
if (column.
|
|
1908
|
-
c +=
|
|
1909
|
-
|
|
1910
|
-
|
|
2024
|
+
if (column.asExpression) {
|
|
2025
|
+
c += ` AS (${column.asExpression}) ${column.generatedType ? column.generatedType : "VIRTUAL"}`;
|
|
2026
|
+
}
|
|
2027
|
+
else {
|
|
2028
|
+
if (column.charset)
|
|
2029
|
+
c += ' CHARACTER SET "' + column.charset + '"';
|
|
2030
|
+
if (column.collation)
|
|
2031
|
+
c += ' COLLATE "' + column.collation + '"';
|
|
2032
|
+
}
|
|
1911
2033
|
if (!column.isNullable)
|
|
1912
2034
|
c += " NOT NULL";
|
|
1913
2035
|
if (!column.isGenerated &&
|