[Rpm-maint] [rpm-software-management/rpm] Add an sqlite based rpmdb backend (experimental) (#899)
Panu Matilainen
notifications at github.com
Wed Oct 16 07:07:26 UTC 2019
All normal functionality is expected to work. Automatic generation
of missing index tables is missing, but that's not relevant at this time.
Going forward, we'll also want some sort of compatibility tracking
for the sql schema.
The database scheme basically just mirrors what BDB does, using strings
for strings and blobs for everything else due to the way integers are
handled in the sqlite C API, for now at least.
Performance is similar or better with BDB in the current unsafe CDB
model, but sqlite uses proper database transactions so this is expected
to be an order of magnitude more robust.
Many things are stupid and/or kind of backwards here due to the internal
API, which I've avoided changing in order to keep it backportable for the
time being. https://github.com/rpm-software-management/rpm/pull/836 is
needed but otherwise this should drop quite trivially into 4.14.x too.
However as we're planning for a longer term future here, it would be dumb
to limit ourselves by what's possible with an internal BDB-oriented API,
so I've fairly major changes planned in that direction.
Note that this changes the default backend for the sake of testing
it in the CI, that will need to be removed before merging, the time to
talk about default changes is (much) later.
You can view, comment on, or merge this pull request online at:
https://github.com/rpm-software-management/rpm/pull/899
-- Commit Summary --
* Add an sqlite based rpmdb backend (experimental)
-- File Changes --
M configure.ac (23)
M lib/Makefile.am (6)
M lib/backend/dbi.c (14)
M lib/backend/dbi.h (5)
A lib/backend/sqlite.c (605)
M macros.in (5)
-- Patch Links --
https://github.com/rpm-software-management/rpm/pull/899.patch
https://github.com/rpm-software-management/rpm/pull/899.diff
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/899
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rpm.org/pipermail/rpm-maint/attachments/20191016/01ef9e23/attachment.html>
More information about the Rpm-maint
mailing list