@@ -67,14 +67,14 @@ export class SqliteCrudDialect<Schema extends SchemaDef> extends BaseCrudDialect
6767 model : string ,
6868 eb : ExpressionBuilder < any , any > ,
6969 relationField : string ,
70- parentName : string ,
70+ parentAlias : string ,
7171 payload : true | FindArgs < Schema , GetModels < Schema > , true > ,
7272 ) {
7373 const relationFieldDef = requireField ( this . schema , model , relationField ) ;
7474 const relationModel = relationFieldDef . type as GetModels < Schema > ;
7575 const relationModelDef = requireModel ( this . schema , relationModel ) ;
7676
77- const subQueryName = `${ parentName } $${ relationField } ` ;
77+ const subQueryName = `${ parentAlias } $${ relationField } ` ;
7878
7979 let tbl = eb . selectFrom ( ( ) => {
8080 let subQuery = this . buildSelectModel ( eb , relationModel ) ;
@@ -129,18 +129,18 @@ export class SqliteCrudDialect<Schema extends SchemaDef> extends BaseCrudDialect
129129 eb
130130 . selectFrom ( m2m . joinTable )
131131 . select ( `${ m2m . joinTable } .${ m2m . otherFkName } ` )
132- . whereRef ( `${ parentName } .${ parentIds [ 0 ] } ` , '=' , `${ m2m . joinTable } .${ m2m . parentFkName } ` ) ,
132+ . whereRef ( `${ parentAlias } .${ parentIds [ 0 ] } ` , '=' , `${ m2m . joinTable } .${ m2m . parentFkName } ` ) ,
133133 ) ,
134134 ) ;
135135 } else {
136136 const { keyPairs, ownedByModel } = getRelationForeignKeyFieldPairs ( this . schema , model , relationField ) ;
137137 keyPairs . forEach ( ( { fk, pk } ) => {
138138 if ( ownedByModel ) {
139139 // the parent model owns the fk
140- subQuery = subQuery . whereRef ( `${ relationModel } .${ pk } ` , '=' , `${ parentName } .${ fk } ` ) ;
140+ subQuery = subQuery . whereRef ( `${ relationModel } .${ pk } ` , '=' , `${ parentAlias } .${ fk } ` ) ;
141141 } else {
142142 // the relation side owns the fk
143- subQuery = subQuery . whereRef ( `${ relationModel } .${ fk } ` , '=' , `${ parentName } .${ pk } ` ) ;
143+ subQuery = subQuery . whereRef ( `${ relationModel } .${ fk } ` , '=' , `${ parentAlias } .${ pk } ` ) ;
144144 }
145145 } ) ;
146146 }
@@ -183,21 +183,31 @@ export class SqliteCrudDialect<Schema extends SchemaDef> extends BaseCrudDialect
183183 ...Object . entries < any > ( payload . select )
184184 . filter ( ( [ , value ] ) => value )
185185 . map ( ( [ field , value ] ) => {
186- const fieldDef = requireField ( this . schema , relationModel , field ) ;
187- if ( fieldDef . relation ) {
188- const subJson = this . buildRelationJSON (
186+ if ( field === '_count' ) {
187+ const subJson = this . buildCountJson (
189188 relationModel as GetModels < Schema > ,
190189 eb ,
191- field ,
192- `${ parentName } $${ relationField } ` ,
190+ `${ parentAlias } $${ relationField } ` ,
193191 value ,
194192 ) ;
195- return [ sql . lit ( field ) , subJson as ArgsType ] ;
193+ return [ sql . lit ( field ) , subJson ] ;
196194 } else {
197- return [
198- sql . lit ( field ) ,
199- buildFieldRef ( this . schema , relationModel , field , this . options , eb ) as ArgsType ,
200- ] ;
195+ const fieldDef = requireField ( this . schema , relationModel , field ) ;
196+ if ( fieldDef . relation ) {
197+ const subJson = this . buildRelationJSON (
198+ relationModel as GetModels < Schema > ,
199+ eb ,
200+ field ,
201+ `${ parentAlias } $${ relationField } ` ,
202+ value ,
203+ ) ;
204+ return [ sql . lit ( field ) , subJson ] ;
205+ } else {
206+ return [
207+ sql . lit ( field ) ,
208+ buildFieldRef ( this . schema , relationModel , field , this . options , eb ) as ArgsType ,
209+ ] ;
210+ }
201211 }
202212 } )
203213 . flatMap ( ( v ) => v ) ,
@@ -214,7 +224,7 @@ export class SqliteCrudDialect<Schema extends SchemaDef> extends BaseCrudDialect
214224 relationModel as GetModels < Schema > ,
215225 eb ,
216226 field ,
217- `${ parentName } $${ relationField } ` ,
227+ `${ parentAlias } $${ relationField } ` ,
218228 value ,
219229 ) ;
220230 return [ sql . lit ( field ) , subJson ] ;
0 commit comments