aboutsummaryrefslogtreecommitdiff
path: root/doc
AgeCommit message (Collapse)AuthorFiles
2023-01-22Update copyright yearsSergey Poznyakoff7
2022-07-02Improve handling of -u in gdbm_loadSergey Poznyakoff1
* tools/gdbm_load.c (main): Imply the owner login group if owner name is followed by a :, and the current login group otherwise. * doc/gdbm.texi: Document changes.
2022-07-01Fix semantics of gdbm_load -rSergey Poznyakoff1
Fixes https://puszcza.gnu.org.ua/bugs/index.php?573 * tools/gdbm_load.c: New option: --update (-U) The --replace (-r) option is valid only if used together with --update. * NEWS: Document changes. * doc/gdbm.texi: Document changes.
2022-06-18Sync list of GDBM errors that need syserrThien-Thi Nguyen1
* doc/gdbm.texi (Errors): Update @itemize list.
2022-01-02Update copyright yearsSergey Poznyakoff7
2021-11-18Fix typosSergey Poznyakoff1
2021-11-14Switch to hash table cache implementationSergey Poznyakoff1
* src/cachetree.c: Remove. * src/Makefile.am: Remove cachetree.c * doc/gdbm.texi: Document the changes. * src/bucket.c (cache_tab_lookup_slot) (cache_tab_resize): New function. (cache_elem_new): Initialize ca_coll. (cache_elem_free, cache_lookup) (_gdbm_cache_init,_gdbm_cache_free): Rewrite with hash-based cache lookup. (_gdbm_fetch_data): Remove unused function. * src/gdbm.h.in (GDBM_GETDBFORMAT, GDBM_GETDIRDEPTH) (GDBM_GETBUCKETSIZE, GDBM_GETCACHEAUTO, GDBM_SETCACHEAUTO): New option codes. * src/gdbmdefs.h (cache_node): Remove. (cache_elem): Remove ca_node. Add ca_coll (collision resolution pointer). (gdbm_file_info): New members: cache_auto, cache_bits, cache. * src/gdbmopen.c (gdbm_fd_open): Change cache initialization. * src/gdbmsetopt.c (GDBM_GETDBFORMAT,GDBM_GETDIRDEPTH) (GDBM_GETBUCKETSIZE,GDBM_GETCACHEAUTO) (GDBM_SETCACHEAUTO): Implement new options. (setopt_gdbm_getflags): Reflect the state of GDBM_CLOEXEC and GDBM_NUMSYNC. * src/proto.h (_gdbm_fetch_data,_gdbm_cache_tree_alloc) (_gdbm_cache_tree_destroy,_gdbm_cache_tree_delete) (_gdbm_cache_tree_lookup): Remove protos. * src/recover.c (_gdbm_finish_transfer): Restore original cache settings. * tests/Makefile.am: Add new test. * tests/testsuite.at: Likewise. * tests/gtcacheopt.c: New file. * tests/setopt02.at: New test case.
2021-10-19Version 1.22v1.22Sergey Poznyakoff1
2021-10-18gdbm_recover does not disable crash toleranceSergey Poznyakoff1
* src/recover.c (_gdbm_finish_transfer): Remove call to _gdbmsync_done. * doc/gdbm.texi: Reflect the changes.
2021-10-18Revise the GDBM ManualSergey Poznyakoff2
2021-10-17Update the docsSergey Poznyakoff2
* Makefile.am: Use plain git log to format the ChangeLog. * git2chg.awk: Remove. * NOTE-WARNING: Update. * README: Likewise. * README-alpha: Likewise. * README-hacking: Likewise. * doc/gdbm.3: Likewise. * doc/gdbm.texi
2021-10-11Improve documentationSergey Poznyakoff1
2021-09-03gdbmtool: new command "perror"; new options -t, -T; improve timing outputSergey Poznyakoff1
* doc/gdbm.texi: Document the perror command. * src/gdbmshell.c: New command: perror. (run_command): In timing mode, print also user and system CPU times. Print traces on stderr. * src/gdbmtool.c: New options: -t (--trace) and -T (--timing).
2021-09-02Version 1.21 releasedv1.21Sergey Poznyakoff1
2021-08-12Update docsSergey Poznyakoff1
* NEWS: Document changes. * doc/gdbm.texi: Document new variables.
2021-08-12Fix NULL dereference in gdbmshell. Undefine "fd" upon closing the database.Sergey Poznyakoff1
2021-08-10Update gdbm.texiSergey Poznyakoff1
2021-08-09Update docs. Rename some error codes.Sergey Poznyakoff1
* doc/gdbm.texi: Update. * src/gdbm.h.in (GDBM_ILLEGAL_DATA): Rename to GDBM_MALFORMED_DATA. (GDBM_OPT_ILLEGAL): Rename to GDBM_OPT_BADVAL. All uses changed. Old constants retained for backward compatibility.
2021-08-08Document new gdbmtool optionsSergey Poznyakoff1
2021-08-04Fix the docsSergey Poznyakoff1
2021-08-03gdbmtool: control the format in which new databases are createdSergey Poznyakoff1
* src/gdbmload.c (_gdbm_str2fmt): New function. * src/proto.h (_gdbm_str2fmt): New proto. * src/gdbmtool.c (open_format): New global variable. (opendb): Add open_format to gdbm_open flags * src/gdbmtool.h (open_format): New extern. * src/var.c: Handle the "format" variable. * doc/gdbm.texi: Document the changes.
2021-08-03Fix typosSergey Poznyakoff1
2021-08-02Various fixesSergey Poznyakoff1
* doc/gdbm.texi: Document manual crash recovery procedure. Document the gdbmtool "shell" command. Fix chapter headings (remove final point). Replace headings with sections. * src/gdbmopen.c (gdbm_header_avail): Remove const qualifier from 1st argument * src/proto.h (gdbm_file_sync): New proto. * src/gdbmsync.c (gdbm_file_sync): Moved from proto.h. (gdbm_sync): Call _gdbm_end_update to be sure all changes are written to disk. * src/gdbmtool.c: Implement the shell command. (command_lookup): Fix name prefix comparison. * src/gram.y: New token T_SHELL. * src/lex.l: Sub-lexers for shell arguments.
2021-08-01New gdbmtool command: snapshotSergey Poznyakoff2
* src/gdbmtool.c: New command: "snapshot" * doc/gdbm.texi: Document the snapshot command (gdbmtool). * doc/gdbmtool.1: Likewise. * src/gdbmsync.c: Fix a comment.
2021-07-31Changes in the docs. Minor improvements in gdbm_latest_snapshot.Sergey Poznyakoff3
* doc/Makefile.am: Export htmlxref.cnf * doc/htmlxref.cnf: New file. * doc/gdbm.texi: Improve crash-tolerance descriptions. * src/gdbmsync.c (stat_snapshot): Set errno = EACCES if access bits of the snapshot stat are wrong. (gdbm_latest_snapshot): Don't touch ret if returning GDBM_SNAPSHOT_SUSPICIOUS.
2021-07-31Update the documentationSergey Poznyakoff3
2021-07-17Bugfixes in crash tolerance code.gray@gnu.org1
* doc/gdbm.texi: Document GDBM_SNAPSHOT_BAD * src/gdbm.h.in (GDBM_SNAPSHOT_BAD): New constant. * src/gdbmsync.c (fsync_to_root): Rewrite. Use pointer to traverse the pathname in the reverse direction. Fsync the root directory as well. (gdbm_failure_atomic): Create both snapshots in user write-only mode. (stat_snapshot): Fail if the file is neither readable nor writable. (gdbm_latest_snapshot): Fail if neither file is readable. Fix selection of the snapshot by mtime: prefer the latest one. [!GDBM_FAILURE_ATOMIC]: Provide the placeholder for gdbm_latest_snapshot.
2021-07-17Document new error codesSergey Poznyakoff1
2021-07-17Document crash tolerance APISergey Poznyakoff1
2021-07-17Crash-tolerance based on the patch from Terence Kellygray@gnu.org1
2021-06-14Enable pre-reading the memory mapped regions on request.Sergey Poznyakoff1
The commit 4fb2326a4a introduced pre-reading of memory mapped regions. While speeding up searches, it has a negative impact on write operatons, since every remapping effectively re-reads the entire database. See https://github.com/Perl/perl5/issues/18884 for details. * NEWS: Document changes. * doc/gdbm.texi: Document the GDBM_PREREAD flag. * src/gdbm.h.in (GDBM_PREREAD): New flag. * src/gdbmdefs.h (gdbm_file_info): New member: mmap_preread. * src/gdbmopen.c (gdbm_fd_open): Set mmap_preread if requested. * src/gdbmsetopt.c (setopt_gdbm_getflags): Report GDBM_PREREAD flag, if dbf->mmap_preread is set. * src/mmap.c (_gdbm_internal_remap): Use pre-fault reading only if dbf->mmap_preread is set.
2021-03-21Enable automatic cache size by default.newcacheSergey Poznyakoff2
This provides for the optimal performance. Additional GDBM_XVERIFY flag can be used when opening the database to request extended database verification (entire avail stack will be checked). * src/bucket.c (cache_lookup): Handle cache_size == GDBM_CACHE_AUTO. (_gdbm_cache_init): Likewise. * src/gdbm.h.in (GDBM_XVERIFY): New flag to gdbm_open. (GDBM_CACHE_AUTO): New constant. Define error constants within enum. Fix definition of GDBM_BAD_HASH_ENTRY. * src/gdbmclose.c: Fix misleading comment. * src/gdbmconst.h: Define DEFAULT_CACHESIZE to be GDBM_CACHE_AUTO. * src/gdbmopen.c (gdbm_fd_open): Call gdbm_avail_verify if the GDBM_XVERIFY flag is set. * doc/gdbm.texi: Update. * doc/gdbm.3: Update.
2021-01-02Update copyright yearsSergey Poznyakoff8
2020-12-24Merge branch 'master' into newcacheSergey Poznyakoff9
2020-12-23Update the docsSergey Poznyakoff9
* doc/Makefile.am: Use gendocs.pl to generate web version of the manual. * doc/gdbm.texi: Update. * doc/gendocs.pl: New file. * doc/otherdoc.texi.in: New file. * doc/.gitignore: Ignore otherdoc.texi. * doc/webdoc.init: New file. * doc/gendocs.sh: Remove. * doc/gendocs_template: Remove. * doc/html.init: Remove.
2020-12-23Update copyright yearsSergey Poznyakoff8
2020-10-09Implement tagged structure initializers.Sergey Poznyakoff1
* NEWS: Document changes. * doc/gdbm.texi: Document changes. * src/datconv.c (datum_scan_tag): Implement tagged structure initialization. * src/gdbmtool.c (kvlist_free): Made extern. (kvlist_find): New function. * src/gdbmtool.h (kvlist_find, kvlist_free) (dsegm_list_find): New protos. (dsegm_free_list): Rename to dsegm_list_free. All uses changed. * src/gram.y: Forbid duplicate tags in kvlist.
2020-10-08Bugfixes.Sergey Poznyakoff1
* doc/gdbm.texi: Fix the description of a sample content structure. * src/datconv.c (datum_scan_notag): Proceed to the next kvpair only for segments of the FDEF_FLD type.
2020-03-15Implement the gdbm_bucket_count function.Sergey Poznyakoff1
* src/gdbmcount.c (gdbm_bucket_count): New function. * src/gdbm.h.in (gdbm_bucket_count): New proto. * doc/gdbm.texi: Document gdbm_bucket_count. * src/gdbmtool.c (bucket_count): Reimplement via gdbm_bucket_count.
2020-01-27Update copyright yearsSergey Poznyakoff8
2019-04-08Update copyright yearsSergey Poznyakoff8
2018-11-27Fix typo in the manpage.Sergey Poznyakoff1
2018-07-01Change return value of gdbm_close and gdbm_syncSergey Poznyakoff2
* src/gdbm.h.in (gdbm_close, gdbm_sync): Return int (GDBM_FILE_CLOSE_ERROR, GDBM_FILE_SYNC_ERROR): New error codes. * src/gdbmclose.c (gdbm_close): Return 0 on success, -1 on failure. Set gdbm_errno and errno. * src/gdbmsync.c (gdbm_sync): Likewise. * src/gdbmerrno.c: Handle new error codes. * src/mmap.c (_gdbm_mapped_sync): Set gdbm_errno. * src/proto.h (gdbm_file_sync): Set gdbm_errno. * doc/gdbm.3: Document changes. * doc/gdbm.texi: Document changes. * NEWS: Document changes. * configure.ac: Set patchlevel. * tests/Makefile.am: Add new test. * tests/testsuite.at: Add new test. * tests/closerr.at: New test case. * tests/closerr.c: New test program. * tests/gtdel.c: Check gdbm_close return. * tests/gtdump.c: Likewise. * tests/gtfetch.c: Likewise. * tests/gtload.c: Likewise. * tests/gtopt.c: Likewise. * tests/gtrecover.c: Likewise.
2018-06-27Version 1.16v1.16Sergey Poznyakoff1
2018-06-27Fix typoSergey Poznyakoff1
2018-06-27New gdbmtool variables: coalesce and centfreeSergey Poznyakoff1
The two boolean variables control the use of free block coalescing and central free block modes in newly opened databases.
2018-05-24Various fixesSergey Poznyakoff1
* src/input-std.c: Bugfix * doc/gdbm.texi: Document changes. * README: Update. * configure.ac: New option --enable-gdbmtool-debug. * src/Makefile.am: Conditionally augment AM_YFLAGS and AM_LFLAGS with options that enable debugging. * src/gdbmtool.c: Conditionally enable --lex-trace and --gram-trace options. * src/gram.y: Likewise. * src/lex.l: Likewise. * tests/Makefile.am: Remove architecure-dependent tests. * tests/testsuite.at: Likewise.
2018-05-23gdbmtool: accept commands from command line as well as from fileSergey Poznyakoff1
Commands can be supplied to gdbmtool in three ways: 1. From a file, using the --file (-f) option: gdbmtool -f comfile 2. From the command line, if first argument is the database name: gdbmtool test.db count \; fetch mykey \; avail Note the use of semicolon to delimit commands. 3. From the interactive shell, if neither of the above is used. * src/Makefile.am: Add new sources. * src/gdbmtool.c: Use new stream functions for input. * src/gdbmtool.h (setsource): Remove proto. (instream_t): New data type. (instream_name, instream_read) (instream_close, instream_interactive) (instream_eq): New functions. (instream_stdin_create) (instream_argv_create) (instream_file_create) (interactive, input_context_push): New protos. * src/gram.y: Accept ; in place of newline. * src/input-argv.c: New file. * src/input-file.c: New file. * src/input-rl.c: Rewrite to provide instream_t API. * src/input-std.c: Likewise. * src/lex.l: Rewrite. * tests/.gitignore: Update. * tests/Makefile.am: Add new tests. Incorporate DejaGNU tests. * tests/config/default.exp: New file. * tests/gdbmtool/base.exp: New file. * tests/gdbmtool00.at: New file. * tests/gdbmtool01.at: New file. * tests/gdbmtool02.at: New file. * tests/testsuite.at: Include new tests.
2018-05-19Remove gdbm-1.8.3 compatibility layerSergey Poznyakoff1
* configure.ac: Remove gdbm-1.8.3 compatibility layer. Version 1.14.90 * Makefile.am (ACLOCAL_AMFLAGS): Remove deprecated variable. (MAYBE_EXPORT): Remove variable and conditional. * NEWS: Update. * NOTE-WARNING: Update. * README: Update. * doc/gdbm.texi: Update. * export/.gitignore: Remove. * export/Makefile.am: Remove. * export/export.c: Remove.
2018-01-01Happy GNU YearSergey Poznyakoff8

Return to:

Send suggestions and report system problems to the System administrator.