Skip to content

Commit b48b553

Browse files
ymc9claude
andcommitted
fix(orm): cast delegate base fields via dialect.fieldRef in policy transformer
Use dialect.fieldRef() for the selection in buildDelegateBaseFieldSelect so inherited fields with @db.* attributes get the same CAST treatment as same-model fields. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 8ddfe3e commit b48b553

2 files changed

Lines changed: 7 additions & 5 deletions

File tree

packages/orm/src/client/crud/dialects/mysql.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -323,14 +323,14 @@ export class MySqlCrudDialect<Schema extends SchemaDef> extends LateralJoinDiale
323323
return 'varchar(191)';
324324
}
325325
return match(zmodelType)
326-
.with('String', () => 'varchar(191)')
327-
.with('Boolean', () => 'tinyint(1)')
326+
.with('String', () => 'char')
327+
.with('Boolean', () => 'unsigned')
328328
.with('Int', () => 'signed')
329-
.with('BigInt', () => 'bigint')
329+
.with('BigInt', () => 'signed')
330330
.with('Float', () => 'double')
331331
.with('Decimal', () => 'decimal(65,30)')
332332
.with('DateTime', () => 'datetime(3)')
333-
.with('Bytes', () => 'longblob')
333+
.with('Bytes', () => 'binary')
334334
.with('Json', () => 'json')
335335
.otherwise(() => undefined);
336336
}

packages/plugins/policy/src/expression-transformer.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -936,7 +936,9 @@ export class ExpressionTransformer<Schema extends SchemaDef> {
936936
kind: 'SelectQueryNode',
937937
from: FromNode.create([TableNode.create(baseModel)]),
938938
selections: [
939-
SelectionNode.create(ReferenceNode.create(ColumnNode.create(field), TableNode.create(baseModel))),
939+
SelectionNode.create(
940+
this.dialect.fieldRef(baseModel, field, baseModel, false).toOperationNode()
941+
),
940942
],
941943
where: WhereNode.create(
942944
conjunction(

0 commit comments

Comments
 (0)