typeorm 0.3.6-dev.9d331b1 → 0.3.6-dev.b84cb9b
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/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/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 +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/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
|
@@ -1265,7 +1265,8 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
1265
1265
|
}
|
|
1266
1266
|
else if (DriverUtils_1.DriverUtils.isMySQLFamily(this.connection.driver) ||
|
|
1267
1267
|
this.connection.driver.options.type === "aurora-mysql" ||
|
|
1268
|
-
this.connection.driver.options.type === "sap"
|
|
1268
|
+
this.connection.driver.options.type === "sap" ||
|
|
1269
|
+
this.connection.driver.options.type === "spanner") {
|
|
1269
1270
|
if (limit && offset)
|
|
1270
1271
|
return " LIMIT " + limit + " OFFSET " + offset;
|
|
1271
1272
|
if (limit)
|
|
@@ -1403,6 +1404,13 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
1403
1404
|
else {
|
|
1404
1405
|
throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
|
|
1405
1406
|
}
|
|
1407
|
+
case "for_key_share":
|
|
1408
|
+
if (driver.options.type === "postgres") {
|
|
1409
|
+
return " FOR KEY SHARE" + lockTablesClause;
|
|
1410
|
+
}
|
|
1411
|
+
else {
|
|
1412
|
+
throw new LockNotSupportedOnGivenDriverError_1.LockNotSupportedOnGivenDriverError();
|
|
1413
|
+
}
|
|
1406
1414
|
default:
|
|
1407
1415
|
return "";
|
|
1408
1416
|
}
|
|
@@ -1549,6 +1557,17 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
1549
1557
|
}
|
|
1550
1558
|
return `COUNT(DISTINCT(CONCAT(${columnsExpression})))`;
|
|
1551
1559
|
}
|
|
1560
|
+
if (this.connection.driver.options.type === "spanner") {
|
|
1561
|
+
// spanner also has gotta be different from everyone else.
|
|
1562
|
+
// they do not support concatenation of different column types without casting them to string
|
|
1563
|
+
if (primaryColumns.length === 1) {
|
|
1564
|
+
return `COUNT(DISTINCT(${distinctAlias}.${this.escape(primaryColumns[0].databaseName)}))`;
|
|
1565
|
+
}
|
|
1566
|
+
const columnsExpression = primaryColumns
|
|
1567
|
+
.map((primaryColumn) => `CAST(${distinctAlias}.${this.escape(primaryColumn.databaseName)} AS STRING)`)
|
|
1568
|
+
.join(", '|;|', ");
|
|
1569
|
+
return `COUNT(DISTINCT(CONCAT(${columnsExpression})))`;
|
|
1570
|
+
}
|
|
1552
1571
|
// If all else fails, fall back to a `COUNT` and `DISTINCT` across all the primary columns concatenated.
|
|
1553
1572
|
// Per the SQL spec, this is the canonical string concatenation mechanism which is most
|
|
1554
1573
|
// likely to work across servers implementing the SQL standard.
|
|
@@ -1720,7 +1739,8 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
1720
1739
|
"pessimistic_partial_write" ||
|
|
1721
1740
|
this.findOptions.lock.mode ===
|
|
1722
1741
|
"pessimistic_write_or_fail" ||
|
|
1723
|
-
this.findOptions.lock.mode === "for_no_key_update"
|
|
1742
|
+
this.findOptions.lock.mode === "for_no_key_update" ||
|
|
1743
|
+
this.findOptions.lock.mode === "for_key_share") {
|
|
1724
1744
|
const tableNames = this.findOptions.lock.tables
|
|
1725
1745
|
? this.findOptions.lock.tables.map((table) => {
|
|
1726
1746
|
const tableAlias = this.expressionMap.aliases.find((alias) => {
|
|
@@ -1773,7 +1793,8 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
1773
1793
|
this.expressionMap.lockMode === "pessimistic_write" ||
|
|
1774
1794
|
this.expressionMap.lockMode === "pessimistic_partial_write" ||
|
|
1775
1795
|
this.expressionMap.lockMode === "pessimistic_write_or_fail" ||
|
|
1776
|
-
this.expressionMap.lockMode === "for_no_key_update"
|
|
1796
|
+
this.expressionMap.lockMode === "for_no_key_update" ||
|
|
1797
|
+
this.expressionMap.lockMode === "for_key_share") &&
|
|
1777
1798
|
!queryRunner.isTransactionActive)
|
|
1778
1799
|
throw new PessimisticLockTransactionRequiredError_1.PessimisticLockTransactionRequiredError();
|
|
1779
1800
|
if (this.expressionMap.lockMode === "optimistic") {
|
|
@@ -1806,7 +1827,7 @@ class SelectQueryBuilder extends QueryBuilder_1.QueryBuilder {
|
|
|
1806
1827
|
// make sure we aren't overriding user-defined order in inverse direction
|
|
1807
1828
|
orderBys[columnAlias] = "ASC";
|
|
1808
1829
|
const alias = DriverUtils_1.DriverUtils.buildAlias(this.connection.driver, "ids_" + mainAliasName, primaryColumn.databaseName);
|
|
1809
|
-
return `${distinctAlias}.${columnAlias}
|
|
1830
|
+
return `${distinctAlias}.${columnAlias} AS ${this.escape(alias)}`;
|
|
1810
1831
|
});
|
|
1811
1832
|
rawResults = await new SelectQueryBuilder(this.connection, queryRunner)
|
|
1812
1833
|
.select(`DISTINCT ${querySelects.join(", ")}`)
|