Skip to content

SQLite ​

FieldValue
Nameanything
Database filethe path to a .sqlite / .db file, or :memory:
Environmentdev, usually
Read-onlytick it to open a file you only want to look at

There is no host, port or password: SQLite is a file, and the connection form shows the fields that exist rather than greying out the ones that do not.

:memory: gives a scratch database that is never written to disk — useful for trying something out, and gone when you disconnect.

The engine is node-sqlite3-wasm, compiled to WebAssembly and shipped inside the VSIX. Nothing to install, and one build works on every platform.

What is different ​

SQLite exists in Pitta partly to prove that capability flags work: the UI hides what this engine cannot do instead of offering a control that fails.

Schemasnone — the tree goes straight from the connection to tables
Multiple databasesone file per connection
Server-side cursorsnone; results are read in full within the memory guard
Query cancellationnone — the command is hidden rather than offered and useless
EXPLAIN plan viewnot offered
Transactional DDLyes
Schema diff and migrationnot offered
LISTEN / pub-subnone
SSH tunnelnot applicable

If any of those appear enabled and then fail, that is a capability-gating bug and worth reporting.

Row identity ​

SQLite tables have rowid unless declared WITHOUT ROWID, so a table with no primary key is still editable through the row-id fallback — Pitta says when it is using it. A WITHOUT ROWID table with no primary key cannot be edited, and the grid says so rather than failing on apply.

Types ​

SQLite has storage classes rather than declared types, and a column will hold whatever you put in it. Pitta reads the declared type for the affinity and the editor, and shows the value's actual storage class. A DECIMAL column declared in a SQLite schema is stored as text or as a float depending on what was inserted; Pitta shows what is really there rather than what the declaration implies.

Reading a file over Remote-SSH ​

The path is resolved on the machine VS Code's workspace is on. A file on your laptop is not reachable from a Remote-SSH window; copy it across, or open a local window for that connection. See Remote development.

Locking ​

SQLite takes a write lock on the file. Another process holding one — an application, another editor — will make writes fail with SQLITE_BUSY. That is the file's own concurrency model rather than something Pitta can queue around.

MIT licensed. No paid tier, no feature held back.