ksql is a lazy man's wrapper for the SQLite C-language interface.
It is written to make sure sloppy programming won't cause your SQLite database to be inconsistent (transactions and
statements open on exit and certain signals).
Specifically, it exits on any database errors; and upon exit (or signal), cleans up open statements, transactions, and databases.
See ksql(3) and friends for details.
It also has some handy security features: a
split-process model protecting the database
from your application, full RBAC capabilities on the statement level, and immutable stored
statements to prevent the application from crafting its own SQL.
The library runs on
UNIX systems: OpenBSD, Linux, and Mac OS
It is a BSD.lv project.
Fix a memory leak in
the system spins on a failed opening of the database.
Also fix a possible error when closing the database fails, then a
log message follows that might re-invoke the closed database.
The fixes in this release were implemented or suggested by Ingo
schwarze@) in an audit generously funded by CAPEM
Thank you so much!
Back out debugging code accidentally left in release version.
No change to functionality except an error message on
abort instead of
run-time failures in roles or statements.
No functional change to any code or documentation.
Fix installed manpages.
Move the check of stored statements (see
into the child process of split processes.
This ensures that protection occurs outside of the area of influence
of the caller.
Minor bump to account for new functions and features!
Allow stored SQL statements passed to
ksql_alloc(3) and ksql_alloc_child(3).
This is a significant security feature: when passed to ksql_alloc_child(3), it
guarantees that the application process cannot change SQL statements
Add version macros as described in
This allows callers to test for version applicability.
Change in semantics: previously, the ksql_trans_exclopen(3) would open the transaction in
IMMEDIATE mode, which was confusing.
Now, this function will invoke the
A new function,
ksql_trans_singleopen(3), opens in
transaction documentation for details.
The manual has been updated for clearer language.
Also updated oconfigure.
oconfigure for configuration.
No functional change.
Roll back processing of SQLite's error codes in
The returned error codes in SQLite don't refer to the success of the operation itself.
Process return code of
Also make sure that the parent process in the split-process model properly registers its exit hook to clean up
Lastly, have the exported error functions use
err.h instead of printing directly to
While here, add a port for