This is yet another EmacSQL backend for SQLite, which use official sqlite3
executable to access SQL database.
emacsql-sqlite3 is available on melpa.
For Emacs users, please notice that this package won’t provide any feature for convenience. If you don’t sure you need this, you probably don’t need this.
For package developers, this package can be a replacement of emacsql-sqlite and it doesn’t require user to have a C compiler, but please read following precautions.
- You need to install
sqlite3official CLI tool, 3.8.2 version or above were tested,emacsql-sqlite3may won’t work if you using lower version. sqlite3CLI tool will load~/.sqlitercif presented,emacsql-sqlite3will get undefined behaviour if any error occurred during the load progress. It’s better to keep this file empty.- This package should be compatible with
emacsql-sqlite3for most cases. But foreign key support was disabled by default. To enable this feature, use(emacsql <db> [:pragma (= foreign_keys ON)])
The only entry point to a EmacSQL interface is emacsql-sqlite3, for more
information, please check EmacSQL’s README.
closql is using emacsql-sqlite as backend, you can use following code to force
closql use emacsql-sqlite3.
(with-eval-after-load 'closql
(defclass closql-database (emacsql-sqlite3-connection)
((object-class :allocation :class))))The tests don’t pass under Emacs 25.1 for unknown reason, so we don’t support Emacs 25.1 currently like emacsql-sqlite. But any PR to improve this are welcomed.