typeorm 0.3.11-dev.658604d → 0.3.11-dev.6ba48bd
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/browser/decorator/options/JoinTableMultipleColumnsOptions.d.ts +6 -0
- package/browser/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
- package/browser/decorator/options/JoinTableOptions.d.ts +6 -0
- package/browser/decorator/options/JoinTableOptions.js.map +1 -1
- package/browser/decorator/relations/JoinTable.js +1 -0
- package/browser/decorator/relations/JoinTable.js.map +1 -1
- package/browser/driver/Driver.d.ts +4 -0
- package/browser/driver/Driver.js.map +1 -1
- package/browser/driver/cordova/CordovaDriver.d.ts +1 -0
- package/browser/driver/cordova/CordovaDriver.js +1 -0
- package/browser/driver/cordova/CordovaDriver.js.map +1 -1
- package/browser/driver/oracle/OracleDriver.d.ts +1 -0
- package/browser/driver/oracle/OracleDriver.js +1 -0
- package/browser/driver/oracle/OracleDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresConnectionOptions.d.ts +16 -0
- package/browser/driver/postgres/PostgresConnectionOptions.js.map +1 -1
- package/browser/driver/postgres/PostgresDriver.js +11 -1
- package/browser/driver/postgres/PostgresDriver.js.map +1 -1
- package/browser/driver/postgres/PostgresQueryRunner.d.ts +17 -1
- package/browser/driver/postgres/PostgresQueryRunner.js +97 -0
- package/browser/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/browser/driver/sap/SapDriver.d.ts +1 -0
- package/browser/driver/sap/SapDriver.js +1 -0
- package/browser/driver/sap/SapDriver.js.map +1 -1
- package/browser/driver/sqlite/SqliteConnectionOptions.d.ts +6 -0
- package/browser/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
- package/browser/driver/sqlite/SqliteDriver.js +18 -6
- package/browser/driver/sqlite/SqliteDriver.js.map +1 -1
- package/browser/entity-manager/EntityManager.d.ts +4 -0
- package/browser/entity-manager/EntityManager.js +14 -1
- package/browser/entity-manager/EntityManager.js.map +1 -1
- package/browser/error/ForbiddenTransactionModeOverrideError.d.ts +8 -0
- package/browser/error/ForbiddenTransactionModeOverrideError.js +12 -0
- package/browser/error/ForbiddenTransactionModeOverrideError.js.map +1 -0
- package/browser/error/index.d.ts +1 -0
- package/browser/error/index.js +1 -0
- package/browser/error/index.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/operator/And.d.ts +2 -0
- package/browser/find-options/operator/And.js +6 -0
- package/browser/find-options/operator/And.js.map +1 -0
- package/browser/index.d.ts +1 -0
- package/browser/index.js +1 -0
- package/browser/index.js.map +1 -1
- package/browser/metadata-args/JoinTableMetadataArgs.d.ts +6 -0
- package/browser/metadata-args/JoinTableMetadataArgs.js.map +1 -1
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js +1 -0
- package/browser/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/browser/migration/Migration.d.ts +5 -1
- package/browser/migration/Migration.js +2 -1
- package/browser/migration/Migration.js.map +1 -1
- package/browser/migration/MigrationExecutor.js +39 -6
- package/browser/migration/MigrationExecutor.js.map +1 -1
- package/browser/migration/MigrationInterface.d.ts +7 -0
- package/browser/migration/MigrationInterface.js.map +1 -1
- package/browser/naming-strategy/NamingStrategyInterface.d.ts +2 -1
- package/browser/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/browser/persistence/EntityPersistExecutor.js +2 -1
- package/browser/persistence/EntityPersistExecutor.js.map +1 -1
- package/browser/query-builder/InsertOrUpdateOptions.d.ts +7 -0
- package/browser/query-builder/InsertOrUpdateOptions.js.map +1 -1
- package/browser/query-builder/InsertQueryBuilder.js +10 -1
- package/browser/query-builder/InsertQueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryBuilder.d.ts +1 -0
- package/browser/query-builder/QueryBuilder.js +22 -0
- package/browser/query-builder/QueryBuilder.js.map +1 -1
- package/browser/query-builder/QueryExpressionMap.d.ts +1 -0
- package/browser/query-builder/QueryExpressionMap.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.d.ts +19 -0
- package/browser/query-builder/SelectQueryBuilder.js +76 -8
- package/browser/query-builder/SelectQueryBuilder.js.map +1 -1
- package/browser/query-builder/WhereClause.d.ts +1 -1
- package/browser/query-builder/WhereClause.js.map +1 -1
- package/browser/query-runner/BaseQueryRunner.d.ts +1 -1
- package/browser/query-runner/BaseQueryRunner.js.map +1 -1
- package/browser/repository/Repository.d.ts +5 -1
- package/browser/repository/Repository.js +6 -0
- package/browser/repository/Repository.js.map +1 -1
- package/browser/repository/TreeRepository.d.ts +0 -4
- package/browser/repository/TreeRepository.js +0 -11
- package/browser/repository/TreeRepository.js.map +1 -1
- package/browser/repository/UpsertOptions.d.ts +5 -2
- package/browser/repository/UpsertOptions.js.map +1 -1
- package/browser/schema-builder/RdbmsSchemaBuilder.d.ts +4 -0
- package/browser/schema-builder/RdbmsSchemaBuilder.js +74 -2
- package/browser/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/browser/schema-builder/view/View.d.ts +13 -1
- package/browser/schema-builder/view/View.js +16 -0
- package/browser/schema-builder/view/View.js.map +1 -1
- package/commands/InitCommand.js +32 -5
- package/commands/InitCommand.js.map +1 -1
- package/commands/MigrationGenerateCommand.js +1 -0
- package/commands/MigrationGenerateCommand.js.map +1 -1
- package/decorator/options/JoinTableMultipleColumnsOptions.d.ts +6 -0
- package/decorator/options/JoinTableMultipleColumnsOptions.js.map +1 -1
- package/decorator/options/JoinTableOptions.d.ts +6 -0
- package/decorator/options/JoinTableOptions.js.map +1 -1
- package/decorator/relations/JoinTable.js +1 -0
- package/decorator/relations/JoinTable.js.map +1 -1
- package/driver/Driver.d.ts +4 -0
- package/driver/Driver.js.map +1 -1
- package/driver/cordova/CordovaDriver.d.ts +1 -0
- package/driver/cordova/CordovaDriver.js +1 -0
- package/driver/cordova/CordovaDriver.js.map +1 -1
- package/driver/oracle/OracleDriver.d.ts +1 -0
- package/driver/oracle/OracleDriver.js +1 -0
- package/driver/oracle/OracleDriver.js.map +1 -1
- package/driver/postgres/PostgresConnectionOptions.d.ts +16 -0
- package/driver/postgres/PostgresConnectionOptions.js.map +1 -1
- package/driver/postgres/PostgresDriver.js +11 -1
- package/driver/postgres/PostgresDriver.js.map +1 -1
- package/driver/postgres/PostgresQueryRunner.d.ts +17 -1
- package/driver/postgres/PostgresQueryRunner.js +97 -0
- package/driver/postgres/PostgresQueryRunner.js.map +1 -1
- package/driver/sap/SapDriver.d.ts +1 -0
- package/driver/sap/SapDriver.js +1 -0
- package/driver/sap/SapDriver.js.map +1 -1
- package/driver/sqlite/SqliteConnectionOptions.d.ts +6 -0
- package/driver/sqlite/SqliteConnectionOptions.js.map +1 -1
- package/driver/sqlite/SqliteDriver.js +18 -6
- package/driver/sqlite/SqliteDriver.js.map +1 -1
- package/entity-manager/EntityManager.d.ts +4 -0
- package/entity-manager/EntityManager.js +14 -1
- package/entity-manager/EntityManager.js.map +1 -1
- package/error/ForbiddenTransactionModeOverrideError.d.ts +8 -0
- package/error/ForbiddenTransactionModeOverrideError.js +16 -0
- package/error/ForbiddenTransactionModeOverrideError.js.map +1 -0
- package/error/index.d.ts +1 -0
- package/error/index.js +1 -0
- package/error/index.js.map +1 -1
- package/find-options/FindOperatorType.d.ts +1 -1
- package/find-options/FindOperatorType.js.map +1 -1
- package/find-options/operator/And.d.ts +2 -0
- package/find-options/operator/And.js +10 -0
- package/find-options/operator/And.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/index.mjs +4 -0
- package/metadata-args/JoinTableMetadataArgs.d.ts +6 -0
- package/metadata-args/JoinTableMetadataArgs.js.map +1 -1
- package/metadata-builder/JunctionEntityMetadataBuilder.js +1 -0
- package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/migration/Migration.d.ts +5 -1
- package/migration/Migration.js +2 -1
- package/migration/Migration.js.map +1 -1
- package/migration/MigrationExecutor.js +38 -5
- package/migration/MigrationExecutor.js.map +1 -1
- package/migration/MigrationInterface.d.ts +7 -0
- package/migration/MigrationInterface.js.map +1 -1
- package/naming-strategy/NamingStrategyInterface.d.ts +2 -1
- package/naming-strategy/NamingStrategyInterface.js.map +1 -1
- package/package.json +1 -1
- package/persistence/EntityPersistExecutor.js +2 -1
- package/persistence/EntityPersistExecutor.js.map +1 -1
- package/query-builder/InsertOrUpdateOptions.d.ts +7 -0
- package/query-builder/InsertOrUpdateOptions.js.map +1 -1
- package/query-builder/InsertQueryBuilder.js +10 -1
- package/query-builder/InsertQueryBuilder.js.map +1 -1
- package/query-builder/QueryBuilder.d.ts +1 -0
- package/query-builder/QueryBuilder.js +22 -0
- package/query-builder/QueryBuilder.js.map +1 -1
- package/query-builder/QueryExpressionMap.d.ts +1 -0
- package/query-builder/QueryExpressionMap.js.map +1 -1
- package/query-builder/SelectQueryBuilder.d.ts +19 -0
- package/query-builder/SelectQueryBuilder.js +76 -8
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-builder/WhereClause.d.ts +1 -1
- package/query-builder/WhereClause.js.map +1 -1
- package/query-runner/BaseQueryRunner.d.ts +1 -1
- package/query-runner/BaseQueryRunner.js.map +1 -1
- package/repository/Repository.d.ts +5 -1
- package/repository/Repository.js +6 -0
- package/repository/Repository.js.map +1 -1
- package/repository/TreeRepository.d.ts +0 -4
- package/repository/TreeRepository.js +0 -11
- package/repository/TreeRepository.js.map +1 -1
- package/repository/UpsertOptions.d.ts +5 -2
- package/repository/UpsertOptions.js.map +1 -1
- package/schema-builder/RdbmsSchemaBuilder.d.ts +4 -0
- package/schema-builder/RdbmsSchemaBuilder.js +74 -2
- package/schema-builder/RdbmsSchemaBuilder.js.map +1 -1
- package/schema-builder/view/View.d.ts +13 -1
- package/schema-builder/view/View.js +16 -0
- package/schema-builder/view/View.js.map +1 -1
|
@@ -1482,6 +1482,21 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1482
1482
|
await this.executeQueries(up, down);
|
|
1483
1483
|
table.addIndex(index);
|
|
1484
1484
|
}
|
|
1485
|
+
/**
|
|
1486
|
+
* Create a new view index.
|
|
1487
|
+
*/
|
|
1488
|
+
async createViewIndex(viewOrName, index) {
|
|
1489
|
+
const view = InstanceChecker_1.InstanceChecker.isView(viewOrName)
|
|
1490
|
+
? viewOrName
|
|
1491
|
+
: await this.getCachedView(viewOrName);
|
|
1492
|
+
// new index may be passed without name. In this case we generate index name manually.
|
|
1493
|
+
if (!index.name)
|
|
1494
|
+
index.name = this.generateIndexName(view, index);
|
|
1495
|
+
const up = this.createViewIndexSql(view, index);
|
|
1496
|
+
const down = this.dropIndexSql(view, index);
|
|
1497
|
+
await this.executeQueries(up, down);
|
|
1498
|
+
view.addIndex(index);
|
|
1499
|
+
}
|
|
1485
1500
|
/**
|
|
1486
1501
|
* Creates a new indices
|
|
1487
1502
|
*/
|
|
@@ -1490,6 +1505,14 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1490
1505
|
await this.createIndex(tableOrName, index);
|
|
1491
1506
|
}
|
|
1492
1507
|
}
|
|
1508
|
+
/**
|
|
1509
|
+
* Creates new view indices
|
|
1510
|
+
*/
|
|
1511
|
+
async createViewIndices(viewOrName, indices) {
|
|
1512
|
+
for (const index of indices) {
|
|
1513
|
+
await this.createViewIndex(viewOrName, index);
|
|
1514
|
+
}
|
|
1515
|
+
}
|
|
1493
1516
|
/**
|
|
1494
1517
|
* Drops an index from the table.
|
|
1495
1518
|
*/
|
|
@@ -1510,6 +1533,26 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1510
1533
|
await this.executeQueries(up, down);
|
|
1511
1534
|
table.removeIndex(index);
|
|
1512
1535
|
}
|
|
1536
|
+
/**
|
|
1537
|
+
* Drops an index from a view.
|
|
1538
|
+
*/
|
|
1539
|
+
async dropViewIndex(viewOrName, indexOrName) {
|
|
1540
|
+
const view = InstanceChecker_1.InstanceChecker.isView(viewOrName)
|
|
1541
|
+
? viewOrName
|
|
1542
|
+
: await this.getCachedView(viewOrName);
|
|
1543
|
+
const index = InstanceChecker_1.InstanceChecker.isTableIndex(indexOrName)
|
|
1544
|
+
? indexOrName
|
|
1545
|
+
: view.indices.find((i) => i.name === indexOrName);
|
|
1546
|
+
if (!index)
|
|
1547
|
+
throw new error_1.TypeORMError(`Supplied index ${indexOrName} was not found in view ${view.name}`);
|
|
1548
|
+
// old index may be passed without name. In this case we generate index name manually.
|
|
1549
|
+
if (!index.name)
|
|
1550
|
+
index.name = this.generateIndexName(view, index);
|
|
1551
|
+
const up = this.dropIndexSql(view, index);
|
|
1552
|
+
const down = this.createViewIndexSql(view, index);
|
|
1553
|
+
await this.executeQueries(up, down);
|
|
1554
|
+
view.removeIndex(index);
|
|
1555
|
+
}
|
|
1513
1556
|
/**
|
|
1514
1557
|
* Drops an indices from the table.
|
|
1515
1558
|
*/
|
|
@@ -1608,12 +1651,41 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1608
1651
|
return `("t"."schema" = '${schema}' AND "t"."name" = '${tableName}')`;
|
|
1609
1652
|
})
|
|
1610
1653
|
.join(" OR ");
|
|
1654
|
+
const constraintsCondition = viewNames.length === 0
|
|
1655
|
+
? "1=1"
|
|
1656
|
+
: viewNames
|
|
1657
|
+
.map((tableName) => this.driver.parseTableName(tableName))
|
|
1658
|
+
.map(({ schema, tableName }) => {
|
|
1659
|
+
if (!schema) {
|
|
1660
|
+
schema =
|
|
1661
|
+
this.driver.options.schema || currentSchema;
|
|
1662
|
+
}
|
|
1663
|
+
return `("ns"."nspname" = '${schema}' AND "t"."relname" = '${tableName}')`;
|
|
1664
|
+
})
|
|
1665
|
+
.join(" OR ");
|
|
1666
|
+
const indicesSql = `SELECT "ns"."nspname" AS "table_schema", "t"."relname" AS "table_name", "i"."relname" AS "constraint_name", "a"."attname" AS "column_name", ` +
|
|
1667
|
+
`CASE "ix"."indisunique" WHEN 't' THEN 'TRUE' ELSE'FALSE' END AS "is_unique", pg_get_expr("ix"."indpred", "ix"."indrelid") AS "condition", ` +
|
|
1668
|
+
`"types"."typname" AS "type_name" ` +
|
|
1669
|
+
`FROM "pg_class" "t" ` +
|
|
1670
|
+
`INNER JOIN "pg_index" "ix" ON "ix"."indrelid" = "t"."oid" ` +
|
|
1671
|
+
`INNER JOIN "pg_attribute" "a" ON "a"."attrelid" = "t"."oid" AND "a"."attnum" = ANY ("ix"."indkey") ` +
|
|
1672
|
+
`INNER JOIN "pg_namespace" "ns" ON "ns"."oid" = "t"."relnamespace" ` +
|
|
1673
|
+
`INNER JOIN "pg_class" "i" ON "i"."oid" = "ix"."indexrelid" ` +
|
|
1674
|
+
`INNER JOIN "pg_type" "types" ON "types"."oid" = "a"."atttypid" ` +
|
|
1675
|
+
`LEFT JOIN "pg_constraint" "cnst" ON "cnst"."conname" = "i"."relname" ` +
|
|
1676
|
+
`WHERE "t"."relkind" IN ('m') AND "cnst"."contype" IS NULL AND (${constraintsCondition})`;
|
|
1611
1677
|
const query = `SELECT "t".* FROM ${this.escapePath(this.getTypeormMetadataTableName())} "t" ` +
|
|
1612
1678
|
`INNER JOIN "pg_catalog"."pg_class" "c" ON "c"."relname" = "t"."name" ` +
|
|
1613
1679
|
`INNER JOIN "pg_namespace" "n" ON "n"."oid" = "c"."relnamespace" AND "n"."nspname" = "t"."schema" ` +
|
|
1614
1680
|
`WHERE "t"."type" IN ('${MetadataTableType_1.MetadataTableType.VIEW}', '${MetadataTableType_1.MetadataTableType.MATERIALIZED_VIEW}') ${viewsCondition ? `AND (${viewsCondition})` : ""}`;
|
|
1615
1681
|
const dbViews = await this.query(query);
|
|
1682
|
+
const dbIndices = await this.query(indicesSql);
|
|
1616
1683
|
return dbViews.map((dbView) => {
|
|
1684
|
+
// find index constraints of table, group them by constraint name and build TableIndex.
|
|
1685
|
+
const tableIndexConstraints = OrmUtils_1.OrmUtils.uniq(dbIndices.filter((dbIndex) => {
|
|
1686
|
+
return (dbIndex["table_name"] === dbView["name"] &&
|
|
1687
|
+
dbIndex["table_schema"] === dbView["schema"]);
|
|
1688
|
+
}), (dbIndex) => dbIndex["constraint_name"]);
|
|
1617
1689
|
const view = new View_1.View();
|
|
1618
1690
|
const schema = dbView["schema"] === currentSchema &&
|
|
1619
1691
|
!this.driver.options.schema
|
|
@@ -1625,6 +1697,22 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
1625
1697
|
view.expression = dbView["value"];
|
|
1626
1698
|
view.materialized =
|
|
1627
1699
|
dbView["type"] === MetadataTableType_1.MetadataTableType.MATERIALIZED_VIEW;
|
|
1700
|
+
view.indices = tableIndexConstraints.map((constraint) => {
|
|
1701
|
+
const indices = dbIndices.filter((index) => {
|
|
1702
|
+
return (index["table_schema"] === constraint["table_schema"] &&
|
|
1703
|
+
index["table_name"] === constraint["table_name"] &&
|
|
1704
|
+
index["constraint_name"] ===
|
|
1705
|
+
constraint["constraint_name"]);
|
|
1706
|
+
});
|
|
1707
|
+
return new TableIndex_1.TableIndex({
|
|
1708
|
+
view: view,
|
|
1709
|
+
name: constraint["constraint_name"],
|
|
1710
|
+
columnNames: indices.map((i) => i["column_name"]),
|
|
1711
|
+
isUnique: constraint["is_unique"] === "TRUE",
|
|
1712
|
+
where: constraint["condition"],
|
|
1713
|
+
isFulltext: false,
|
|
1714
|
+
});
|
|
1715
|
+
});
|
|
1628
1716
|
return view;
|
|
1629
1717
|
});
|
|
1630
1718
|
}
|
|
@@ -2321,6 +2409,15 @@ class PostgresQueryRunner extends BaseQueryRunner_1.BaseQueryRunner {
|
|
|
2321
2409
|
.join(", ");
|
|
2322
2410
|
return new Query_1.Query(`CREATE ${index.isUnique ? "UNIQUE " : ""}INDEX "${index.name}" ON ${this.escapePath(table)} ${index.isSpatial ? "USING GiST " : ""}(${columns}) ${index.where ? "WHERE " + index.where : ""}`);
|
|
2323
2411
|
}
|
|
2412
|
+
/**
|
|
2413
|
+
* Builds create view index sql.
|
|
2414
|
+
*/
|
|
2415
|
+
createViewIndexSql(view, index) {
|
|
2416
|
+
const columns = index.columnNames
|
|
2417
|
+
.map((columnName) => `"${columnName}"`)
|
|
2418
|
+
.join(", ");
|
|
2419
|
+
return new Query_1.Query(`CREATE ${index.isUnique ? "UNIQUE " : ""}INDEX "${index.name}" ON ${this.escapePath(view)} (${columns}) ${index.where ? "WHERE " + index.where : ""}`);
|
|
2420
|
+
}
|
|
2324
2421
|
/**
|
|
2325
2422
|
* Builds drop index sql.
|
|
2326
2423
|
*/
|