You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
chore(deps): Upgrade NitroSQLite from 9.8.3 to 10.2.0 #102424
Prepared statements.db.prepare(query) prepares SQL once and runs it many times with new parameters. #294
Independent DB connections.open({ name, connection: 'independent' }) opens a separate native connection with its own queue, so a reader can run while a writer holds a transaction. #364
Performance improvements.
Async queries, batches, and file imports enter a per-connection native queue without waiting for the previous result to return through JavaScript. #369
Grouped batch parameters reuse a prepared statement, and query results skip an extra native row copy. #387
Each connection caches its 32 most recently used statements, async work runs on a dedicated worker thread per connection, and Android writes use fdatasync() and batch atomic writes where supported. #440
Node.js mock.react-native-nitro-sqlite/mock runs against better-sqlite3 for tests that need a real SQLite engine. #395
changed the title [-]chore(deps): Upgrade NitroSQLite from 9.8.2 to 10.0.0[/-][+]chore(deps): Upgrade NitroSQLite from 9.8.3 to 10.2.0[/+]on Oct 12, 2026
I updated the issue to target NitroSQLite v10.2.0.
Title: The title now reads "Upgrade NitroSQLite from 9.8.3 to 10.2.0". App main already uses 9.8.3, so the starting version changed too.
Why update: I added the 10.1 and 10.2 performance work and the Node.js mock.
Scope: I linked the Onyx PR and the new Mobile-Expensify lockfile PR, Mobile-Expensify#14179.
Upgrade notes: I added the two 10.2 breaking changes. A SQL string with more than one statement now throws. Query results are now plain objects, not Nitro HybridObjects.
@NicolasBonet all issues are addressed and benchmarks were positive! We have to wait for prior Onyx bump PRs #102135 & #103208 to be merged, after that i'm going to resolve conflicts, do a last check and then we're good to go!
Activity
chrispader commentedon Oct 12, 2026
@MelvinBot could you assign an Expensify engineer and C+ on this issue and the related PRs?
chrispader commentedon Oct 12, 2026
@MelvinBot also update the issue to
v10.2.0MelvinBot commentedon Oct 12, 2026
I picked the engineer and C+ who handled the 9.8.x update. NicolasBonet was the engineer on chore(deps): Update NitroSQLite from 9.6.0 to 9.8.0, and ikevin127 reviewed its PR as C+.
react-native-onyx, so you need to request their reviews yourself.view run
[-]chore(deps): Upgrade NitroSQLite from 9.8.2 to 10.0.0[/-][+]chore(deps): Upgrade NitroSQLite from 9.8.3 to 10.2.0[/+]MelvinBot commentedon Oct 12, 2026
I updated the issue to target NitroSQLite
v10.2.0.mainalready uses9.8.3, so the starting version changed too.HybridObjects.view run
NicolasBonet commentedon Oct 19, 2026
@chrispader could you please let me know how much is pending to complete this?
chrispader commentedon Oct 19, 2026
I have still to address the latest review comments by @ikevin127 and @fabioh8010 and finalize my benchmark results for this Onyx change in Expensify/react-native-onyx#851 (review)
After the Onyx PR is merged, i'll ping you on the E/App PR 🙌🏼
NicolasBonet commentedon Oct 26, 2026
@chrispader same question for this week 😅
chrispader commentedon Oct 26, 2026
@NicolasBonet all issues are addressed and benchmarks were positive! We have to wait for prior Onyx bump PRs #102135 & #103208 to be merged, after that i'm going to resolve conflicts, do a last check and then we're good to go!
NicolasBonet commentedon Oct 26, 2026
Thank you @chrispader 🙏