Skip to content

Callback to inform about loadSubset deduplication - #694

Merged
samwillis merged 6 commits into
query-driven-syncfrom
kevin/dedup-callback
Nov 5, 2025
Merged

Callback to inform about loadSubset deduplication#694
samwillis merged 6 commits into
query-driven-syncfrom
kevin/dedup-callback

Conversation

@kevin-dp

Copy link
Copy Markdown
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

changeset-botBot commented Oct 20, 2025

Copy link
Copy Markdown

🦋 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
NameType
@tanstack/dbPatch
@tanstack/angular-dbPatch
@tanstack/electric-db-collectionPatch
@tanstack/offline-transactionsPatch
@tanstack/powersync-db-collectionPatch
@tanstack/query-db-collectionPatch
@tanstack/react-dbPatch
@tanstack/rxdb-db-collectionPatch
@tanstack/solid-dbPatch
@tanstack/svelte-dbPatch
@tanstack/trailbase-db-collectionPatch
@tanstack/vue-dbPatch
todosPatch
@tanstack/db-example-paced-mutations-demoPatch
@tanstack/db-example-react-todoPatch
@tanstack/db-example-solid-todoPatch

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

pkg-pr-newBot commented Oct 20, 2025

Copy link
Copy Markdown
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

@github-actions

github-actionsBot commented Oct 20, 2025

Copy link
Copy Markdown
Contributor

Size Change: +42 B (+0.05%)

Total Size: 83.1 kB

FilenameSizeChange
./packages/db/dist/esm/query/subset-dedupe.js978 B+42 B (+4.49%)
ℹ️ View Unchanged
FilenameSize
./packages/db/dist/esm/collection/change-events.js1.34 kB
./packages/db/dist/esm/collection/changes.js977 B
./packages/db/dist/esm/collection/events.js388 B
./packages/db/dist/esm/collection/index.js3.12 kB
./packages/db/dist/esm/collection/indexes.js1.1 kB
./packages/db/dist/esm/collection/lifecycle.js1.67 kB
./packages/db/dist/esm/collection/mutations.js2.26 kB
./packages/db/dist/esm/collection/state.js3.43 kB
./packages/db/dist/esm/collection/subscription.js2.42 kB
./packages/db/dist/esm/collection/sync.js2.02 kB
./packages/db/dist/esm/deferred.js207 B
./packages/db/dist/esm/errors.js3.9 kB
./packages/db/dist/esm/event-emitter.js748 B
./packages/db/dist/esm/index.js2.49 kB
./packages/db/dist/esm/indexes/auto-index.js731 B
./packages/db/dist/esm/indexes/base-index.js766 B
./packages/db/dist/esm/indexes/btree-index.js1.87 kB
./packages/db/dist/esm/indexes/lazy-index.js1.1 kB
./packages/db/dist/esm/indexes/reverse-index.js513 B
./packages/db/dist/esm/local-only.js837 B
./packages/db/dist/esm/local-storage.js2.08 kB
./packages/db/dist/esm/optimistic-action.js359 B
./packages/db/dist/esm/paced-mutations.js496 B
./packages/db/dist/esm/proxy.js3.22 kB
./packages/db/dist/esm/query/builder/functions.js606 B
./packages/db/dist/esm/query/builder/index.js3.85 kB
./packages/db/dist/esm/query/builder/ref-proxy.js917 B
./packages/db/dist/esm/query/compiler/evaluators.js1.26 kB
./packages/db/dist/esm/query/compiler/expressions.js674 B
./packages/db/dist/esm/query/compiler/group-by.js1.78 kB
./packages/db/dist/esm/query/compiler/index.js1.95 kB
./packages/db/dist/esm/query/compiler/joins.js2 kB
./packages/db/dist/esm/query/compiler/order-by.js1.17 kB
./packages/db/dist/esm/query/compiler/select.js1.07 kB
./packages/db/dist/esm/query/ir.js673 B
./packages/db/dist/esm/query/live-query-collection.js360 B
./packages/db/dist/esm/query/live/collection-config-builder.js5 kB
./packages/db/dist/esm/query/live/collection-registry.js214 B
./packages/db/dist/esm/query/live/collection-subscriber.js1.77 kB
./packages/db/dist/esm/query/optimizer.js2.6 kB
./packages/db/dist/esm/query/predicate-utils.js2.88 kB
./packages/db/dist/esm/scheduler.js1.21 kB
./packages/db/dist/esm/SortedMap.js1.18 kB
./packages/db/dist/esm/strategies/debounceStrategy.js237 B
./packages/db/dist/esm/strategies/queueStrategy.js418 B
./packages/db/dist/esm/strategies/throttleStrategy.js236 B
./packages/db/dist/esm/transactions.js2.9 kB
./packages/db/dist/esm/utils.js881 B
./packages/db/dist/esm/utils/browser-polyfills.js304 B
./packages/db/dist/esm/utils/btree.js5.61 kB
./packages/db/dist/esm/utils/comparison.js660 B
./packages/db/dist/esm/utils/index-optimization.js1.49 kB
./packages/db/dist/esm/utils/type-guards.js157 B

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

@github-actions

github-actionsBot commented Oct 20, 2025

Copy link
Copy Markdown
Contributor

Size Change: 0 B

Total Size: 3.34 kB

ℹ️ View Unchanged
FilenameSize
./packages/react-db/dist/esm/index.js225 B
./packages/react-db/dist/esm/useLiveInfiniteQuery.js1.17 kB
./packages/react-db/dist/esm/useLiveQuery.js1.11 kB
./packages/react-db/dist/esm/useLiveSuspenseQuery.js431 B
./packages/react-db/dist/esm/usePacedMutations.js401 B

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

@kevin-dp
kevin-dpforce-pushed the samwillis/predicate-utils branch from 7c18807 to a732165CompareOctober 21, 2025 10:07
@kevin-dp
kevin-dpforce-pushed the kevin/dedup-callback branch from a844ab2 to 61beafaCompareOctober 21, 2025 10:10
Comment threadpackages/db/src/query/subset-dedupe.ts Outdated

@KyleAMathewsKyleAMathews left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

:shipit:

@kevin-dp
kevin-dpforce-pushed the samwillis/predicate-utils branch from a732165 to 6ee696cCompareOctober 22, 2025 09:18
@kevin-dp
kevin-dpforce-pushed the kevin/dedup-callback branch from 61beafa to 313299aCompareOctober 22, 2025 09:18
@samwillissamwillis moved this to Ready for review in TanStack DB 1.0.0 releaseNov 4, 2025
Base automatically changed from samwillis/predicate-utils to query-driven-syncNovember 5, 2025 11:15
@samwillis
samwillis merged commit 0d97001 into query-driven-syncNov 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>
samwillis added a commit that referenced this pull request Nov 12, 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>
samwillis added a commit that referenced this pull request Nov 12, 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>
@KyleAMathewsKyleAMathews moved this from Ready for review to Done in TanStack DB 1.0.0 releaseNov 13, 2025
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

3 participants

@kevin-dp@samwillis@KyleAMathews