Skip to content

Conversation

kevin-dp
Copy link
Contributor

@kevin-dp kevin-dp commented Oct 1, 2025

stacked on #669


This PR is a follow up on #617 and modifies the Electric collection to handle predicates that are being pushed down to the Electric collection.

@changeset-bot
Copy link

changeset-bot bot commented Oct 1, 2025

🦋 Changeset detected

Latest commit: f7211d9

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

This PR includes changesets to release 12 packages
Name Type
@tanstack/db Patch
@tanstack/electric-db-collection Patch
@tanstack/angular-db 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-react-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

@kevin-dp kevin-dp force-pushed the kevin/pred-pushdown-to-sync-db branch from aa2e623 to 2ae236f Compare October 6, 2025 12:17
@kevin-dp kevin-dp force-pushed the kevin/pred-pushdown-to-sync-electric-coll branch from d66c54e to 71cef08 Compare October 6, 2025 13:57
@pkg-pr-new
Copy link

pkg-pr-new bot commented Oct 6, 2025

More templates

@tanstack/angular-db

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

@tanstack/db

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

@tanstack/db-ivm

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

@tanstack/electric-db-collection

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

@tanstack/query-db-collection

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

@tanstack/react-db

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

@tanstack/rxdb-db-collection

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

@tanstack/solid-db

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

@tanstack/svelte-db

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

@tanstack/trailbase-db-collection

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

@tanstack/vue-db

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

commit: f7211d9

@github-actions
Copy link
Contributor

github-actions bot commented Oct 6, 2025

Size Change: +5.36 kB (+6.41%) 🔍

Total Size: 89 kB

Filename Size Change
./packages/db/dist/esm/index.js 1.76 kB +113 B (+6.86%) 🔍
./packages/db/dist/esm/query/predicate-utils.js 4.16 kB +4.16 kB (new file) 🆕
./packages/db/dist/esm/query/subset-dedupe.js 1.09 kB +1.09 kB (new file) 🆕
ℹ️ View Unchanged
Filename Size
./packages/db/dist/esm/collection/change-events.js 963 B
./packages/db/dist/esm/collection/changes.js 1.01 kB
./packages/db/dist/esm/collection/events.js 413 B
./packages/db/dist/esm/collection/index.js 3.23 kB
./packages/db/dist/esm/collection/indexes.js 1.16 kB
./packages/db/dist/esm/collection/lifecycle.js 1.8 kB
./packages/db/dist/esm/collection/mutations.js 2.52 kB
./packages/db/dist/esm/collection/state.js 3.79 kB
./packages/db/dist/esm/collection/subscription.js 2.2 kB
./packages/db/dist/esm/collection/sync.js 2.2 kB
./packages/db/dist/esm/deferred.js 230 B
./packages/db/dist/esm/errors.js 3.57 kB
./packages/db/dist/esm/event-emitter.js 798 B
./packages/db/dist/esm/indexes/auto-index.js 794 B
./packages/db/dist/esm/indexes/base-index.js 835 B
./packages/db/dist/esm/indexes/btree-index.js 2 kB
./packages/db/dist/esm/indexes/lazy-index.js 1.21 kB
./packages/db/dist/esm/indexes/reverse-index.js 577 B
./packages/db/dist/esm/local-only.js 967 B
./packages/db/dist/esm/local-storage.js 2.33 kB
./packages/db/dist/esm/optimistic-action.js 294 B
./packages/db/dist/esm/proxy.js 3.86 kB
./packages/db/dist/esm/query/builder/functions.js 615 B
./packages/db/dist/esm/query/builder/index.js 4.04 kB
./packages/db/dist/esm/query/builder/ref-proxy.js 938 B
./packages/db/dist/esm/query/compiler/evaluators.js 1.55 kB
./packages/db/dist/esm/query/compiler/expressions.js 760 B
./packages/db/dist/esm/query/compiler/group-by.js 2.04 kB
./packages/db/dist/esm/query/compiler/index.js 2.21 kB
./packages/db/dist/esm/query/compiler/joins.js 2.65 kB
./packages/db/dist/esm/query/compiler/order-by.js 1.43 kB
./packages/db/dist/esm/query/compiler/select.js 1.28 kB
./packages/db/dist/esm/query/ir.js 785 B
./packages/db/dist/esm/query/live-query-collection.js 404 B
./packages/db/dist/esm/query/live/collection-config-builder.js 5.49 kB
./packages/db/dist/esm/query/live/collection-registry.js 233 B
./packages/db/dist/esm/query/live/collection-subscriber.js 2.11 kB
./packages/db/dist/esm/query/optimizer.js 3.26 kB
./packages/db/dist/esm/scheduler.js 1.29 kB
./packages/db/dist/esm/SortedMap.js 1.24 kB
./packages/db/dist/esm/transactions.js 3.05 kB
./packages/db/dist/esm/utils.js 1.01 kB
./packages/db/dist/esm/utils/browser-polyfills.js 365 B
./packages/db/dist/esm/utils/btree.js 6.01 kB
./packages/db/dist/esm/utils/comparison.js 754 B
./packages/db/dist/esm/utils/index-optimization.js 1.73 kB

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

