design: adopt gluesql-core as the SQL engine, drop bundled SQLite (DD-069, REQ-231)#585
Merged
Merged
Conversation
…te (DD-069, REQ-231) Prototype (proto/gluesql-verify) confirmed the swap is viable: the V-closure JOIN/NOT-IN subquery and UPDATE both work in gluesql's dialect, and `gluesql-core` + memory storage is pure Rust (sqlparser + core only, no `cc`, ~19s) vs the umbrella `gluesql` crate which pulls every storage backend + a C compiler (~55s). rusqlite `bundled` compiles the SQLite C amalgamation per job — the CI weight that made #582 sit ~40 min queued (#567). REQ-231 tracks the migration (engine swap behind the stable sql::query/plan_write API; rusqlite + libsqlite3-sys removed; all read/write/serve tests pass unchanged). Refs: REQ-231, DD-069, REQ-229 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
📐 Rivet artifact delta
Graphgraph LR
DD_069["DD-069"]:::added
REQ_231["REQ-231"]:::added
classDef added fill:#d4edda,stroke:#28a745,color:#155724
classDef removed fill:#f8d7da,stroke:#dc3545,color:#721c24
classDef modified fill:#fff3cd,stroke:#ffc107,color:#856404
classDef overflow fill:#e2e3e5,stroke:#6c757d,color:#495057,stroke-dasharray: 3 3
Added
Posted by |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Records the verified outcome of the SQL-engine research + prototype (you chose "swap, verify-first").
Verdict: GO — migrate to
gluesql-corePrototype (
proto/gluesql-verify, throwaway) confirmed:NOT IN (subquery)andUPDATE artifacts SET … WHERE …both execute in gluesql's dialect (the core risk, retired).gluesql-core. The umbrellagluesqlcrate pulls every storage backend (csv/parquet/sled/redb/mongo/redis/git) and compilescc(~55s).gluesql-core+ memory-storage compiles only sqlparser + core (pure Rust, nocc, ~19s). rusqlitebundledcompiles the SQLite-C amalgamation per job — the CI weight that made feat(sql):rivet sqlwrite slice — UPDATE via validate + safe YAML edit (REQ-230) #582 sit ~40 min queued (CI: self-hosted runner disk exhaustion fails all compile gates; post-job cleanup hook frees nothing #567).Glue::executeis async; bridge into the syncsql::query/plan_writevia a smallblock_on.Store/StoreMuttraits let rivet's store be the DB (DD-068's virtual-tables vision): reads + writes go native, deleting the read-path copy and the write-path staging-diff.What this PR is
Design artifacts only (DD-069 + REQ-231). The migration itself (REQ-231) is the focused follow-up: swap the engine behind the unchanged
sql::query/plan_writeAPI, remove rusqlite + libsqlite3-sys, keep all read/write/serve tests green.🤖 Generated with Claude Code