Skip to content

Conversation

@samwillis
Copy link
Collaborator

@samwillis samwillis commented Nov 26, 2025

I've tested this with the Linearlarge demo #891 and it fixes the same bug in that

🎯 Changes

Fixes a bug where DeduplicatedLoadSubset incorrectly deduplicated queries with different where clauses when the superset had a limit.

The isPredicateSubset function was updated to require where clauses to be equal (not just a subset) when the superset query includes a limit. This prevents scenarios where a filtered, paginated query (e.g., with a search term) is incorrectly considered a subset of a broader, paginated query (e.g., without a search term), leading to stale data.

New tests were added to predicate-utils.test.ts and subset-dedupe.test.ts to cover this specific bug and ensure correct behavior for limited queries.

✅ 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).

Open in Cursor Open in Web

Co-authored-by: sam.willis <sam.willis@gmail.com>
@cursor
Copy link

cursor bot commented Nov 26, 2025

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

@changeset-bot
Copy link

changeset-bot bot commented Nov 26, 2025

🦋 Changeset detected

Latest commit: 91341b8

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 11 packages
Name Type
@tanstack/db Patch
@tanstack/angular-db Patch
@tanstack/db-collection-e2e Patch
@tanstack/electric-db-collection Patch
@tanstack/powersync-db-collection Patch
@tanstack/react-db Patch
@tanstack/rxdb-db-collection Patch
@tanstack/solid-db Patch
@tanstack/svelte-db Patch
@tanstack/trailbase-db-collection Patch
@tanstack/vue-db Patch

Not sure what this means? Click here to learn what changesets are.

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

@pkg-pr-new
Copy link

pkg-pr-new bot commented Nov 26, 2025

More templates

@tanstack/angular-db

npm i https://pkg.pr.new/@tanstack/angular-db@914

@tanstack/db

npm i https://pkg.pr.new/@tanstack/db@914

@tanstack/db-ivm

npm i https://pkg.pr.new/@tanstack/db-ivm@914

@tanstack/electric-db-collection

npm i https://pkg.pr.new/@tanstack/electric-db-collection@914

@tanstack/offline-transactions

npm i https://pkg.pr.new/@tanstack/offline-transactions@914

@tanstack/powersync-db-collection

npm i https://pkg.pr.new/@tanstack/powersync-db-collection@914

@tanstack/query-db-collection

npm i https://pkg.pr.new/@tanstack/query-db-collection@914

@tanstack/react-db

npm i https://pkg.pr.new/@tanstack/react-db@914

@tanstack/rxdb-db-collection

npm i https://pkg.pr.new/@tanstack/rxdb-db-collection@914

@tanstack/solid-db

npm i https://pkg.pr.new/@tanstack/solid-db@914

@tanstack/svelte-db

npm i https://pkg.pr.new/@tanstack/svelte-db@914

@tanstack/trailbase-db-collection

npm i https://pkg.pr.new/@tanstack/trailbase-db-collection@914

@tanstack/vue-db

npm i https://pkg.pr.new/@tanstack/vue-db@914

commit: 91341b8

@github-actions
Copy link
Contributor

github-actions bot commented Nov 26, 2025

Size Change: +31 B (+0.04%)

Total Size: 87 kB

