Skip to content

fix: pass child where clauses to loadSubset in includes#1472

Merged
kevin-dp merged 5 commits intofix/on-demand-includesfrom
fix/on-demand-includes-pass-where-clauses
Apr 14, 2026
Merged

fix: pass child where clauses to loadSubset in includes#1472
kevin-dp merged 5 commits intofix/on-demand-includesfrom
fix/on-demand-includes-pass-where-clauses

Conversation

@kevin-dp
Copy link
Copy Markdown
Contributor

Summary

  • Merges child sourceWhereClauses into the parent's map during includes compilation, so pure-child WHERE clauses (e.g., eq(item.status, 'active')) are picked up by the child collection's CollectionSubscriber and AND-combined with the inArray correlation filter in loadSubset
  • Previously, only aliasToCollectionId and aliasRemapping were merged from the child compilation result — sourceWhereClauses was silently dropped
  • Adds 4 new tests verifying child WHERE clauses reach loadSubset

Builds on #1471

Test plan

  • New tests verify:
    • Single pure-child WHERE clause is included in loadSubset alongside correlation filter
    • Multiple pure-child WHERE clauses are all included
    • Query results are correct with child WHERE filtering
    • and() syntax combining correlation + child filter works
  • All 10 includes lazy loading tests pass
  • Full test suite passes (2075 tests)
  • Build and typecheck pass

🤖 Generated with Claude Code

@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new bot commented Apr 13, 2026

More templates

@tanstack/angular-db

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

@tanstack/browser-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/browser-db-sqlite-persistence@1472

@tanstack/capacitor-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/capacitor-db-sqlite-persistence@1472

@tanstack/cloudflare-durable-objects-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/cloudflare-durable-objects-db-sqlite-persistence@1472

@tanstack/db

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

@tanstack/db-ivm

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

@tanstack/db-sqlite-persistence-core

npm i https://pkg.pr.new/@tanstack/db-sqlite-persistence-core@1472

@tanstack/electric-db-collection

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

@tanstack/electron-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/electron-db-sqlite-persistence@1472

@tanstack/expo-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/expo-db-sqlite-persistence@1472

@tanstack/node-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/node-db-sqlite-persistence@1472

@tanstack/offline-transactions

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

@tanstack/powersync-db-collection

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

@tanstack/query-db-collection

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

@tanstack/react-db

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

@tanstack/react-native-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/react-native-db-sqlite-persistence@1472

@tanstack/rxdb-db-collection

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

@tanstack/solid-db

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

@tanstack/svelte-db

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

@tanstack/tauri-db-sqlite-persistence

npm i https://pkg.pr.new/@tanstack/tauri-db-sqlite-persistence@1472

@tanstack/trailbase-db-collection

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

@tanstack/vue-db

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

commit: f8eebbb

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 13, 2026

Size Change: +19 B (+0.02%)

Total Size: 114 kB

