path: root/NEWS
AgeCommit message (Collapse)AuthorFiles
2022-01-02Update copyright yearsSergey Poznyakoff1
2021-11-14Version 1.22.90Sergey Poznyakoff1
2021-10-19Include timestamp in the NEWS entrySergey Poznyakoff1
2021-10-19Version 1.22v1.22Sergey Poznyakoff1
2021-10-11Improve documentationSergey Poznyakoff1
2021-09-03Add gdbmshell.c to POTFILES.inSergey Poznyakoff1
2021-09-02Version 1.21 releasedv1.21Sergey Poznyakoff1
2021-08-27Version 1.21Sergey Poznyakoff1
2021-08-12Update docsSergey Poznyakoff1
* NEWS: Document changes. * doc/gdbm.texi: Document new variables.
2021-08-09Version 1.20.91. Minor changes in translatable strings.Sergey Poznyakoff1
2021-08-04Fix the docsSergey Poznyakoff1
2021-07-17Document crash tolerance APISergey Poznyakoff1
2021-07-17Crash-tolerance based on the patch from Terence Kellygray@gnu.org1
2021-06-17Version 1.20v1.20Sergey Poznyakoff1
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-04-23Fix possible integer overflows and cases of undefined behavior.Sergey Poznyakoff1
* src/avail.c (avail_comp): Prevent integer overflow. (gdbm_avail_table_valid_p): Likewise. * src/gdbmdefs.h (off_t_sum_ok): Change return type. Return false if any argument is negative. * src/gdbmopen.c (compute_directory_size): Prevent integer overflow. * src/hash.c (_gdbm_hash): Treat dptr elements as unsigned integers.
2021-03-21Merge branch 'newcache': Bucket cache rewritten from scratch.Sergey Poznyakoff1
2021-01-02Update copyright yearsSergey Poznyakoff1
2021-01-02Update copyright yearsSergey Poznyakoff1
2020-12-24Merge branch 'master' into newcacheSergey Poznyakoff1
2020-12-23Version 1.19v1.19Sergey Poznyakoff1
2020-12-23Update copyright yearsSergey Poznyakoff1
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-01-27Update copyright yearsSergey Poznyakoff1
2019-04-08Update copyright yearsSergey Poznyakoff1
2018-10-27Version 1.18.1v1.18.1Sergey Poznyakoff1
2018-08-21Version 1.18v1.18Sergey Poznyakoff1
2018-08-12BugfixSergey Poznyakoff1
* src/gdbmdump.c (_gdbm_dump_ascii): Clear the GDBM_ITEM_NOT_FOUND error. * src/gdbmexp.c (gdbm_export_to_file): Likewise. * NEWS: Update.
2018-07-30Version 1.17v1.17Sergey Poznyakoff1
2018-07-01Change return value of gdbm_close and gdbm_syncSergey Poznyakoff1
* 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-16Version 1.5v1.15Sergey Poznyakoff1
* configure.ac: Version 1.5 * NEWS: Update. * src/Makefile.am (VI_CURRENT): Increment to 6 * src/bucket.c (_gdbm_get_bucket): Fix the upper limit for bucket_bits. * src/falloc.c (push_avail_block): Fill the allocated block with 0s.
2018-05-25More database consistency checksSergey Poznyakoff1
* NEWS: Update. * THANKS: Update. * src/bucket.c (_gdbm_get_bucket): Check if directory entry is valid. Don't cache invalid buckets. * src/gdbm.h.in (GDBM_BAD_DIR_ENTRY): New error code. * src/gdbmerrno.c: Likewise. * src/gdbmopen.c (validate_header): Compute expected number of bucket elements based on the bucket size, not on the block size. (_gdbm_init_cache_entry): New function. * src/proto.h (_gdbm_init_cache_entry): New proto. * src/recover.c (gdbm_recover): Clear error state after return from check_db indicating failure.
2018-05-24More error checking; improve gdbm_recoverSergey Poznyakoff1
* Makefile.am (set-dist-date): New rule (dist-hook): Catch FIXMEs in NEWS. * NEWS: Updated. * src/findkey.c (gdbm_bucket_element_valid_p): New function. (_gdbm_read_entry): Validate the retrieved bucket element. * src/gdbm.h.in (gdbm_recovery): New member: duplicate_keys. (GDBM_BAD_HASH_TABLE): New error code. * src/gdbmdefs.h (TYPE_WIDTH,SIGNED_TYPE_MAXIMUM) (OFF_T_MAX): New defines. (off_t_sum_ok): New function. (gdbm_bucket_element_valid_p): New prototype. * src/gdbmerrno.c: Support for GDBM_BAD_HASH_TABLE code. * src/gdbmtool.c (recover_handler): Fix argument counting. New argument 'summary' prints statistics summary at the end of the run. (export_handler,import_handler): Fix argument counting. * src/mmap.c (SUM_FILE_SIZE): Rewrite as inlined function. Add error checking. (_gdbm_mapped_remap): More error checking. * src/recover.c (run_recovery): Don't bail out on GDBM_CANNOT_REPLACE. (gdbm_recover): Initialize duplicate_keys * src/systems.h: Include limits.h
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-03Bump library current version numberv1.14.1Sergey Poznyakoff1
2018-01-01Version 1.14v1.14Sergey Poznyakoff1
2018-01-01Happy GNU YearSergey Poznyakoff1
2017-12-21Improve database reproducibilitySergey Poznyakoff1
* src/gdbmopen.c (gdbm_fd_open): Fill allocated memory with 0's where necessary. Check return value from fstat. * src/mmap.c (_gdbm_file_size): Set errno here, instead of delegating that to the caller. (_gdbm_file_extend): New function. (_gdbm_mapped_remap): Call _gdbm_file_extend instead of leaving the newly allocated space filled with garbage. * src/gdbmload.c (_set_gdbm_meta_info): Additional error checking. * NEWS: Update.
2017-03-11Version 1.13Sergey Poznyakoff1
2017-01-02Happy GNU YearSergey Poznyakoff1
2016-08-06Fix typosSergey Poznyakoff1
2016-07-25Improve the "next" shortcut.Sergey Poznyakoff1
* src/gdbmtool.c (open_handler): Close the previously opened database. (close_handler): Free the file name. (print_dir_handler): Print the number of buckets. (command_repeat_type): New enum. (command) <repeat>: Change type to enum command_repeat_type. (command_tab): Update accordingly. Mark "next" with REPEAT_NOARG. (run_last_command): Handle REPEAT_NOARG separately. * NEWS: Document the shortcut. * doc/gdbm.texi: Likewise. * src/debug.c (datbuf_format): Don't represent bytes after the end of datum as zeros. (gdbm_debug_datum): Print datum size.
2016-07-19Improve docs. Minor changes.Sergey Poznyakoff1
* NEWS: Document new features. * doc/gdbm.texi: Likewise. * src/gdbm.h.in (gdbm_last_errno): Fix return value. (gdbm_check_syserr): New proto. * src/gdbmdefs.h (gdbm_file_info) <last_error>: Fix data type. * src/gdbmerrno.c (gdbm_last_errno): Fix return value. (gdbm_check_syserr): New function.
2016-07-19Implement gdbm_recover functionSergey Poznyakoff1
* configure.ac: Don't check for rename. * src/Makefile.am (libgdbm_la_SOURCES): Add recover.c * src/recover.c: New file. * src/bucket.c (_gdbm_get_bucket): Remove extra space before [ * src/err.c (prerror): Take additional argument (gdbm_perror): Print system errno if necessary. * src/gdbm.h.in (GDBM_CLOERROR): New flag. (gdbm_fd_open, gdbm_copy_meta): New proto. (gdbm_last_syserr,gdbm_db_strerror,gdbm_recover): New proto. (gdbm_syserr): New extern. (gdbm_recovery): New struct. (GDBM_RCVR_DEFAULT,GDBM_RCVR_ERRFUN) (GDBM_RCVR_MAX_FAILED_KEYS) (GDBM_RCVR_MAX_FAILED_BUCKETS) (GDBM_RCVR_MAX_FAILURES) (GDBM_RCVR_BACKUP): New flags. (GDBM_BACKUP_FAILED): New error code. * src/gdbmclose.c (gdbm_close): Work correctly if dbf->desc == -1. * src/gdbmcount.c (gdbm_count): Remove spurious sorting. Use _gdbm_next_bucket_dir for iterating over the buckets. * src/gdbmdefs.h (struct gdbm_file_info)<last_syserror> <last_errstr>: New members. * src/gdbmerrno.c (gdbm_set_errno): Set last_syserror as well. (gdbm_clear_error): Reset last_syserror. (gdbm_last_syserr): New function. (gdbm_errlist): New entry for GDBM_BACKUP_FAILED. (gdbm_db_strerror): New function. (gdbm_syserr): New global. * src/gdbmload.c (get_parms): Buffer can be NULL. * src/gdbmopen.c (gdbm_fd_open): New function. (gdbm_open): Rewrite as a wrapper over gdbm_fd_open. * src/gdbmreorg.c (gdbm_reorganize): Rewrite as a wrapper over gdbm_recover. * src/proto.h (_gdbm_next_bucket_dir): New proto. * src/gdbmtool.c: New command: recover. * tests/.gitignore: Add gtrecover * tests/gtrecover.c: New test program. * tests/Makefile.am: Build gtrecover
2016-07-15New gdbm_setopt option to get the actual block size valueSergey Poznyakoff1
* src/gdbm.h.in (GDBM_GETBLOCKSIZE): New option. * src/gdbmcount.c (gdbm_count): Fix memory leak on error. * src/gdbmsetopt.c (gdbm_setopt): Rewrite. Handle GDBM_GETBLOCKSIZE. * NEWS: Document GDBM_GETBLOCKSIZE * doc/gdbm.texi: Likewise. * tests/gtload.c: New options -bsexact and -verbose. * tests/Makefile.am: Add new testcases. * tests/testsuite.at: Likewise. * tests/blocksize00.at: New testcase. * tests/blocksize01.at: Likewise. * tests/blocksize02.at: Likewise.
2016-07-15gdbm_open adjusts requested block size to accomodate integer number of ↵Sergey Poznyakoff1
directory offsets. * src/gdbm.h.in (GDBM_BSEXACT): New flag. * src/gdbmopen.c (compute_directory_size): New function. (gdbm_open): When creating new database, adjust the requested block size so that the block holds integer number of directory indices. Disable this behavior if GDBM_BSEXACT flag is set (this reverts to old behavior). Always unset GDBM_BSEXACT if using block size returned by stat(2). This makes sure gdbm_open succeeds on file systems reporting block sizes not divisible by 512. * src/gdbmconst.h (GDBM_MIN_BLOCK_SIZE): New constant. * src/gdbmimp.c (gdbm_import_from_file): Use GDBM_MIN_BLOCK_SIZE instead of the hardcoded value. * NEWS: Document GDBM_BSEXACT. * doc/gdbm.texi: Likewise.
2016-07-13Update NEWSSergey Poznyakoff1
2016-07-12Line-editing support in gdbmtoolSergey Poznyakoff1
* configure.ac: Check if GNU Readline is available. * src/Makefile.am: Add new files. * src/input-rl.c: New file. * src/input-std.c: New file. * src/gdbmtool.c (handler_param): Move declaration to the header file. (quit_handler): Call input_done. (command_tab): Add the "history" command. (command_generator): New function. (slist_new_s, slist_new_l) (slist_insert): New functions. (main): Call input_init and input_done. * src/gdbmtool.h: New protos. * src/gram.y: Use slist_insert to construct string lists. * src/lex.l (read_input): Remove. Use input_read instead. (print_prompt_at_bol): New function. (print_prompt): Remove. (make_prompt): New function. * NEWS: Document changes. * README: Document readline support. * doc/gdbm.texi: Document line editing in gdbmtool. * doc/gdbmtool.1: Likewise.
2016-07-09Don't bail out on fatal errors, unless the user defines the fatal_err functionSergey Poznyakoff1
* src/bucket.c (_gdbm_get_bucket) (_gdbm_split_bucket, _gdbm_write_bucket): Return error code. All callers updated. * src/proto.h (_gdbm_get_bucket) (_gdbm_split_bucket, _gdbm_write_bucket): Update declarations * src/falloc.c (push_avail_block) (pop_avail_block): Return error code. All callers updated. * src/update.c (_gdbm_fatal): Exit only if the user defined fatal_err function. * src/gdbmerrno.c (gdbm_needs_recovery): New function. * src/gdbm.h.in (gdbm_needs_recovery): New proto. * compat/dbminit.c: Set gdbm_errno on fatal errors. * compat/dbmopen.c: Likewise. * src/findkey.c: Likewise. * src/gdbm_load.c: Likewise. * src/gdbmcount.c: Likewise. * src/gdbmdefs.h: Likewise. * src/gdbmdelete.c: Likewise. * src/gdbmdump.c: Likewise. * src/gdbmexists.c: Likewise. * src/gdbmexp.c: Likewise. * src/gdbmfetch.c: Likewise. * src/gdbmimp.c: Likewise. * src/gdbmload.c: Likewise. * src/gdbmopen.c: Likewise. * src/gdbmreorg.c: Likewise. * src/gdbmseq.c: Likewise. * src/gdbmsetopt.c: Likewise. * src/gdbmstore.c: Likewise. * src/gdbmsync.c: Likewise. * src/mmap.c: Likewise.

Return to:

Send suggestions and report system problems to the System administrator.