@@ -1294,7 +1294,10 @@ function hasActiveQueryBuilderHooks(): boolean {
12941294 */
12951295function createDeferredSqliteSelect ( instance : RawQueryBuilder , table : string ) : unknown {
12961296 let columns : string [ ] | undefined
1297- const predicates : Array < { column : string , operator : string , value : unknown } > = [ ]
1297+ let predicateColumn : string | undefined
1298+ let predicateOperator : string | undefined
1299+ let predicateValue : unknown
1300+ let additionalPredicates : Array < { column : string , operator : string , value : unknown } > | undefined
12981301 let rowLimit : number | undefined
12991302 let materialized : ReturnType < RawQueryBuilder [ 'selectFrom' ] > | undefined
13001303
@@ -1306,9 +1309,13 @@ function createDeferredSqliteSelect(instance: RawQueryBuilder, table: string): u
13061309 const apply = builder . select as unknown as ( value : unknown ) => typeof builder
13071310 builder = apply . call ( builder , columns )
13081311 }
1309- for ( const predicate of predicates ) {
1312+ if ( predicateColumn !== undefined ) {
13101313 const apply = builder . where as unknown as ( column : unknown , operator : unknown , value : unknown ) => typeof builder
1311- builder = apply . call ( builder , predicate . column , predicate . operator , predicate . value )
1314+ builder = apply . call ( builder , predicateColumn , predicateOperator , predicateValue )
1315+ if ( additionalPredicates ) {
1316+ for ( const predicate of additionalPredicates )
1317+ builder = apply . call ( builder , predicate . column , predicate . operator , predicate . value )
1318+ }
13121319 }
13131320 if ( rowLimit !== undefined ) {
13141321 const apply = builder . limit as unknown as ( value : unknown ) => typeof builder
@@ -1336,7 +1343,14 @@ function createDeferredSqliteSelect(instance: RawQueryBuilder, table: string): u
13361343 const apply = builder . where as unknown as ( column : unknown , operator : unknown , value : unknown ) => typeof builder
13371344 return apply . call ( builder , column , operator , value )
13381345 }
1339- predicates . push ( { column, operator, value } )
1346+ if ( predicateColumn === undefined ) {
1347+ predicateColumn = column
1348+ predicateOperator = operator
1349+ predicateValue = value
1350+ }
1351+ else {
1352+ ; ( additionalPredicates ??= [ ] ) . push ( { column, operator, value } )
1353+ }
13401354 return proxy
13411355 } ,
13421356 limit ( value : unknown ) {
@@ -1352,11 +1366,15 @@ function createDeferredSqliteSelect(instance: RawQueryBuilder, table: string): u
13521366 const selected = columns ?. join ( ', ' ) ?? '*'
13531367 let query = `SELECT ${ selected } FROM ${ table } `
13541368 const params : unknown [ ] = [ ]
1355- if ( predicates . length > 0 ) {
1356- query += ` WHERE ${ predicates . map ( ( predicate ) => {
1357- params . push ( predicate . value )
1358- return `${ predicate . column } ${ predicate . operator } ?`
1359- } ) . join ( ' AND ' ) } `
1369+ if ( predicateColumn !== undefined ) {
1370+ query += ` WHERE ${ predicateColumn } ${ predicateOperator } ?`
1371+ params . push ( predicateValue )
1372+ if ( additionalPredicates ) {
1373+ query += ` AND ${ additionalPredicates . map ( ( predicate ) => {
1374+ params . push ( predicate . value )
1375+ return `${ predicate . column } ${ predicate . operator } ?`
1376+ } ) . join ( ' AND ' ) } `
1377+ }
13601378 }
13611379 if ( rowLimit !== undefined )
13621380 query += ` LIMIT ${ rowLimit } `
0 commit comments