emacsql-sqlite3
emacsql-sqlite3 copied to clipboard
Yet another EmacSQL backend for SQLite
Created 2020-01-18 Sat 03:21
#+TITLE: Yet another EmacSQL backend for SQLite #+AUTHOR: Zhu Zihao [[https://melpa.org/#/emacsql-sqlite3][file:https://melpa.org/packages/emacsql-sqlite3-badge.svg]] [[https://travis-ci.org/cireu/emacsql-sqlite3][file:https://travis-ci.org/cireu/emacsql-sqlite3.svg?branch=master]]
- IMPORTANT NOTE
Package developers should not totally rely on this package, emacs-sqlite is highly recommended (maybe you should support this package as an option) since SQLite CLI is not designed for Inter-Process Communication. This package requires a hack to make it work.
For more information, please read the "SQLite Implementation Difficulties" section of the [[https://nullprogram.com/blog/2014/02/06/][article]] written by original developer of emacs-sqlite. It explains the weird behaviour of =sqlite3= CLI and why it sucks.
- Introduction
This is yet another [[https://github.com/skeeto/emacsql][EmacSQL]] backend for SQLite, which use official =sqlite3= executable to access SQL database.
- Installation
=emacsql-sqlite3= is available on melpa.
- Usage
For Emacs users, please notice that this package won't provide any feature for convenience. If you aren't sure you need this, you probably don't need this.
For package developers, this package can be a replacement of [[https://github.com/skeeto/emacsql][emacsql-sqlite]] and it doesn't require user to have a C compiler, but please read following precautions.
-
You need to install =sqlite3= official CLI tool, 3.8.2 version or above were tested, =emacsql-sqlite3= may won't work if you using lower version.
-
This package should be compatible with =emacsql-sqlite3= for most cases. But foreign key support was disabled by default. To enable this feature, use ~(emacsql
[:pragma (= foreign_keys ON)])~
The only entry point to a EmacSQL interface is =emacsql-sqlite3=, for more information, please check [[https://github.com/skeeto/emacsql/blob/master/README.md][EmacSQL's README]].
- Known issue
The tests don't pass under Emacs 25.1 for unknown reason, so we don't support Emacs 25.1 currently like [[https://github.com/skeeto/emacsql][emacsql-sqlite]]. But any PR to improve this are welcomed.