ReviewOS

also looking at this

stacks/bun-query-builder

fix(client)!: bind db.raw and db.sql fragment values or refuse them

#1152
Merged glennmichael123 wants to merge fix/db-sql-raw-bindings into main
16 files +455 -118
docs/aggregations.mdmodified+8-7
Changes to docs/aggregations.md
@@ -159,6 +159,7 @@ const highValueCustomers = await db
159159Use raw SQL for complex aggregations:
160160
161161```typescript
162import { raw } from 'bun-query-builder'
162163
163164// Custom aggregation
164165const results = await db
@@ -173,12 +174,12 @@ const results = await db
173174// Group by with raw expressions
174175const weeklyStats = await db
175176 .selectFrom('orders')
176 .selectRaw(`
177 .selectRaw(raw`
177178 strftime('%Y-%W', created_at) AS week,
178 COUNT(_) AS orders,
179 COUNT(*) AS orders,
179180 SUM(amount) AS revenue
180181 `)
181 .groupByRaw("strftime('%Y-%W', created_at)")
182 .groupByRaw(raw`strftime('%Y-%W', created_at)`)
182183 .get()
183184
184185```
@@ -237,7 +238,7 @@ const authorStats = await db
237238
238239```typescript
239240
240import { createQueryBuilder, buildDatabaseSchema, buildSchemaMeta } from 'bun-query-builder'
241import { createQueryBuilder, buildDatabaseSchema, buildSchemaMeta, raw } from 'bun-query-builder'
241242
242243// Setup
243244const models = {
@@ -315,12 +316,12 @@ async function getAnalytics() {
315316 // Monthly revenue trend
316317 const monthlyRevenue = await db
317318 .selectFrom('orders')
318 .selectRaw(`
319 .selectRaw(raw`
319320 strftime('%Y-%m', created_at) AS month,
320 COUNT(_) AS orders,
321 COUNT(*) AS orders,
321322 SUM(amount) AS revenue
322323 `)
323 .groupByRaw("strftime('%Y-%m', created_at)")
324 .groupByRaw(raw`strftime('%Y-%m', created_at)`)
324325 .orderBy('month')
325326 .get()
326327