aboutsummaryrefslogtreecommitdiff
path: root/NEWS
diff options
context:
space:
mode:
Diffstat (limited to 'NEWS')
-rw-r--r--NEWS171
1 files changed, 167 insertions, 4 deletions
diff --git a/NEWS b/NEWS
index aad8e49..debbb20 100644
--- a/NEWS
+++ b/NEWS
@@ -1,8 +1,171 @@
1GNU dbm NEWS -- history of user-visible changes. 2020-12-23 1GNU dbm NEWS -- history of user-visible changes. 2023-03-03
2Copyright (C) 1990-2023 Free Software Foundation, Inc.
2See the end of file for copying conditions. 3See the end of file for copying conditions.
3 4
4Please send gdbm bug reports to <bug-gdbm@gnu.org>. 5Please send gdbm bug reports to <bug-gdbm@gnu.org>.
5 6
7Version 1.23.90 (git)
8
9* New gdbm_load option: --update
10
11The --update (-U) option instructs gdbm_load to update an existing
12database, whose name is supplied by the second argument.
13
14* Fix semantics of gdbm_load -r
15
16The --replace (-r) is valid only when used together with --update.
17
18* Bugfixes
19
20
21Version 1.23, 2022-02-04
22
23* Bucket cache switched from balanced tree to hash table
24
25Change suggested by Terence Kelly.
26
27* Speed up flushing the changed buckets on disk
28
29* New option codes for gdbm_setopt
30
31** GDBM_GETDBFORMAT
32
33Return the database format.
34
35** GDBM_GETDIRDEPTH
36
37Return the directory depth, i.e. the number of initial (most significant)
38bits in hash value that are interpreted as index to the directory.
39
40** GDBM_GETBUCKETSIZE
41
42Return maximum number of keys per bucket.
43
44** GDBM_GETCACHEAUTO
45
46Return the status of the automatic cache adjustment.
47
48** GDBM_SETCACHEAUTO
49
50Enable or disable automatic cache adjustment.
51
52Version 1.22, 2021-10-19
53
54* Fix file header validation
55
56* Fix key verification in sequential access
57
58* Fix testing with DejaGNU 1.6.3
59
60* Fix stack overflow in print_usage
61
62* Fix a leak of avail entry on pushing a new avail block
63
64The leak would occur if the original avail table had odd number of entries.
65
66* New gdbmtool variables: errorexit, errormask, trace, timing
67
68"Errorexit" and "errormask" control which GDBM errors would cause the
69program termination and emitting a diagnostic message,
70correspondingly. Both variables are comma-delimited lists of error
71codes.
72
73The "trace" variable enables tracing of the gdbmtool commands.
74
75The "timing" variable, when set, instructs gdbmtool to print time
76spent in each command it runs.
77
78* New gdbmtool options: -t (--trace), and -T (--timing)
79
80
81Version 1.21, 2021-09-02
82
83* Crash tolerance
84
85By default it is possible for an abrupt crash (e.g., power failure,
86OS kernel panic, or application process crash) to corrupt the gdbm
87database file. A new Linux-only mechanism enables applications to
88recover the database state corresponding to the most recent
89successful gdbm_sync() call before the crash. See the chapter 17
90"Crash Tolerance" in the GDBM manual.
91
92* New database file format: numsync
93
94The new "numsync" database format is designed to better support
95crash tolerance. To create a database in numsync format, the gdbm_open
96(or gdbm_fd_open) function must be given the GDBM_NEWDB|GDBM_NUMSYNC
97flags. The GDBM_NUMSYNC flag also takes effect when used together
98with GDBM_WRCREAT, provided that the new file is created.
99
100New function gdbm_convert() is provided for converting the databases
101from standard GDBM format to numsync and vice versa.
102
103The gdbmtool tool can also be used for converting databases between
104these two formats.
105
106* Changes in gdbmtool
107
108** Fix string output in non-ASCII encodings
109
110Printable multi-byte sequences are correctly represented on output.
111This also fixes octal representation of unprintable characters.
112
113** The filename variable
114
115This variable supplies the name of database file for use in "open"
116command, if the latter is called without arguments. If "open" is
117called with the file name argument, the "filename" variable is
118initialized to this value.
119
120** The fd variable
121
122If set, its value must be an open file descriptor referring to a
123GDBM database file. The "open" command will use gdbm_fd_open
124function to use this file. Upon closing the database, this
125descriptor will be closed and the variable will be unset.
126
127The file descriptor to use can also be supplied using the
128-d (--db-descriptor) command line option.
129
130** The format variable
131
132Defines the format in which new databases will be created. Allowed
133values are: "standard" (default) and "numsync".
134
135** New commands: upgrade and downgrade
136
137The "upgrade" command converts current database to the numsync
138(extended) format. The "downgrade" command converts current database
139to the standard format.
140
141** New command: snapshot
142
143The "snapshot" command is part of the new crash tolerance support.
144Given the names of two snapshot files, it analyzes them and selects
145the one to be used for database recovery. See the GDBM manual,
146section 17.5 "Manual crash recovery" for a detailed discussion of its
147use.
148
149Version 1.20, 2021-06-17
150
151* New bucket cache
152
153The bucket cache support has been rewritten from scratch. The new
154bucket cache code provides for significant speed up of search
155operations.
156
157* Change mmap prereading strategy
158
159Pre-reading of the memory mapper regions, introduced in version 1.19
160can be advantageous only when doing intensive look-ups on a read-only
161database. It degrades performance otherwise, especially if doing
162multiple inserts. Therefore, this version introduces a new flag
163to gdbm_open: GDBM_PREREAD. When given, it enables pre-reading of
164memory mapped regions.
165
166See https://github.com/Perl/perl5/issues/18884 for details.
167
168
6Version 1.19 - 2020-12-23 169Version 1.19 - 2020-12-23
7 170
8* Pre-read the memory mapped regions on systems that support it. 171* Pre-read the memory mapped regions on systems that support it.
@@ -44,9 +207,9 @@ See https://puszcza.gnu.org.ua/bugs/?401
44 207
45** Fix spurious error from gdbm_dump and gdbm_export 208** Fix spurious error from gdbm_dump and gdbm_export
46 209
47The functions incorrectly reported as error the GDBM_ITEM_NOT_FOUND 210The functions incorrectly treated as error the GDBM_ITEM_NOT_FOUND
48status, which is reported when upon normal termination of iteration 211status, which is reported upon normal termination of iteration
49over the database keys. 212over database keys.
50 213
51** Make sure gdbm_sync always returns a meaningful value 214** Make sure gdbm_sync always returns a meaningful value
52See https://puszcza.gnu.org.ua/bugs/?400 215See https://puszcza.gnu.org.ua/bugs/?400

Return to:

Send suggestions and report system problems to the System administrator.