Skip to content

Conversation

@KyleAMathews
Copy link
Collaborator

  • Add support for serializing BigInt values to strings
  • Fix error message to handle non-JSON-serializable values (like BigInt) which was causing a secondary "Do not know how to serialize a BigInt" error from JSON.stringify instead of the intended error message
  • Add comprehensive unit tests for pg-serializer with 100% coverage

🎯 Changes

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

- Add support for serializing BigInt values to strings
- Fix error message to handle non-JSON-serializable values (like BigInt)
  which was causing a secondary "Do not know how to serialize a BigInt"
  error from JSON.stringify instead of the intended error message
- Add comprehensive unit tests for pg-serializer with 100% coverage
@changeset-bot
Copy link

changeset-bot bot commented Nov 28, 2025

🦋 Changeset detected

Latest commit: 6900878

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

This PR includes changesets to release 2 packages
Name Type
@tanstack/electric-db-collection Patch
@tanstack/db-collection-e2e 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 28, 2025

More templates

@tanstack/angular-db

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

@tanstack/db

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

@tanstack/db-ivm

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

@tanstack/electric-db-collection

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

@tanstack/offline-transactions

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

@tanstack/powersync-db-collection

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

@tanstack/query-db-collection

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

@tanstack/react-db

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

@tanstack/rxdb-db-collection

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

@tanstack/solid-db

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

@tanstack/svelte-db

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

@tanstack/trailbase-db-collection

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

@tanstack/vue-db

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

commit: 6900878

@github-actions
Copy link
Contributor

github-actions bot commented Nov 28, 2025

Size Change: 0 B

Total Size: 87.1 kB

ℹ️ 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.31 kB
./packages/db/dist/esm/collection/state.js 3.43 kB
./packages/db/dist/esm/collection/subscription.js 2.55 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.75 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/predicate-utils.js 2.91 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 28, 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

@samwillis
Copy link
Collaborator

@KyleAMathews looks good but perhaps we should add an e2e test to validate that this works when using a bigint as a predicate that's pushed to electric. I'm 99% sure this will work.

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

:shipit: LGTM

…down

Add e2e tests to verify BigInt values work correctly when used as
predicates that are pushed to Electric:
- Test eq() with BigInt on BIGINT column
- Test inArray() with BigInt array on BIGINT column

Both tests use values exceeding Number.MAX_SAFE_INTEGER to ensure
the serialization preserves precision.
Move BigInt predicate tests from Electric-specific to the shared test
suite so they run for all collection implementations:

- Add `largeViewCount: bigint` field to Post type
- Generate seed data with BigInt values exceeding MAX_SAFE_INTEGER
- Add eq() and gt() tests for BigInt comparison operators
- Add inArray() test for BigInt array predicates
- Update Electric e2e test setup to include the new BIGINT column

This ensures BigInt serialization is tested across all collection
backends, not just Electric.
…ilter

Add BigInt handling to serializeValue function to prevent
"Do not know how to serialize a BigInt" error when using BigInt
values in predicates with Query collections.
@KyleAMathews
Copy link
Collaborator Author

Ah good call, added an e2e test

@KyleAMathews KyleAMathews merged commit aebd0fa into main Dec 1, 2025
7 checks passed
@KyleAMathews KyleAMathews deleted the claude/fix-db-serialization-01Jn43VmaGXq3fLxsxXWe6Rz branch December 1, 2025 16:14
@github-actions github-actions bot mentioned this pull request Dec 1, 2025
@github-actions
Copy link
Contributor

github-actions bot commented Dec 2, 2025

🎉 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