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
|
@@ -93,6 +93,7 @@ export declare class SelectQueryBuilder<Entity extends ObjectLiteral> extends Qu
|
|
|
93
93
|
* Sets the distinct on clause for Postgres.
|
|
94
94
|
*/
|
|
95
95
|
distinctOn(distinctOn: string[]): this;
|
|
96
|
+
fromDummy(): SelectQueryBuilder<any>;
|
|
96
97
|
/**
|
|
97
98
|
* Specifies FROM which entity's table select/update/delete will be executed.
|
|
98
99
|
* Also sets a main string alias of the selection data.
|
|
@@ -402,6 +403,18 @@ export declare class SelectQueryBuilder<Entity extends ObjectLiteral> extends Qu
|
|
|
402
403
|
* Additionally you can add parameters used in where expression.
|
|
403
404
|
*/
|
|
404
405
|
orWhere(where: Brackets | string | ((qb: this) => string) | ObjectLiteral | ObjectLiteral[], parameters?: ObjectLiteral): this;
|
|
406
|
+
/**
|
|
407
|
+
* Sets a new where EXISTS clause
|
|
408
|
+
*/
|
|
409
|
+
whereExists(subQuery: SelectQueryBuilder<any>): this;
|
|
410
|
+
/**
|
|
411
|
+
* Adds a new AND where EXISTS clause
|
|
412
|
+
*/
|
|
413
|
+
andWhereExists(subQuery: SelectQueryBuilder<any>): this;
|
|
414
|
+
/**
|
|
415
|
+
* Adds a new OR where EXISTS clause
|
|
416
|
+
*/
|
|
417
|
+
orWhereExists(subQuery: SelectQueryBuilder<any>): this;
|
|
405
418
|
/**
|
|
406
419
|
* Adds new AND WHERE with conditions for the given ids.
|
|
407
420
|
*
|
|
@@ -562,6 +575,11 @@ export declare class SelectQueryBuilder<Entity extends ObjectLiteral> extends Qu
|
|
|
562
575
|
* Count excludes all limitations set by setFirstResult and setMaxResults methods call.
|
|
563
576
|
*/
|
|
564
577
|
getCount(): Promise<number>;
|
|
578
|
+
/**
|
|
579
|
+
* Gets exists
|
|
580
|
+
* Returns whether any rows exists matching current query.
|
|
581
|
+
*/
|
|
582
|
+
getExists(): Promise<boolean>;
|
|
565
583
|
/**
|
|
566
584
|
* Executes built SQL query and returns entities and overall entities count (without limitation).
|
|
567
585
|
* This method is useful to build pagination.
|
|
@@ -634,6 +652,7 @@ export declare class SelectQueryBuilder<Entity extends ObjectLiteral> extends Qu
|
|
|
634
652
|
protected findEntityColumnSelects(aliasName: string, metadata: EntityMetadata): SelectQuery[];
|
|
635
653
|
private computeCountExpression;
|
|
636
654
|
protected executeCountQuery(queryRunner: QueryRunner): Promise<number>;
|
|
655
|
+
protected executeExistsQuery(queryRunner: QueryRunner): Promise<boolean>;
|
|
637
656
|
protected applyFindOptions(): void;
|
|
638
657
|
/**
|
|
639
658
|
* Executes sql generated by query builder and returns object with raw results and entities created from them.
|
|
@@ -148,6 +148,10 @@ export class SelectQueryBuilder extends QueryBuilder {
|
|
|
148
148
|
this.expressionMap.selectDistinctOn = distinctOn;
|
|
149
149
|
return this;
|
|
150
150
|
}
|
|
151
|
+
fromDummy() {
|
|
152
|
+
var _a;
|
|
153
|
+
return this.from((_a = this.connection.driver.dummyTableName) !== null && _a !== void 0 ? _a : "(SELECT 1 AS dummy_column)", "dummy_table");
|
|
154
|
+
}
|
|
151
155
|
/**
|
|
152
156
|
* Specifies FROM which entity's table select/update/delete will be executed.
|
|
153
157
|
* Also sets a main string alias of the selection data.
|
|
@@ -365,6 +369,24 @@ export class SelectQueryBuilder extends QueryBuilder {
|
|
|
365
369
|
this.setParameters(parameters);
|
|
366
370
|
return this;
|
|
367
371
|
}
|
|
372
|
+
/**
|
|
373
|
+
* Sets a new where EXISTS clause
|
|
374
|
+
*/
|
|
375
|
+
whereExists(subQuery) {
|
|
376
|
+
return this.where(...this.getExistsCondition(subQuery));
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Adds a new AND where EXISTS clause
|
|
380
|
+
*/
|
|
381
|
+
andWhereExists(subQuery) {
|
|
382
|
+
return this.andWhere(...this.getExistsCondition(subQuery));
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Adds a new OR where EXISTS clause
|
|
386
|
+
*/
|
|
387
|
+
orWhereExists(subQuery) {
|
|
388
|
+
return this.orWhere(...this.getExistsCondition(subQuery));
|
|
389
|
+
}
|
|
368
390
|
/**
|
|
369
391
|
* Adds new AND WHERE with conditions for the given ids.
|
|
370
392
|
*
|
|
@@ -748,6 +770,46 @@ export class SelectQueryBuilder extends QueryBuilder {
|
|
|
748
770
|
await queryRunner.release();
|
|
749
771
|
}
|
|
750
772
|
}
|
|
773
|
+
/**
|
|
774
|
+
* Gets exists
|
|
775
|
+
* Returns whether any rows exists matching current query.
|
|
776
|
+
*/
|
|
777
|
+
async getExists() {
|
|
778
|
+
if (this.expressionMap.lockMode === "optimistic")
|
|
779
|
+
throw new OptimisticLockCanNotBeUsedError();
|
|
780
|
+
const queryRunner = this.obtainQueryRunner();
|
|
781
|
+
let transactionStartedByUs = false;
|
|
782
|
+
try {
|
|
783
|
+
// start transaction if it was enabled
|
|
784
|
+
if (this.expressionMap.useTransaction === true &&
|
|
785
|
+
queryRunner.isTransactionActive === false) {
|
|
786
|
+
await queryRunner.startTransaction();
|
|
787
|
+
transactionStartedByUs = true;
|
|
788
|
+
}
|
|
789
|
+
this.expressionMap.queryEntity = false;
|
|
790
|
+
const results = await this.executeExistsQuery(queryRunner);
|
|
791
|
+
// close transaction if we started it
|
|
792
|
+
if (transactionStartedByUs) {
|
|
793
|
+
await queryRunner.commitTransaction();
|
|
794
|
+
}
|
|
795
|
+
return results;
|
|
796
|
+
}
|
|
797
|
+
catch (error) {
|
|
798
|
+
// rollback transaction if we started it
|
|
799
|
+
if (transactionStartedByUs) {
|
|
800
|
+
try {
|
|
801
|
+
await queryRunner.rollbackTransaction();
|
|
802
|
+
}
|
|
803
|
+
catch (rollbackError) { }
|
|
804
|
+
}
|
|
805
|
+
throw error;
|
|
806
|
+
}
|
|
807
|
+
finally {
|
|
808
|
+
if (queryRunner !== this.queryRunner)
|
|
809
|
+
// means we created our own query runner
|
|
810
|
+
await queryRunner.release();
|
|
811
|
+
}
|
|
812
|
+
}
|
|
751
813
|
/**
|
|
752
814
|
* Executes built SQL query and returns entities and overall entities count (without limitation).
|
|
753
815
|
* This method is useful to build pagination.
|
|
@@ -1621,6 +1683,16 @@ export class SelectQueryBuilder extends QueryBuilder {
|
|
|
1621
1683
|
return 0;
|
|
1622
1684
|
return parseInt(results[0]["cnt"]);
|
|
1623
1685
|
}
|
|
1686
|
+
async executeExistsQuery(queryRunner) {
|
|
1687
|
+
const results = await this.connection
|
|
1688
|
+
.createQueryBuilder()
|
|
1689
|
+
.fromDummy()
|
|
1690
|
+
.select("1", "row_exists")
|
|
1691
|
+
.whereExists(this)
|
|
1692
|
+
.limit(1)
|
|
1693
|
+
.loadRawResults(queryRunner);
|
|
1694
|
+
return results.length > 0;
|
|
1695
|
+
}
|
|
1624
1696
|
applyFindOptions() {
|
|
1625
1697
|
// todo: convert relations: string[] to object map to simplify code
|
|
1626
1698
|
// todo: same with selects
|
|
@@ -1865,9 +1937,9 @@ export class SelectQueryBuilder extends QueryBuilder {
|
|
|
1865
1937
|
.offset(this.expressionMap.skip)
|
|
1866
1938
|
.limit(this.expressionMap.take)
|
|
1867
1939
|
.orderBy(orderBys)
|
|
1868
|
-
.cache(this.expressionMap.cache
|
|
1869
|
-
? this.expressionMap.
|
|
1870
|
-
: this.expressionMap.
|
|
1940
|
+
.cache(this.expressionMap.cache && this.expressionMap.cacheId
|
|
1941
|
+
? `${this.expressionMap.cacheId}-pagination`
|
|
1942
|
+
: this.expressionMap.cache, this.expressionMap.cacheDuration)
|
|
1871
1943
|
.setParameters(this.getParameters())
|
|
1872
1944
|
.setNativeParameters(this.expressionMap.nativeParameters)
|
|
1873
1945
|
.getRawMany();
|
|
@@ -2465,7 +2537,7 @@ export class SelectQueryBuilder extends QueryBuilder {
|
|
|
2465
2537
|
const existJoin = this.joins.find((join) => join.alias === joinAlias);
|
|
2466
2538
|
if (!existJoin) {
|
|
2467
2539
|
this.joins.push({
|
|
2468
|
-
type: "
|
|
2540
|
+
type: "left",
|
|
2469
2541
|
select: false,
|
|
2470
2542
|
selection: undefined,
|
|
2471
2543
|
alias: joinAlias,
|
|
@@ -2473,10 +2545,6 @@ export class SelectQueryBuilder extends QueryBuilder {
|
|
|
2473
2545
|
relationMetadata: relation,
|
|
2474
2546
|
});
|
|
2475
2547
|
}
|
|
2476
|
-
else {
|
|
2477
|
-
if (existJoin.type === "left")
|
|
2478
|
-
existJoin.type = "inner";
|
|
2479
|
-
}
|
|
2480
2548
|
const condition = this.buildWhere(where[key], relation.inverseEntityMetadata, joinAlias);
|
|
2481
2549
|
if (condition) {
|
|
2482
2550
|
andConditions.push(condition);
|