@mikro-orm/knex 6.5.10-dev.0 → 6.5.10-dev.10
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.
|
@@ -21,7 +21,7 @@ class PostgreSqlTableCompiler extends pg_tablecompiler_1.default {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
addColumn(col) {
|
|
24
|
-
const options = this.ormConfig
|
|
24
|
+
const options = this.ormConfig?.get('schemaGenerator') ?? {};
|
|
25
25
|
const quotedTableName = this.tableName();
|
|
26
26
|
const type = col.getColumnType();
|
|
27
27
|
const colName = this.client.wrapIdentifier(col.getColumnName(), col.columnBuilder.queryContext());
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mikro-orm/knex",
|
|
3
|
-
"version": "6.5.10-dev.
|
|
3
|
+
"version": "6.5.10-dev.10",
|
|
4
4
|
"description": "TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, PostgreSQL and SQLite databases as well as usage with vanilla JavaScript.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "index.mjs",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"@mikro-orm/core": "^6.5.9"
|
|
67
67
|
},
|
|
68
68
|
"peerDependencies": {
|
|
69
|
-
"@mikro-orm/core": "6.5.10-dev.
|
|
69
|
+
"@mikro-orm/core": "6.5.10-dev.10",
|
|
70
70
|
"better-sqlite3": "*",
|
|
71
71
|
"libsql": "*",
|
|
72
72
|
"mariadb": "*"
|
package/query/QueryBuilder.js
CHANGED
|
@@ -572,7 +572,7 @@ class QueryBuilder {
|
|
|
572
572
|
return this._query.qb = this.knex.raw(qb.toSQL().toNative().sql + ' cascade');
|
|
573
573
|
}
|
|
574
574
|
if (this.lockMode) {
|
|
575
|
-
this.helper.getLockSQL(qb, this.lockMode, this.lockTables);
|
|
575
|
+
this.helper.getLockSQL(qb, this.lockMode, this.lockTables, this._joins);
|
|
576
576
|
}
|
|
577
577
|
this.helper.finalize(type, qb, this.mainAlias.metadata, this._data, this._returning);
|
|
578
578
|
this.clearRawFragmentsCache();
|
|
@@ -51,7 +51,7 @@ export declare class QueryBuilderHelper {
|
|
|
51
51
|
getQueryOrderFromObject(type: QueryType, orderBy: FlatQueryOrderMap, populate: Dictionary<string>): string[];
|
|
52
52
|
finalize(type: QueryType, qb: Knex.QueryBuilder, meta?: EntityMetadata, data?: Dictionary, returning?: Field<any>[]): void;
|
|
53
53
|
splitField<T>(field: EntityKey<T>, greedyAlias?: boolean): [string, EntityKey<T>, string | undefined];
|
|
54
|
-
getLockSQL(qb: Knex.QueryBuilder, lockMode: LockMode, lockTables?: string[]): void;
|
|
54
|
+
getLockSQL(qb: Knex.QueryBuilder, lockMode: LockMode, lockTables?: string[], joinsMap?: Dictionary<JoinOptions>): void;
|
|
55
55
|
updateVersionProperty(qb: Knex.QueryBuilder, data: Dictionary): void;
|
|
56
56
|
private prefix;
|
|
57
57
|
private appendGroupCondition;
|
|
@@ -629,11 +629,18 @@ class QueryBuilderHelper {
|
|
|
629
629
|
const fromField = parts.join('.');
|
|
630
630
|
return [fromAlias, fromField, ref];
|
|
631
631
|
}
|
|
632
|
-
getLockSQL(qb, lockMode, lockTables = []) {
|
|
632
|
+
getLockSQL(qb, lockMode, lockTables = [], joinsMap) {
|
|
633
633
|
const meta = this.metadata.find(this.entityName);
|
|
634
634
|
if (lockMode === core_1.LockMode.OPTIMISTIC && meta && !meta.versionProperty) {
|
|
635
635
|
throw core_1.OptimisticLockError.lockFailed(this.entityName);
|
|
636
636
|
}
|
|
637
|
+
if (lockMode !== core_1.LockMode.OPTIMISTIC && lockTables.length === 0 && joinsMap) {
|
|
638
|
+
const joins = Object.values(joinsMap);
|
|
639
|
+
const innerJoins = joins.filter(join => [enums_1.JoinType.innerJoin, enums_1.JoinType.innerJoinLateral, enums_1.JoinType.nestedInnerJoin].includes(join.type));
|
|
640
|
+
if (joins.length > innerJoins.length) {
|
|
641
|
+
lockTables.push(this.alias, ...innerJoins.map(join => join.alias));
|
|
642
|
+
}
|
|
643
|
+
}
|
|
637
644
|
switch (lockMode) {
|
|
638
645
|
case core_1.LockMode.PESSIMISTIC_READ: return void qb.forShare(...lockTables);
|
|
639
646
|
case core_1.LockMode.PESSIMISTIC_WRITE: return void qb.forUpdate(...lockTables);
|