Skip to content

Migrate warehouse queries to effect-orm - #1258

Merged
Makisuo merged 4 commits into
mainfrom
claude/maple-orm-clickhouse-migration-16dcd5
Oct 5, 2026
Merged

Makisuo merged 4 commits into
mainfrom
claude/maple-orm-clickhouse-migration-16dcd5

Lock @maple-dev/effect-orm 0.2.0

898c193
Select commit
Loading
Failed to load commit list.
Maple Review Bot / Maple / review completed Oct 5, 2026 in 8m 54s

Confidence 3/5 · No issues found

🟡 Confidence 3/5 · needs attention
quality 100/100 · no findings · tests partial · risk medium

Warning

This review ended early; what follows is what it established.

Mechanical migration of the ClickHouse query layer to @maple-dev/effect-orm, plus a branded OrgId threaded through every tenant filter as the shared orgIdParam. The hunks I read preserve emitted SQL and tenant scoping; I found no defect I can stand behind. Files I could not read are named below.

  • Builder imports move to @maple-dev/effect-orm/{clickhouse,expr,sql}
  • OrgId is branded; every tenant filter becomes orgIdParam
  • compile params are typed per query, so runtime variants compile per branch
  • traceTimeProbeQuery splits into bounded recentTraceTimeProbeQuery; LOCAL_ORG_ID moves to @maple/query-engine/local
What was checked
  • Every $.OrgId.eq(param.string("orgId")) in errors.ts, ai-tools.ts, ai-sessions.ts is now orgIdParam; none dropped
  • traceFacetTiers inlined at errors.ts:703,828,850 keeps the same canUseTraceFacetsRollup union choice
  • planetscaleStatsParams no longer spreads database; the three branch arms pass it explicitly (apps/api/src/routes/queries.ts:346,358,375)
Files not reviewed (78)

The review ended before it read these diffs, so nothing above vouches for them.

  • apps/api/package.json
  • apps/api/scripts/query-bench/catalog.clickhouse.e2e.test.ts
  • apps/cli/src/server/service-map-rollup.ts
  • packages/backend/package.json
  • packages/backend/src/services/auth/tinybird-jwt.ts
  • packages/backend/src/services/warehouse/WarehouseQueryService.clickhouse.e2e.test.ts
  • packages/backend/src/services/warehouse/WarehouseQueryService.test.ts
  • packages/backend/src/services/warehouse/ai-tools.clickhouse.e2e.test.ts
  • packages/backend/src/services/warehouse/ai-trace-index-materialization.clickhouse.e2e.test.ts
  • packages/backend/src/services/warehouse/series-cap.clickhouse.e2e.test.ts
  • packages/domain/package.json
  • packages/domain/src/raw-sql.ts
  • packages/domain/src/tinybird/ai-crawler-columns.ts
  • packages/domain/src/tinybird/gen-ai-columns.ts
  • packages/domain/src/tinybird/semconv-renames.test.ts
  • packages/domain/src/tinybird/semconv-renames.ts
  • packages/domain/src/tinybird/span-display-name.ts
  • packages/query-engine-integrations/package.json
  • packages/query-engine-integrations/src/ai/ai-sessions.test.ts
  • packages/query-engine-integrations/src/ai/ai-span-columns.test.ts
  • packages/query-engine-integrations/src/ai/ai-tools.test.ts
  • packages/query-engine-integrations/src/benchmark/catalog.test.ts
  • packages/query-engine-integrations/src/benchmark/index.ts
  • packages/query-engine-integrations/src/cloudflare/cloudflare-infra-breakdowns.test.ts
  • packages/query-engine-integrations/src/cloudflare/cloudflare-infra-extended.test.ts
  • packages/query-engine-integrations/src/cloudflare/cloudflare-infra-filters.test.ts
  • packages/query-engine-integrations/src/cloudflare/cloudflare-infra.test.ts
  • packages/query-engine-integrations/src/cloudflare/cloudflare-map.test.ts
  • packages/query-engine-integrations/src/cloudflare/cloudflare-usage.test.ts
  • packages/query-engine-integrations/src/planetscale/planetscale-infra.test.ts
  • and 48 more

898c193 · Updated on every push. Reply "won't fix" to dismiss a finding, or mention @maple-review-bot to ask about one.