Skip to content

Conversation

@kevin-dp
Copy link
Contributor

Adds an onDeduplicate callback to the DeduplicatedLoadSubset class from #668. Some collections (like the query collection) need this callback such that they are informed if a query is deduplicated. This is important because e.g. the query collection needs to manually reference count rows such that it can GC rows when they are not referenced by any query anymore. But this means they need to be able to track rows also for deduplicated queries.

@changeset-bot
Copy link

changeset-bot bot commented Oct 20, 2025

🦋 Changeset detected

Latest commit: ac0e8b7

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

This PR includes changesets to release 16 packages
Name Type
@tanstack/db Patch
@tanstack/angular-db Patch
@tanstack/electric-db-collection Patch
@tanstack/offline-transactions Patch
@tanstack/powersync-db-collection Patch
@tanstack/query-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
todos Patch
@tanstack/db-example-paced-mutations-demo Patch
@tanstack/db-example-react-todo Patch
@tanstack/db-example-solid-todo 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 Oct 20, 2025

More templates

@tanstack/angular-db

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

@tanstack/db

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

@tanstack/db-ivm

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

@tanstack/electric-db-collection

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

@tanstack/offline-transactions

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

@tanstack/powersync-db-collection

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

@tanstack/query-db-collection

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

@tanstack/react-db

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

@tanstack/rxdb-db-collection

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

@tanstack/solid-db

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

@tanstack/svelte-db

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

@tanstack/trailbase-db-collection

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

@tanstack/vue-db

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

commit: ac0e8b7

@kevin-dp kevin-dp requested a review from KyleAMathews October 20, 2025 12:29
@github-actions
Copy link
Contributor

github-actions bot commented Oct 20, 2025

Size Change: +42 B (+0.05%)

Total Size: 83.1 kB

Filename Size Change
./packages/db/dist/esm/query/subset-dedupe.js 978 B +42 B (+4.49%)
ℹ️ View Unchanged
Filename Size
./packages/db/dist/esm/collection/change-events.js 1.34 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.12 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.42 kB
./packages/db/dist/esm/collection/sync.js 2.02 kB
./packages/db/dist/esm/deferred.js 207 B
./packages/db/dist/esm/errors.js 3.9 kB
./packages/db/dist/esm/event-emitter.js 748 B
./packages/db/dist/esm/index.js 2.49 kB
./packages/db/dist/esm/indexes/auto-index.js 731 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.08 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.22 kB
./packages/db/dist/esm/query/builder/functions.js 606 B
./packages/db/dist/esm/query/builder/index.js 3.85 kB
./packages/db/dist/esm/query/builder/ref-proxy.js 917 B
./packages/db/dist/esm/query/compiler/evaluators.js 1.26 kB
./packages/db/dist/esm/query/compiler/expressions.js 674 B
./packages/db/dist/esm/query/compiler/group-by.js 1.78 kB
./packages/db/dist/esm/query/compiler/index.js 1.95 kB
./packages/db/dist/esm/query/compiler/joins.js 2 kB
./packages/db/dist/esm/query/compiler/order-by.js 1.17 kB
./packages/db/dist/esm/query/compiler/select.js 1.07 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 kB
./packages/db/dist/esm/query/live/collection-registry.js 214 B
./packages/db/dist/esm/query/live/collection-subscriber.js 1.77 kB
./packages/db/dist/esm/query/optimizer.js 2.6 kB
./packages/db/dist/esm/query/predicate-utils.js 2.88 kB
./packages/db/dist/esm/scheduler.js 1.21 kB
./packages/db/dist/esm/SortedMap.js 1.18 kB
./packages/db/dist/esm/strategies/debounceStrategy.js 237 B
./packages/db/dist/esm/strategies/queueStrategy.js 418 B
./packages/db/dist/esm/strategies/throttleStrategy.js 236 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 660 B
./packages/db/dist/esm/utils/index-optimization.js 1.49 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 Oct 20, 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

@kevin-dp kevin-dp force-pushed the samwillis/predicate-utils branch from 7c18807 to a732165 Compare October 21, 2025 10:07
@kevin-dp kevin-dp force-pushed the kevin/dedup-callback branch from a844ab2 to 61beafa Compare October 21, 2025 10:10
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.

:shipit:

@kevin-dp kevin-dp force-pushed the samwillis/predicate-utils branch from a732165 to 6ee696c Compare October 22, 2025 09:18
@kevin-dp kevin-dp force-pushed the kevin/dedup-callback branch from 61beafa to 313299a Compare October 22, 2025 09:18
@samwillis samwillis moved this to Ready for review in 1.0.0 release Nov 4, 2025
Base automatically changed from samwillis/predicate-utils to query-driven-sync November 5, 2025 11:15
@samwillis samwillis merged commit 0d97001 into query-driven-sync Nov 5, 2025
6 checks passed
@samwillis samwillis deleted the kevin/dedup-callback branch November 5, 2025 11:48
samwillis added a commit that referenced this pull request Nov 6, 2025
* Callback that informs about deduplicated loadSubset calls

* Unit tests for onDeduplicate callback + move dedupe test files to the right folder

* changeset

* Object params

* Updated lockfile

* fix lock file

---------

Co-authored-by: Sam Willis <sam.willis@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Ready for review

Development

Successfully merging this pull request may close these issues.

4 participants