* Step 1: Split all AND clauses recursively into separate WHERE clauses. * * This enables more granular optimization by treating each condition independently. * OR clauses are preserved as they cannot be split without changing query semantics. * * @param whereClauses - Array of WHERE expression
( whereClauses: Array<Where>, )
| 545 | * ``` |
| 546 | */ |
| 547 | function splitAndClauses( |
| 548 | whereClauses: Array<Where>, |
| 549 | ): Array<BasicExpression<boolean>> { |
| 550 | const result: Array<BasicExpression<boolean>> = [] |
| 551 | |
| 552 | for (const whereClause of whereClauses) { |
| 553 | const clause = getWhereExpression(whereClause) |
| 554 | result.push(...splitAndClausesRecursive(clause)) |
| 555 | } |
| 556 | |
| 557 | return result |
| 558 | } |
| 559 | |
| 560 | // Helper function for recursive splitting of BasicExpression arrays |
| 561 | function splitAndClausesRecursive( |
no test coverage detected