@github-actions
Copy link
Contributor

github-actions bot commented Oct 6, 2025

Size Change: 0 B

Total Size: 2.36 kB

ℹ️ View Unchanged
Filename Size
./packages/react-db/dist/esm/index.js 168 B
./packages/react-db/dist/esm/useLiveInfiniteQuery.js 885 B
./packages/react-db/dist/esm/useLiveQuery.js 1.31 kB

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

@kevin-dp kevin-dp requested a review from samwillis October 6, 2025 14:59
@kevin-dp kevin-dp force-pushed the kevin/pred-pushdown-to-sync-db branch from 91ea051 to 3493f6d Compare October 7, 2025 09:33
Base automatically changed from kevin/pred-pushdown-to-sync-db to main October 7, 2025 10:17
@kevin-dp kevin-dp force-pushed the kevin/pred-pushdown-to-sync-electric-coll branch from 49f1f59 to dd337d8 Compare October 7, 2025 10:20
clause: IR.OrderByClause,
params: Array<unknown>
): string {
// TODO: what to do with stringSort and locale?
Copy link
Collaborator

Choose a reason for hiding this comment

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

This raises the question on if we have the wrong default in DB, should we default to lexical sort?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Even if we default to lexical sort, what do we do if the user explicitly chooses a locale compare? Translating that into SQL is non-trivial.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Options:

  1. not push down orderBy when it's using not postgres compatible ordering
  2. try and convert to something postgres compatible where possible
  3. throw and error or warning that its using the wrong ordering

or some combination of above

@samwillis samwillis force-pushed the kevin/pred-pushdown-to-sync-electric-coll branch from e8e12e7 to c568caf Compare October 14, 2025 10:16
@samwillis samwillis changed the base branch from main to samwillis/load-more-tracking October 14, 2025 10:16
@samwillis samwillis force-pushed the kevin/pred-pushdown-to-sync-electric-coll branch 2 times, most recently from bc6190d to 8eab056 Compare October 15, 2025 12:31
Base automatically changed from samwillis/load-more-tracking to main October 15, 2025 17:49
Co-authored-by: Kevin De Porre <[email protected]>
Co-authored-by: Sam Willis <[email protected]>
@samwillis samwillis force-pushed the kevin/pred-pushdown-to-sync-electric-coll branch 2 times, most recently from d8ce062 to baa4fa2 Compare October 15, 2025 19:03
@samwillis samwillis force-pushed the kevin/pred-pushdown-to-sync-electric-coll branch from baa4fa2 to f7211d9 Compare October 15, 2025 19:11
@samwillis samwillis changed the base branch from main to samwillis/predicate-utils October 15, 2025 19:13
@kevin-dp kevin-dp force-pushed the samwillis/predicate-utils branch 2 times, most recently from a732165 to 6ee696c Compare October 22, 2025 09:18
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