Automated testing using GitHub actions (regressions, valgrind, etc.). Installing dynamic library alongside static.
Continue refining portability in the build system.
Use pkg-config
internally and also produce a configuration for it.
This simplifies configuration (no need to invoke
configure
with additional arguments) and makes using
the library easier.
This also removes OpenBSD needing -lpthread
for
-lsqlite3
, which ended up being a problem on my
development machine with an old version of the library hanging out
in the default path.
Fix a copypasta
where transactions are always rolled-back
instead of being committed.
Regression tests added for this behaviour.
Ported to FreeBSD. No changes otherwise.
Have the internal logging functions behave the same whether called in the parent or child process. This means that sqlbox_msg_set_dat(3) has its buffer copied in both processes.
Don't emit a warning message when calling sqlbox_free(3) with open databases. Only do this if the child exits without an explicit instruction.
Add a general sinks and sources (starts
) to the hierarchical
role generator.
These are commonly-used idioms.
Also fix where passing zero (implicit addressing) as a statement or database identifier would use the first queue entry, not the last, breaking nested statements that use implicit addressing.
Add compilation instructions for OpenBSD 6.6, which requires
-lpthread
to be used for all applications or they will
silently hang when the database is opened.
Add a set of functions for creating hierarchical roles. This simplifies the creation of complex systems inheriting roles.
Require that all databases are foreign key enabled.
Add conversion routines (e.g., sqlbox_parm_int(3)
)
between results.
These are convenience routines and simply allow easier replacement
of prior ksql deployments
that take advantage of sqlite3's value conversions.
First public release. This already has about 130 regression tests for behaviour and has been heavily orchestrated with valgrind.