typeorm 0.3.6-dev.9d331b1 → 0.3.6
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 -13
- package/browser/cache/DbQueryResultCache.js +9 -1
- package/browser/cache/DbQueryResultCache.js.map +1 -1
- package/browser/cli-ts-node-commonjs.js +0 -0
- package/browser/cli-ts-node-esm.js +0 -0
- 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/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/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 +240 -0
- package/browser/driver/spanner/SpannerDriver.js +565 -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 +1359 -0
- package/browser/driver/spanner/SpannerQueryRunner.js.map +1 -0
- 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/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/find-options/FindOneOptions.d.ts +1 -1
- package/browser/find-options/FindOneOptions.js.map +1 -1
- package/browser/find-options/FindOptionsUtils.d.ts +2 -1
- package/browser/find-options/FindOptionsUtils.js +2 -1
- package/browser/find-options/FindOptionsUtils.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/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/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/QueryExpressionMap.d.ts +1 -1
- package/browser/query-builder/QueryExpressionMap.js.map +1 -1
- package/browser/query-builder/SelectQueryBuilder.d.ts +1 -1
- package/browser/query-builder/SelectQueryBuilder.js +25 -4
- 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/schema-builder/RdbmsSchemaBuilder.js +15 -1
- package/browser/schema-builder/RdbmsSchemaBuilder.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/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/cli-ts-node-commonjs.js +0 -0
- package/cli-ts-node-esm.js +0 -0
- package/cli.js +0 -0
- 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/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/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 +240 -0
- package/driver/spanner/SpannerDriver.js +569 -0
- package/driver/spanner/SpannerDriver.js.map +1 -0
- package/driver/spanner/SpannerQueryRunner.d.ts +350 -0
- package/driver/spanner/SpannerQueryRunner.js +1363 -0
- package/driver/spanner/SpannerQueryRunner.js.map +1 -0
- 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/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/find-options/FindOneOptions.d.ts +1 -1
- package/find-options/FindOneOptions.js.map +1 -1
- package/find-options/FindOptionsUtils.d.ts +2 -1
- package/find-options/FindOptionsUtils.js +2 -1
- package/find-options/FindOptionsUtils.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/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/JunctionEntityMetadataBuilder.js +13 -6
- package/metadata-builder/JunctionEntityMetadataBuilder.js.map +1 -1
- package/package.json +268 -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/QueryExpressionMap.d.ts +1 -1
- package/query-builder/QueryExpressionMap.js.map +1 -1
- package/query-builder/SelectQueryBuilder.d.ts +1 -1
- package/query-builder/SelectQueryBuilder.js +25 -4
- package/query-builder/SelectQueryBuilder.js.map +1 -1
- package/query-builder/UpdateQueryBuilder.js +18 -7
- package/query-builder/UpdateQueryBuilder.js.map +1 -1
- package/schema-builder/RdbmsSchemaBuilder.js +15 -1
- package/schema-builder/RdbmsSchemaBuilder.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/TableIndex.d.ts +8 -0
- package/schema-builder/table/TableIndex.js +3 -0
- package/schema-builder/table/TableIndex.js.map +1 -1
|
@@ -1262,7 +1262,8 @@ export class SelectQueryBuilder extends QueryBuilder {
|
|
|
1262
1262
|
}
|
|
1263
1263
|
else if (DriverUtils.isMySQLFamily(this.connection.driver) ||
|
|
1264
1264
|
this.connection.driver.options.type === "aurora-mysql" ||
|
|
1265
|
-
this.connection.driver.options.type === "sap"
|
|
1265
|
+
this.connection.driver.options.type === "sap" ||
|
|
1266
|
+
this.connection.driver.options.type === "spanner") {
|
|
1266
1267
|
if (limit && offset)
|
|
1267
1268
|
return " LIMIT " + limit + " OFFSET " + offset;
|
|
1268
1269
|
if (limit)
|
|
@@ -1400,6 +1401,13 @@ export class SelectQueryBuilder extends QueryBuilder {
|
|
|
1400
1401
|
else {
|
|
1401
1402
|
throw new LockNotSupportedOnGivenDriverError();
|
|
1402
1403
|
}
|
|
1404
|
+
case "for_key_share":
|
|
1405
|
+
if (driver.options.type === "postgres") {
|
|
1406
|
+
return " FOR KEY SHARE" + lockTablesClause;
|
|
1407
|
+
}
|
|
1408
|
+
else {
|
|
1409
|
+
throw new LockNotSupportedOnGivenDriverError();
|
|
1410
|
+
}
|
|
1403
1411
|
default:
|
|
1404
1412
|
return "";
|
|
1405
1413
|
}
|
|
@@ -1546,6 +1554,17 @@ export class SelectQueryBuilder extends QueryBuilder {
|
|
|
1546
1554
|
}
|
|
1547
1555
|
return `COUNT(DISTINCT(CONCAT(${columnsExpression})))`;
|
|
1548
1556
|
}
|
|
1557
|
+
if (this.connection.driver.options.type === "spanner") {
|
|
1558
|
+
// spanner also has gotta be different from everyone else.
|
|
1559
|
+
// they do not support concatenation of different column types without casting them to string
|
|
1560
|
+
if (primaryColumns.length === 1) {
|
|
1561
|
+
return `COUNT(DISTINCT(${distinctAlias}.${this.escape(primaryColumns[0].databaseName)}))`;
|
|
1562
|
+
}
|
|
1563
|
+
const columnsExpression = primaryColumns
|
|
1564
|
+
.map((primaryColumn) => `CAST(${distinctAlias}.${this.escape(primaryColumn.databaseName)} AS STRING)`)
|
|
1565
|
+
.join(", '|;|', ");
|
|
1566
|
+
return `COUNT(DISTINCT(CONCAT(${columnsExpression})))`;
|
|
1567
|
+
}
|
|
1549
1568
|
// If all else fails, fall back to a `COUNT` and `DISTINCT` across all the primary columns concatenated.
|
|
1550
1569
|
// Per the SQL spec, this is the canonical string concatenation mechanism which is most
|
|
1551
1570
|
// likely to work across servers implementing the SQL standard.
|
|
@@ -1717,7 +1736,8 @@ export class SelectQueryBuilder extends QueryBuilder {
|
|
|
1717
1736
|
"pessimistic_partial_write" ||
|
|
1718
1737
|
this.findOptions.lock.mode ===
|
|
1719
1738
|
"pessimistic_write_or_fail" ||
|
|
1720
|
-
this.findOptions.lock.mode === "for_no_key_update"
|
|
1739
|
+
this.findOptions.lock.mode === "for_no_key_update" ||
|
|
1740
|
+
this.findOptions.lock.mode === "for_key_share") {
|
|
1721
1741
|
const tableNames = this.findOptions.lock.tables
|
|
1722
1742
|
? this.findOptions.lock.tables.map((table) => {
|
|
1723
1743
|
const tableAlias = this.expressionMap.aliases.find((alias) => {
|
|
@@ -1770,7 +1790,8 @@ export class SelectQueryBuilder extends QueryBuilder {
|
|
|
1770
1790
|
this.expressionMap.lockMode === "pessimistic_write" ||
|
|
1771
1791
|
this.expressionMap.lockMode === "pessimistic_partial_write" ||
|
|
1772
1792
|
this.expressionMap.lockMode === "pessimistic_write_or_fail" ||
|
|
1773
|
-
this.expressionMap.lockMode === "for_no_key_update"
|
|
1793
|
+
this.expressionMap.lockMode === "for_no_key_update" ||
|
|
1794
|
+
this.expressionMap.lockMode === "for_key_share") &&
|
|
1774
1795
|
!queryRunner.isTransactionActive)
|
|
1775
1796
|
throw new PessimisticLockTransactionRequiredError();
|
|
1776
1797
|
if (this.expressionMap.lockMode === "optimistic") {
|
|
@@ -1803,7 +1824,7 @@ export class SelectQueryBuilder extends QueryBuilder {
|
|
|
1803
1824
|
// make sure we aren't overriding user-defined order in inverse direction
|
|
1804
1825
|
orderBys[columnAlias] = "ASC";
|
|
1805
1826
|
const alias = DriverUtils.buildAlias(this.connection.driver, "ids_" + mainAliasName, primaryColumn.databaseName);
|
|
1806
|
-
return `${distinctAlias}.${columnAlias}
|
|
1827
|
+
return `${distinctAlias}.${columnAlias} AS ${this.escape(alias)}`;
|
|
1807
1828
|
});
|
|
1808
1829
|
rawResults = await new SelectQueryBuilder(this.connection, queryRunner)
|
|
1809
1830
|
.select(`DISTINCT ${querySelects.join(", ")}`)
|