Jun 15, 2007 - chris --------------------------------------------------- release of hamsterdb-0.4.4 Jul 13, 2007 - chris o finalized "environment" functions, APIs and unittests; added a new sample (samples/env1.c). Jul 06, 2007 - chris o bugfix: freelist pages were not marked as dirty, and therefore sometimes weren't written to disk Jul 03, 2007 - chris o bugfix: deleted pages (with db_free_page()) were not moved to the freelist, and zombie pages were created Jun 24, 2007 - chris o finished the port to Windows CE. Solution files are in the wince directory (configured for STANDARDSDK 5.0 (x86)). See wince/README.TXT for the details. Jun 20, 2007 - chris o improved the caching of extended keys; the cache is now purged when it's too full Jun 17, 2007 - chris o added the flag HAM_OPEN_EXCLUSIVE; will lock the file exclusively, as long as it's open. Returns HAM_WOULD_BLOCK if you try to place an exclusive lock on a database which was already opened exclusively. Jun 15, 2007 - chris o fixed a bug which disabled HAM_DISABLE_MMAP; even if the flag was specified, mmap routines were used Jun 12, 2007 - chris --------------------------------------------------- release of hamsterdb-0.4.3 Jun 10, 2007 - chris o fixed a small memory leak (in-memory db only, when using extended keys and a lot of SMOs occur, because many keys are deleted) Jun 04, 2007 - chris o fixed configure.in - do not build unittests if cppunit is not installed May 30, 2007 - chris o added unittests for util.c o modified doxygen tags in the documentation (ham/hamsterdb.h) o fixed a rare memory leak with SMOs during ham_erase (only for in-memory databases) May 29, 2007 - chris o added unittests for btree_cursor.c May 19, 2007 - chris o configure.in now checks for cppunit/extensions/HelperMacros.h, not cppunit/TestSuite.h May 10, 2007 - chris --------------------------------------------------- release of hamsterdb-0.4.2 May 10, 2007 - chris o refactored the freelist and reimplemented it as a bitmap o removed HAM_OPTIMIZE_SIZE - this flag is no longer needed, the new bitmap structures are automatically optimized May 5, 2007 - chris o new unittests for the freelist Apr 04, 2007 - chris o refactored the cache and some other modules o bugfix in ham_open_ex: the cachesize parameter was ignored; ham_open_ex always used HAM_DEFAULT_CACHESIZE Apr 02, 2007 - chris o started writing unittests and refactoring Mar 27, 2007 - chris o database files are now endian-agnostic; hamsterdb can now use big-endian databases on little-endian architectures and vice versa Mar 21, 2007 - chris o removed HAM_OPEN_EXCLUSIVELY - i'll replace it with file locking in a few weeks o use mmap if the db-pagesize is a multiple of the os-pagesize, and not just if it's equal o do not store the following flags in the database: HAM_DISABLE_VAR_KEYLEN, HAM_CACHE_STRICT, HAM_DISABLE_MMAP, HAM_OPEN_EXCLUSIVELY, HAM_WRITE_THROUGH, HAM_READ_ONLY, HAM_OPTIMIZE_SIZE, HAM_DISABLE_FREELIST_FLUSH o fixed an unlikely crash in ham_cursor_move: if the cursor was nil after moving the cursor, return an error Mar 17, 2007 - chris o added configure-option --enable-internal to enable all internal functions (ham_dump and ham_check_integrity). disabling those functions shrinks the library size by a few kilobytes o improved the documentation in the header-files Mar 16, 2007 - chris o improved configure.in - added --enable-shrink, removed optimizations for --enable-debug, all other modes will now use -O3 Mar 06, 2007 - chris --------------------------------------------------- release of hamsterdb-0.4.1 Mar 04, 2007 o moved the ./tests-subdirectory to a separate repository Mar 03, 2007 o win32 compiles and links as a static or dynamic library with Visual C++ 2005 Express Edition; testes are all successful Feb 11, 2007 o many small changes to compile everything on cygwin Feb 04, 2007 - chris --------------------------------------------------- release of hamsterdb-0.4.0 Feb 03, 2007 - chris o all write-functions return an error if they're called but the database is in read-only mode o added a new sample db3.c, which reads words from stdin and prints them in sorted order o removed the flag HAM_OPEN_CREATE; it was broken anyway Feb 02, 2007 - chris o database cursors are now fully implemented and tested Jan 24, 2007 - chris o default behaviour for ham_create changed; already existing files are now overwritten o now uses -Wall on platforms with gcc o resized the default cache size from 128kb to 256kb Jan 23, 2007 - chris o added a new sample db2.c, which copies an existing database to another database using a cursor. Jan 21, 2007 - chris o the cursor implementation is finished and seems to work; testing is not yet complete. o ham_flush now has an (unused) flags-parameter. o renamed samples/simple.c to samples/db1.c Jan 20, 2007 - chris o created one global transaction-pointer in the database object, and removed all transaction parameters for most functions; added tests that only one single transaction object is created. Dec 23, 2006 - chris --------------------------------------------------- release of hamsterdb-0.3.1 Dec 23, 2006 - chris o header-files are now installed to $prefix/include/ham o test is not build if db.h is missing Dec 19, 2006 - chris --------------------------------------------------- release of hamsterdb-0.3 Dec 15, 2006 - chris o started the port to MS Windows; so far, there are only two batch files to create the library, but no nmake file or Visual Studio project. o started to move the stuff to automake/autoconf; transition is not yet complete Dec 10, 2006 - chris o a new parameter HAM_OPTIMIZE_SIZE creates smaller files by merging freelist entries (comes at a small performance penalty) Nov 26, 2006 - chris o extended keys are now cached (if the cache size is big enough) Nov 24, 2006 - chris o added HAM_DISABLE_FREELIST_FLUSH - when a freelist page is modified, it is no longer flushed immediately. this is dangerous - in case of a crash, the database is most likely broken. Nov 23, 2006 - chris o fixed a small leak - if records are overwritten, and the new record size is smaller then sizeof(ham_offset_t), the old blob was not added to the freelist Nov 22, 2006 - chris o completely rewrote the freelist - elements are now sorted, and access is a lot faster. also, elements are merged, if possible, which results in smaller files o fixed a bug; if the root page is split, the address of the root page was not stored correctly in the database header Nov 12, 2006 - chris o completely rewrote the blob storage - blobs are now stored in one big chunk, and not splitted into pages o replaced read/write with pread/pwrite o fixed a small bug related to a performance improvement on Nov 5th (removed too many memset's...) Nov 09, 2006 - chris o fetching in-memory-blobs created a memory leak if the record data was allocated by the user Nov 07, 2006 - chris o blobs which were overwritten (and therefore were deleted) were not added to the freelist Nov 05, 2006 - chris o fixed a tiny memory leak in blob_erase o replaced linear search in btree_get_slot and btree_insert with binary search, got significant performance improvements o removed some unnecessary memsets, after allocating a new page o relaxed the "minkey"-rule: after erasing, pages are now merged when there are <=4 elements in the page Nov 04, 2006 - chris --------------------------------------------------- release of hamsterdb-0.1pre2 Oct 26, 2006 - chris o fixed a bug in the freelist - the return value was ignored, when allocating a new page. if the cache was too small, NULL was returned and the library crashed Oct 24, 2006 - chris o fixed minor issues for compiling on 32bit machines Oct 18, 2006 - chris o fixed a bug in the freelist - too many freelist pages were allocated o fixed a bug: when allocating pages, and the page was removed from the freelist, and the page type was not set correctly Oct 12, 2006 - chris o fixed a bug in blob_allocate when allocating big blobs o fixed a bug when overwriting keys, and the blob was empty, tiny or small (<=sizeof(ham_offset_t)) Oct 8, 2006 - chris o completely rewrote the test environment (./dbtest.py) Oct 3, 2006 - chris o rewrote the SConscript and all scons-files o added the Doxyfile (Doxygen build script) to generate the documentation Sep 22, 2006 - chris o added the README-file o enabled support for O_LARGEFILE Sep 21, 2006 - chris o renamed COPYING to LICENSE; also renamed the header comments in all files