Filename Size Change
./packages/db/dist/esm/query/predicate-utils.js 2.91 kB +31 B (+1.08%)
ℹ️ View Unchanged
Filename Size
./packages/db/dist/esm/collection/change-events.js 1.38 kB
./packages/db/dist/esm/collection/changes.js 977 B
./packages/db/dist/esm/collection/events.js 388 B
./packages/db/dist/esm/collection/index.js 3.24 kB
./packages/db/dist/esm/collection/indexes.js 1.1 kB
./packages/db/dist/esm/collection/lifecycle.js 1.67 kB
./packages/db/dist/esm/collection/mutations.js 2.26 kB
./packages/db/dist/esm/collection/state.js 3.43 kB
./packages/db/dist/esm/collection/subscription.js 2.48 kB
./packages/db/dist/esm/collection/sync.js 2.37 kB
./packages/db/dist/esm/deferred.js 207 B
./packages/db/dist/esm/errors.js 4.19 kB
./packages/db/dist/esm/event-emitter.js 748 B
./packages/db/dist/esm/index.js 2.64 kB
./packages/db/dist/esm/indexes/auto-index.js 742 B
./packages/db/dist/esm/indexes/base-index.js 766 B
./packages/db/dist/esm/indexes/btree-index.js 1.87 kB
./packages/db/dist/esm/indexes/lazy-index.js 1.1 kB
./packages/db/dist/esm/indexes/reverse-index.js 513 B
./packages/db/dist/esm/local-only.js 837 B
./packages/db/dist/esm/local-storage.js 2.1 kB
./packages/db/dist/esm/optimistic-action.js 359 B
./packages/db/dist/esm/paced-mutations.js 496 B
./packages/db/dist/esm/proxy.js 3.69 kB
./packages/db/dist/esm/query/builder/functions.js 733 B
./packages/db/dist/esm/query/builder/index.js 3.96 kB
./packages/db/dist/esm/query/builder/ref-proxy.js 917 B
./packages/db/dist/esm/query/compiler/evaluators.js 1.35 kB
./packages/db/dist/esm/query/compiler/expressions.js 430 B
./packages/db/dist/esm/query/compiler/group-by.js 1.8 kB
./packages/db/dist/esm/query/compiler/index.js 1.96 kB
./packages/db/dist/esm/query/compiler/joins.js 2 kB
./packages/db/dist/esm/query/compiler/order-by.js 1.25 kB
./packages/db/dist/esm/query/compiler/select.js 1.07 kB
./packages/db/dist/esm/query/expression-helpers.js 1.43 kB
./packages/db/dist/esm/query/ir.js 673 B
./packages/db/dist/esm/query/live-query-collection.js 360 B
./packages/db/dist/esm/query/live/collection-config-builder.js 5.33 kB
./packages/db/dist/esm/query/live/collection-registry.js 264 B
./packages/db/dist/esm/query/live/collection-subscriber.js 1.74 kB
./packages/db/dist/esm/query/live/internal.js 130 B
./packages/db/dist/esm/query/optimizer.js 2.56 kB
./packages/db/dist/esm/query/subset-dedupe.js 921 B
./packages/db/dist/esm/scheduler.js 1.3 kB
./packages/db/dist/esm/SortedMap.js 1.18 kB
./packages/db/dist/esm/strategies/debounceStrategy.js 247 B
./packages/db/dist/esm/strategies/queueStrategy.js 428 B
./packages/db/dist/esm/strategies/throttleStrategy.js 246 B
./packages/db/dist/esm/transactions.js 2.9 kB
./packages/db/dist/esm/utils.js 881 B
./packages/db/dist/esm/utils/browser-polyfills.js 304 B
./packages/db/dist/esm/utils/btree.js 5.61 kB
./packages/db/dist/esm/utils/comparison.js 852 B
./packages/db/dist/esm/utils/index-optimization.js 1.51 kB
./packages/db/dist/esm/utils/type-guards.js 157 B

compressed-size-action::db-package-size

@github-actions
Copy link
Contributor

github-actions bot commented Nov 26, 2025

Size Change: 0 B

Total Size: 3.34 kB

ℹ️ View Unchanged
Filename Size
./packages/react-db/dist/esm/index.js 225 B
./packages/react-db/dist/esm/useLiveInfiniteQuery.js 1.17 kB
./packages/react-db/dist/esm/useLiveQuery.js 1.11 kB
./packages/react-db/dist/esm/useLiveSuspenseQuery.js 431 B
./packages/react-db/dist/esm/usePacedMutations.js 401 B

compressed-size-action::react-db-package-size

cursoragent and others added 3 commits November 26, 2025 16:29
Co-authored-by: sam.willis <sam.willis@gmail.com>
Co-authored-by: sam.willis <sam.willis@gmail.com>
Co-authored-by: sam.willis <sam.willis@gmail.com>
@samwillis samwillis marked this pull request as ready for review November 26, 2025 16:47
@samwillis samwillis changed the title Fix search and filter on-demand queries Fix deduplication of limited subset requests Nov 26, 2025
Copy link
Collaborator

@KyleAMathews KyleAMathews left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lgtm

@KyleAMathews KyleAMathews merged commit 51c73aa into main Nov 26, 2025
7 checks passed
@KyleAMathews KyleAMathews deleted the cursor/fix-search-and-filter-on-demand-queries-claude-4.5-opus-high-thinking-5800 branch November 26, 2025 18:57
@github-actions github-actions bot mentioned this pull request Nov 26, 2025
@github-actions
Copy link
Contributor

🎉 This PR has been released!

Thank you for your contribution!

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.

4 participants