@@ -37,7 +37,7 @@ export abstract class BaseCrudDialect<Schema extends SchemaDef> {
3737
3838 abstract get provider ( ) : DataSourceProviderType ;
3939
40- transformPrimitive ( value : unknown , _type : BuiltinType ) {
40+ transformPrimitive ( value : unknown , _type : BuiltinType , _forArrayField : boolean ) {
4141 return value ;
4242 }
4343
@@ -363,7 +363,7 @@ export abstract class BaseCrudDialect<Schema extends SchemaDef> {
363363 continue ;
364364 }
365365
366- const value = this . transformPrimitive ( _value , fieldType ) ;
366+ const value = this . transformPrimitive ( _value , fieldType , ! ! fieldDef . array ) ;
367367
368368 switch ( key ) {
369369 case 'equals' : {
@@ -437,7 +437,7 @@ export abstract class BaseCrudDialect<Schema extends SchemaDef> {
437437 }
438438
439439 private buildLiteralFilter ( eb : ExpressionBuilder < any , any > , lhs : Expression < any > , type : BuiltinType , rhs : unknown ) {
440- return eb ( lhs , '=' , rhs !== null && rhs !== undefined ? this . transformPrimitive ( rhs , type ) : rhs ) ;
440+ return eb ( lhs , '=' , rhs !== null && rhs !== undefined ? this . transformPrimitive ( rhs , type , false ) : rhs ) ;
441441 }
442442
443443 private buildStandardFilter (
@@ -588,7 +588,7 @@ export abstract class BaseCrudDialect<Schema extends SchemaDef> {
588588 type ,
589589 payload ,
590590 buildFieldRef ( this . schema , model , field , this . options , eb ) ,
591- ( value ) => this . transformPrimitive ( value , type ) ,
591+ ( value ) => this . transformPrimitive ( value , type , false ) ,
592592 ( value ) => this . buildNumberFilter ( eb , model , table , field , type , value ) ,
593593 ) ;
594594 return this . and ( eb , ...conditions ) ;
@@ -605,7 +605,7 @@ export abstract class BaseCrudDialect<Schema extends SchemaDef> {
605605 'Boolean' ,
606606 payload ,
607607 sql . ref ( `${ table } .${ field } ` ) ,
608- ( value ) => this . transformPrimitive ( value , 'Boolean' ) ,
608+ ( value ) => this . transformPrimitive ( value , 'Boolean' , false ) ,
609609 ( value ) => this . buildBooleanFilter ( eb , table , field , value as BooleanFilter < true > ) ,
610610 true ,
611611 [ 'equals' , 'not' ] ,
@@ -624,7 +624,7 @@ export abstract class BaseCrudDialect<Schema extends SchemaDef> {
624624 'DateTime' ,
625625 payload ,
626626 sql . ref ( `${ table } .${ field } ` ) ,
627- ( value ) => this . transformPrimitive ( value , 'DateTime' ) ,
627+ ( value ) => this . transformPrimitive ( value , 'DateTime' , false ) ,
628628 ( value ) => this . buildDateTimeFilter ( eb , table , field , value as DateTimeFilter < true > ) ,
629629 true ,
630630 ) ;
@@ -642,7 +642,7 @@ export abstract class BaseCrudDialect<Schema extends SchemaDef> {
642642 'Bytes' ,
643643 payload ,
644644 sql . ref ( `${ table } .${ field } ` ) ,
645- ( value ) => this . transformPrimitive ( value , 'Bytes' ) ,
645+ ( value ) => this . transformPrimitive ( value , 'Bytes' , false ) ,
646646 ( value ) => this . buildBytesFilter ( eb , table , field , value as BytesFilter < true > ) ,
647647 true ,
648648 [ 'equals' , 'in' , 'notIn' , 'not' ] ,
@@ -793,11 +793,11 @@ export abstract class BaseCrudDialect<Schema extends SchemaDef> {
793793 }
794794
795795 public true ( eb : ExpressionBuilder < any , any > ) : Expression < SqlBool > {
796- return eb . lit < SqlBool > ( this . transformPrimitive ( true , 'Boolean' ) as boolean ) ;
796+ return eb . lit < SqlBool > ( this . transformPrimitive ( true , 'Boolean' , false ) as boolean ) ;
797797 }
798798
799799 public false ( eb : ExpressionBuilder < any , any > ) : Expression < SqlBool > {
800- return eb . lit < SqlBool > ( this . transformPrimitive ( false , 'Boolean' ) as boolean ) ;
800+ return eb . lit < SqlBool > ( this . transformPrimitive ( false , 'Boolean' , false ) as boolean ) ;
801801 }
802802
803803 public isTrue ( expression : Expression < SqlBool > ) {
0 commit comments