newsGNU dbm - News: Version 1.15

 
 
Latest News
Version 1.23 posted by gray, Fri 04 Feb 2022 02:18:28 PM UTC
Version 1.22 posted by gray, Tue 19 Oct 2021 05:49:09 AM UTC
Version 1.21 posted by gray, Thu 02 Sep 2021 02:28:17 PM UTC
Version 1.20 posted by gray, Thu 17 Jun 2021 11:07:51 AM UTC
Version 1.19 posted by gray, Wed 23 Dec 2020 12:59:32 PM UTC

Version 1.15

Item posted by Sergey Poznyakoff <gray> on Sat 16 Jun 2018 04:52:39 PM UTC.

GDBM version 1.15 is available for download. Important changes in this release:

Extensive database consistency checking


GDBM tries to detect inconsistencies in input database files as early as possible. When an inconcistency is detected, a helpful diagnostics is returned and the database is marked as needing recovery. From this moment on, any GDBM function trying to access the database will immediately return error code (instead of eventually segfaulting as previous versions did). In order to reconstruct the database and return it to healthy state, the gdbm_recover function should be used.

Commands can be given to gdbmtool in the command line


The syntax is:


  gdbmtool DBNAME COMMAND [ARGS...]


Multiple commands are separated by semicolon (take care to escape it), e.g.:


  gdbmtool t.db count\; avail


Fixed data conversion bugs in storing structured keys or content


== New member in the gdbm_recovery structure: duplicate_keys.==

Upon return from gdbm_recover, this member holds the number of keys that has not been recovered, because the same key had already been stored in the database. The actual number of stored keys is thus:


recovered_keys - duplicate_keys


New error codes


The following new error codes are introduced:

  • GDBM_BAD_BUCKET (Malformed bucket header)
  • GDBM_BAD_HEADER (Malformed database file header)
  • GDBM_BAD_AVAIL (Malformed avail_block)
  • GDBM_BAD_HASH_TABLE (Malformed hash table)
  • GDBM_BAD_DIR_ENTRY (Invalid directory entry)


Removed gdbm-1.8.3 compatibility layer


 

Back to the top

Powered by Savane 3.13-f8d8.
Corresponding source code