Skip to content

Conversation

@melvinhagberg
Copy link

When using JOIN queries with on-demand sync mode, the lazy loading optimization for JOINs was accumulating LoadSubsetOptions in subscription.loadedSubsets without deduplication. Over multiple graph runs, this caused query keys and SQL queries to grow unboundedly, eventually causing "too many SQL variables" errors.

Changes:

  • Add loadedJoinKeys Set in joins.ts to track already-loaded join keys
  • Filter out loaded keys before calling requestSnapshot
  • Add isPredicateSubset check in subscription.ts before pushing to loadedSubsets
  • Add tests for JOIN lazy loading deduplication

🎯 Changes

✅ Checklist

  • I have followed the steps in the Contributing guide.
  • I have tested this code locally with pnpm test:pr.

🚀 Release Impact

  • This change affects published code, and I have generated a changeset.
  • This change is docs/CI/dev-only (no release).

…Subsets

When using JOIN queries with on-demand sync mode, the lazy loading optimization
for JOINs was accumulating LoadSubsetOptions in subscription.loadedSubsets
without deduplication. Over multiple graph runs, this caused query keys and
SQL queries to grow unboundedly, eventually causing "too many SQL variables"
errors.

Changes:
- Add loadedJoinKeys Set in joins.ts to track already-loaded join keys
- Filter out loaded keys before calling requestSnapshot
- Add isPredicateSubset check in subscription.ts before pushing to loadedSubsets
- Add tests for JOIN lazy loading deduplication

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@changeset-bot
Copy link

changeset-bot bot commented Jan 30, 2026

⚠️ No Changeset found

Latest commit: 18a158f

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@melvinhagberg melvinhagberg marked this pull request as draft January 30, 2026 10:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant