[PR #4754] [CLOSED] feat: (OLD) JOIN support in adapters #5563

Closed
opened 2026-03-13 12:27:42 -05:00 by GiteaMirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/better-auth/better-auth/pull/4754
Author: @ping-maxwell
Created: 9/18/2025
Status: Closed

Base: canaryHead: feat/adapter/join


📝 Commits (10+)

  • d1fe109 Revert "chore: bump tailwindcss to v4 (#4681)"
  • ef65d08 feat: JOIN support in adapters
  • ceefd55 chore: cleanup
  • 23f957f Merge branch 'canary' into feat/adapter/join
  • cd640d1 fix
  • 7f77ae5 support all join types in drizzle
  • c66c5be chore: cleanup
  • a0c3c43 Merge branch 'canary' into feat/adapter/join
  • f49277e drizzle join working
  • 6074d28 Merge branch 'canary' into feat/adapter/join

📊 Changes

13 files changed (+1677 additions, -163 deletions)

View changed files

📝 demo/nextjs/package.json (+0 -1)
📝 demo/nextjs/postcss.config.mjs (+5 -2)
📝 packages/better-auth/src/adapters/adapter-factory/index.ts (+114 -62)
📝 packages/better-auth/src/adapters/adapter-factory/test/__snapshots__/adapter-factory.test.ts.snap (+12 -0)
📝 packages/better-auth/src/adapters/adapter-factory/test/adapter-factory.test.ts (+635 -3)
📝 packages/better-auth/src/adapters/adapter-factory/types.ts (+197 -0)
📝 packages/better-auth/src/adapters/drizzle-adapter/drizzle-adapter.ts (+497 -87)
packages/better-auth/src/adapters/kysely-adapter/test/state.txt (+1 -0)
packages/better-auth/src/adapters/prisma-adapter/test/state.txt (+1 -0)
📝 packages/better-auth/src/adapters/test.ts (+142 -0)
📝 packages/better-auth/src/plugins/organization/adapter.ts (+3 -5)
📝 packages/better-auth/src/types/adapter.ts (+52 -0)
📝 pnpm-lock.yaml (+18 -3)

📄 Description

Summary by cubic

Adds JOIN support to the adapter API and updates the Drizzle adapter to build join-friendly queries with proper select mapping. This enables fetching related models in a single call and returns typed, per-model results.

  • New Features
    • Added Join to adapter types; findOne now accepts join and returns { [model]: data | null }.
    • createAdapter transforms JOIN results per model and respects select fields.
    • New adapter config flag supportsJoins.
    • Drizzle adapter builds join-capable queries (left join) and maps selected columns per provider (pg/mysql/sqlite).
    • Improved where handling (AND/OR) and select propagation across create/find/update.
    • Comprehensive tests for JOINs, field mappings, and multiple where clauses.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/better-auth/better-auth/pull/4754 **Author:** [@ping-maxwell](https://github.com/ping-maxwell) **Created:** 9/18/2025 **Status:** ❌ Closed **Base:** `canary` ← **Head:** `feat/adapter/join` --- ### 📝 Commits (10+) - [`d1fe109`](https://github.com/better-auth/better-auth/commit/d1fe10962079c82920ea078a9847f65a59907b81) Revert "chore: bump tailwindcss to v4 (#4681)" - [`ef65d08`](https://github.com/better-auth/better-auth/commit/ef65d084afbfd3404ff7d2165c8acf3fbddbcf01) feat: JOIN support in adapters - [`ceefd55`](https://github.com/better-auth/better-auth/commit/ceefd552f1c4bec5981bdea506b0ab9bd17b710c) chore: cleanup - [`23f957f`](https://github.com/better-auth/better-auth/commit/23f957f60ef8cf9a5ebee619c6f91844ea1e77cf) Merge branch 'canary' into feat/adapter/join - [`cd640d1`](https://github.com/better-auth/better-auth/commit/cd640d170852b552c9809c2fc3594dc7e436817b) fix - [`7f77ae5`](https://github.com/better-auth/better-auth/commit/7f77ae53f53c2b55d44ef7e2761908486efb562f) support all join types in drizzle - [`c66c5be`](https://github.com/better-auth/better-auth/commit/c66c5be0bc6a7c906d5b2699c766384cd22c7d0d) chore: cleanup - [`a0c3c43`](https://github.com/better-auth/better-auth/commit/a0c3c43e3d9ae43d6af004c0ddeb2c8c88f8897d) Merge branch 'canary' into feat/adapter/join - [`f49277e`](https://github.com/better-auth/better-auth/commit/f49277e2b4ad229c4451e96d0ee1a78b7b7622dd) drizzle join working - [`6074d28`](https://github.com/better-auth/better-auth/commit/6074d28f33cb00110bacb3f4121fdfaa77175df1) Merge branch 'canary' into feat/adapter/join ### 📊 Changes **13 files changed** (+1677 additions, -163 deletions) <details> <summary>View changed files</summary> 📝 `demo/nextjs/package.json` (+0 -1) 📝 `demo/nextjs/postcss.config.mjs` (+5 -2) 📝 `packages/better-auth/src/adapters/adapter-factory/index.ts` (+114 -62) 📝 `packages/better-auth/src/adapters/adapter-factory/test/__snapshots__/adapter-factory.test.ts.snap` (+12 -0) 📝 `packages/better-auth/src/adapters/adapter-factory/test/adapter-factory.test.ts` (+635 -3) 📝 `packages/better-auth/src/adapters/adapter-factory/types.ts` (+197 -0) 📝 `packages/better-auth/src/adapters/drizzle-adapter/drizzle-adapter.ts` (+497 -87) ➕ `packages/better-auth/src/adapters/kysely-adapter/test/state.txt` (+1 -0) ➕ `packages/better-auth/src/adapters/prisma-adapter/test/state.txt` (+1 -0) 📝 `packages/better-auth/src/adapters/test.ts` (+142 -0) 📝 `packages/better-auth/src/plugins/organization/adapter.ts` (+3 -5) 📝 `packages/better-auth/src/types/adapter.ts` (+52 -0) 📝 `pnpm-lock.yaml` (+18 -3) </details> ### 📄 Description <!-- This is an auto-generated description by cubic. --> ## Summary by cubic Adds JOIN support to the adapter API and updates the Drizzle adapter to build join-friendly queries with proper select mapping. This enables fetching related models in a single call and returns typed, per-model results. - **New Features** - Added Join to adapter types; findOne now accepts join and returns { [model]: data | null }. - createAdapter transforms JOIN results per model and respects select fields. - New adapter config flag supportsJoins. - Drizzle adapter builds join-capable queries (left join) and maps selected columns per provider (pg/mysql/sqlite). - Improved where handling (AND/OR) and select propagation across create/find/update. - Comprehensive tests for JOINs, field mappings, and multiple where clauses. <!-- End of auto-generated description by cubic. --> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
GiteaMirror added the pull-request label 2026-03-13 12:27:42 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/better-auth#5563