Skip to content

Spike: Sqlite access, DSL#5580

Draft
StachuDotNet wants to merge 4 commits intodarklang:mainfrom
StachuDotNet:sqlite-spike
Draft

Spike: Sqlite access, DSL#5580
StachuDotNet wants to merge 4 commits intodarklang:mainfrom
StachuDotNet:sqlite-spike

Conversation

@StachuDotNet
Copy link
Member

No description provided.

StachuDotNet and others added 4 commits January 23, 2026 02:10
Implements SQLite database access from Darklang with three core builtins:
- sqliteExecute: Execute SQL statements (CREATE, INSERT, UPDATE, DELETE)
- sqliteQuery: Execute SELECT queries, return List<Dict>
- sqliteQueryOne: Execute SELECT query, return Option<Dict>

All operations:
- Return Result<T, String> for robust error handling
- Auto-manage connections (open, execute, close)
- Support $HOME path expansion for convenience
- Handle type conversion (INTEGER→Int64, REAL→Float, TEXT→String, etc.)

Added Darklang package wrappers (Stdlib.Cli.Sqlite) with helper functions:
- createTable, insert, update, delete for common operations
- Comprehensive inline documentation

Comprehensive test suite (8 tests) covering:
- Basic CRUD operations
- Error cases (invalid SQL, missing files, invalid tables)
- Helper function validation

DSL evaluation: Documented analysis, decided to skip DSL in favor of
raw SQL for simplicity and flexibility.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
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.

1 participant