📦 View Changed
Filename Size Change
packages/db/dist/esm/query/compiler/index.js 4.13 kB +19 B (+0.46%)
ℹ️ View Unchanged
Filename Size
packages/db/dist/esm/collection/change-events.js 1.39 kB
packages/db/dist/esm/collection/changes.js 1.38 kB
packages/db/dist/esm/collection/cleanup-queue.js 810 B
packages/db/dist/esm/collection/events.js 434 B
packages/db/dist/esm/collection/index.js 3.61 kB
packages/db/dist/esm/collection/indexes.js 1.99 kB
packages/db/dist/esm/collection/lifecycle.js 1.69 kB
packages/db/dist/esm/collection/mutations.js 2.47 kB
packages/db/dist/esm/collection/state.js 5.26 kB
packages/db/dist/esm/collection/subscription.js 3.74 kB
packages/db/dist/esm/collection/sync.js 2.88 kB
packages/db/dist/esm/collection/transaction-metadata.js 144 B
packages/db/dist/esm/deferred.js 207 B
packages/db/dist/esm/errors.js 4.92 kB
packages/db/dist/esm/event-emitter.js 748 B
packages/db/dist/esm/index.js 3 kB
packages/db/dist/esm/indexes/auto-index.js 830 B
packages/db/dist/esm/indexes/base-index.js 729 B
packages/db/dist/esm/indexes/basic-index.js 2.05 kB
packages/db/dist/esm/indexes/btree-index.js 2.17 kB
packages/db/dist/esm/indexes/index-registry.js 820 B
packages/db/dist/esm/indexes/reverse-index.js 538 B
packages/db/dist/esm/local-only.js 890 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.75 kB
packages/db/dist/esm/query/builder/functions.js 919 B
packages/db/dist/esm/query/builder/index.js 5.25 kB
packages/db/dist/esm/query/builder/ref-proxy.js 1.2 kB
packages/db/dist/esm/query/compiler/evaluators.js 1.62 kB
packages/db/dist/esm/query/compiler/expressions.js 430 B
packages/db/dist/esm/query/compiler/group-by.js 2.69 kB
packages/db/dist/esm/query/compiler/joins.js 2.34 kB
packages/db/dist/esm/query/compiler/order-by.js 1.72 kB
packages/db/dist/esm/query/compiler/select.js 1.11 kB
packages/db/dist/esm/query/effect.js 4.78 kB
packages/db/dist/esm/query/expression-helpers.js 1.43 kB
packages/db/dist/esm/query/ir.js 829 B
packages/db/dist/esm/query/live-query-collection.js 360 B
packages/db/dist/esm/query/live/collection-config-builder.js 7.88 kB
packages/db/dist/esm/query/live/collection-registry.js 264 B
packages/db/dist/esm/query/live/collection-subscriber.js 1.95 kB
packages/db/dist/esm/query/live/internal.js 145 B
packages/db/dist/esm/query/live/utils.js 1.64 kB
packages/db/dist/esm/query/optimizer.js 2.62 kB
packages/db/dist/esm/query/predicate-utils.js 2.97 kB
packages/db/dist/esm/query/query-once.js 359 B
packages/db/dist/esm/query/subset-dedupe.js 960 B
packages/db/dist/esm/scheduler.js 1.3 kB
packages/db/dist/esm/SortedMap.js 1.3 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 927 B
packages/db/dist/esm/utils/array-utils.js 273 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 1.05 kB
packages/db/dist/esm/utils/cursor.js 457 B
packages/db/dist/esm/utils/index-optimization.js 1.54 kB
packages/db/dist/esm/utils/type-guards.js 157 B
packages/db/dist/esm/virtual-props.js 360 B

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

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 13, 2026

Size Change: 0 B

Total Size: 4.24 kB

ℹ️ View Unchanged
Filename Size
packages/react-db/dist/esm/index.js 249 B
packages/react-db/dist/esm/useLiveInfiniteQuery.js 1.32 kB
packages/react-db/dist/esm/useLiveQuery.js 1.34 kB
packages/react-db/dist/esm/useLiveQueryEffect.js 355 B
packages/react-db/dist/esm/useLiveSuspenseQuery.js 567 B
packages/react-db/dist/esm/usePacedMutations.js 401 B

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

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Collaborator

@samwillis samwillis left a comment

Choose a reason for hiding this comment

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

Lgtm

@kevin-dp kevin-dp merged commit ca9febb into fix/on-demand-includes Apr 14, 2026
7 checks passed
@kevin-dp kevin-dp deleted the fix/on-demand-includes-pass-where-clauses branch April 14, 2026 09:24
kevin-dp added a commit that referenced this pull request Apr 14, 2026
* Unit tests to check that includes are loaded lazily on-demand

* Lazy load included rows in on-demand mode when index is available

* ci: apply automated fixes

* Fix type issue

* changeset

* fix: pass child where clauses to loadSubset in includes (#1472)

* Unit tests to check that where clauses of included collections are passed

* Unit tests to reproduce the problem with where clauses on included collections not being passed

* Pass child where clauses to loadSubset

* ci: apply automated fixes

* changeset for child where clauses fix

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.

2 participants