
Newer versions of SQLite3 have a number of new features that are desirable to users who host other DBs in the same file as the HDB (for example), as well as performance and bug fixes. We should consider switching the SQLite3 backend for HDB to WITHOUT ROWID tables for performance reasons. We should also consider using foreign keys instead of triggers. Making any such changes requires care to permit both, upgrade and downgrade. We might want to use the SQLite3 session extension for a SQLite3- specific, low-level replication (iprop). Given conflict resultion code, or a sufficiently normalized schema, the session extension would make it easy to create a multi-master replication system, not unlike what one would expect of an LDAP setup, though with none of the atomicity that LDAP is supposed to provide (specifically, O_EXCL semantics for creates and predicates for updates) unless we were to add a locking protocol. Note that as of 3.14, the session extension is mutually exclusive of WITHOUT ROWID tables.
This directory contains a copy of the SQLite3 amalgamation. In order to help update this copy to newer versions of SQLite3, please make NO changes to it that are not absolutely necessary: - add no features that can't be added as loadable extensions or avoided altogether - fix no bugs that can't be worked around - define macros via the Makefile as much as possible (-D...) rather than via changes to the source - fix absolutely no whitespace, formatting, or spelling errors - fix no compiler warnings (the upstream community mostly doesn't care to fix them) unless you're absolutely convinced that the warning(s) represent a serious bug(s) that is relevant to Heimdal If you must make changes to this copy, DO: - have a commit just for those changes and no other changes outside this part of the tree - provide enough information in the commit message that someone else (or even yourself) can figure out whether and how to re-apply your change years later when updating to a newer version of SQLite3