What's changing: The PowerSync Service adds a new experimental unstable_sqlite_expression_engine compatibility option. When enabled, functions and operators in Sync Streams expressions are evaluated via a scalar SELECT statement on an in-memory SQLite database rather than the current JavaScript engine. The option requires both edition: 3 and fixed_json_extract to be enabled alongside it. It exists to address known discrepancies in the JavaScript engine (e.g. json_each on objects and scalar values, division-by-zero returning NULL, +/- prefixes on numeric text casts, and various NULL handling gaps).
High priority — existing docs are now inaccurate or incomplete
- Compatibility options reference (
https://docs.powersync.com/sync/advanced/compatibility) — the page currently documents three named options (versioned_bucket_ids, fixed_json_extract, custom_postgres_types) in a table with their minimum service versions and edition requirements. Once this PR ships, that table omits unstable_sqlite_expression_engine, leaving the reference incomplete for users consulting it for the full list of available options.
For reviewer consideration — may be worth documenting
The option is explicitly labeled unstable_ in its name because node:sqlite is not yet stable and SQLite's own expression semantics can change between releases. The compatibility page may want to surface that caveat so users understand the maturity boundary before opting in.
Source PR: powersync-ja/powersync-service#654. At the time of filing, the PR is open. Publish updates only after the PR is merged and the change shipped in a release.
Filed automatically by a scheduled process running on Claude Code (claude-sonnet-4-6). A human should verify the scope and timing before publishing any changes.
What's changing: The PowerSync Service adds a new experimental
unstable_sqlite_expression_enginecompatibility option. When enabled, functions and operators in Sync Streams expressions are evaluated via a scalarSELECTstatement on an in-memory SQLite database rather than the current JavaScript engine. The option requires bothedition: 3andfixed_json_extractto be enabled alongside it. It exists to address known discrepancies in the JavaScript engine (e.g.json_eachon objects and scalar values, division-by-zero returningNULL,+/-prefixes on numeric text casts, and various NULL handling gaps).High priority — existing docs are now inaccurate or incomplete
https://docs.powersync.com/sync/advanced/compatibility) — the page currently documents three named options (versioned_bucket_ids,fixed_json_extract,custom_postgres_types) in a table with their minimum service versions and edition requirements. Once this PR ships, that table omitsunstable_sqlite_expression_engine, leaving the reference incomplete for users consulting it for the full list of available options.For reviewer consideration — may be worth documenting
The option is explicitly labeled
unstable_in its name becausenode:sqliteis not yet stable and SQLite's own expression semantics can change between releases. The compatibility page may want to surface that caveat so users understand the maturity boundary before opting in.Source PR: powersync-ja/powersync-service#654. At the time of filing, the PR is open. Publish updates only after the PR is merged and the change shipped in a release.