| tests | ||
| .gitignore | ||
| etaf-sqlite.el | ||
| Makefile | ||
| README.md | ||
| README.zh-CN.md | ||
etaf-sqlite
etaf-sqlite is the concrete SQLite storage package for ETAF. It adapts Emacs' built-in SQLite support to the core etaf-data-source capability contract. The Data Controller remains in etaf; this package owns only schema validation, short-lived connections, pagination queries, and synchronous mutations.
(require 'etaf-sqlite)
(let* ((table (etaf-sqlite-table
'items
(list (etaf-sqlite-column :id "id" :type 'integer :primary t)
(etaf-sqlite-column :name "name" :type 'text))
:id))
(database (etaf-sqlite-database "~/items.sqlite" table))
(source (etaf-sqlite-source database)))
(etaf-sqlite-initialize database)
(etaf-data-controller source :auto-load t))
The source keeps the legacy :mutate callback by default. The additive
commit-certified wrapper is opt-in: use (etaf-sqlite-source database :mutate-v2 t) when a controller needs explicit commit/rollback certainty and
read-only reconciliation.
Other databases, REST services, files, and ORMs should implement the same source capability in their own packages; they do not belong in ETAF core or in a generic etaf-adapters layer.
Run make check EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs from this directory.