| 245 | } |
| 246 | |
| 247 | func TestQuery_NestedComposition(t *testing.T) { |
| 248 | // Build a subquery |
| 249 | subquery := Q().Space("SELECT user_id FROM orders WHERE total > ?", 100) |
| 250 | |
| 251 | // Use it in main query |
| 252 | q := Q().Space("SELECT * FROM users"). |
| 253 | Where("id IN (?)", subquery) |
| 254 | |
| 255 | sql, args, err := q.ToSQL() |
| 256 | require.NoError(t, err) |
| 257 | require.Equal(t, "SELECT * FROM users WHERE id IN (SELECT user_id FROM orders WHERE total > $1)", sql) |
| 258 | require.Equal(t, []any{100}, args) |
| 259 | } |
| 260 | |
| 261 | func TestQuery_PracticalComposition(t *testing.T) { |
| 262 | // Realistic example: build a complex query with reusable parts |