Commit cb6de10
Add Phase 1 SQL support with DataFusion and Substrait
Implements end-to-end SQL query pipeline for simple SELECT queries:
Compile-time: MergedSelectionMap → DataFusion LogicalPlan → Substrait binary
Runtime: Substrait plan → isograph-server execution → Arrow IPC response
New components:
- crates/sql_network_protocol: NetworkProtocol impl; LogicalPlan builder and
Substrait serialization; parses SQL schema into Isograph's type model
- crates/sql_lang_types, crates/sql_schema_parser: SQL-specific language types
and DDL parser
- crates/isograph_server: Axum HTTP server with /query endpoint
- demos/sqlite-demo: end-to-end Vite+React demo using Star Wars planets SQLite
- test-fixtures/databases: SQLite schema and init scripts for Phase 1–3
- E2E Playwright tests for the full pipeline
Type system: widen NetworkResponseObject from branded-key mapped type to plain
string index signature so SQL-generated types (e.g. { id: number, name: string })
satisfy the constraint without @ts-ignore. SQL numeric IDs accepted via
id?: DataId | number. Zero breaking change for existing GraphQL code.
Compiler: add readonly modifiers and field-name quoting to SQL-generated
raw_response_type.ts files.
Build fixes: update swc workspace deps for serde 1.0.220+ compatibility,
fix clippy needless_return, add protoc to CI for substrait code generation,
update pnpm lockfile, fix prettier and oxlint issues.
Co-Authored-By: Claude <noreply@anthropic.com>1 parent c09c9db commit cb6de10
65 files changed
Lines changed: 7894 additions & 1000 deletions
File tree
- .github/workflows
- crates
- artifact_content
- src
- isograph_schema/src
- isograph_server
- src
- sql_lang_types
- src
- sql_network_protocol
- src
- nested_server_schema
- query_generation
- substrait
- tests
- sql_schema_parser
- src
- swc_isograph_plugin/src
- demos/sqlite-demo
- e2e
- src
- components
- __isograph
- planets/HomePage
- docs/plans
- libs/isograph-react/src/core
- test-fixtures/databases
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
240 | 240 | | |
241 | 241 | | |
242 | 242 | | |
| 243 | + | |
| 244 | + | |
243 | 245 | | |
244 | 246 | | |
245 | 247 | | |
| |||
253 | 255 | | |
254 | 256 | | |
255 | 257 | | |
| 258 | + | |
| 259 | + | |
256 | 260 | | |
257 | 261 | | |
258 | 262 | | |
| |||
0 commit comments