Metakit 2.4.4 stable release

2001-03-31 ############################################## MK 2.4.4

   Various bug fixes and (blocked view) performance enhacements.

2001-03-28 More blocked optimizations, IRIX tweaks

   Switched Slot() to binary search.  This seems to slow down a few
   percentage point for smaller views, but with 5 millions rows this is
   reported to make a huge difference (from code by Zhang Dehua).
   Added header "bool" fix by Erik Hofman so MK compiles on IRIX (SGI).

2001-03-27 Added definitions for AIX

   Added six operators defs before c4_Cursor class, to avoid compile
   errors on AIX.  With apologies to Murat Berk for taking so long...

2001-03-26 Re-instated the c4_View::RelocateRows operation

   Re-enabled code which supports efficient moves of rows from one view
   to another - avoiding copying of subviews.  Strings/memos are still
   being copied for now.  Also moved a slow test out into a new call
   "c4_View::IsCompatibleWith", this must be checked to make sure that
   RelocateRows can work.  Passing incompatible views will still cause
   an assertion in debug mode, but must be avoided in release builds.
   This change ought to have a dramatic effect on inserts/deletes for
   blocked views with large subviews.  Added examples/blockdels.tcl to
   thoroughly exercise this new code and all boundary conditions.

2001-03-22 Fixed a serious bug in serialization code

   When serializing string/bytes columns with large strings using the
   c4_Storage::SaveTo function, memo's would sometimes not be written,
   leading to a *damaged* datafile (and incorrect free-space tracking).

2001-03-15 Better configure logic, "mk::view layout" fix

   Many tweaks to configures, makes, and libtool setup.  Get rid of the
   library version numbers and the special Mk4*.so targets.  Instead of
   Mk4tcl.so use libmk4tcl.so (likewise Mk4py.so is now libmk4py.so).
   Fixed "mk::view layout", it was broken by the 10-2-2002 change.

2001-03-13 Extend partial access 'B' usage

   Added code to Access and Modify to simulate partial data access the
   hard way when the underlying view does not support it (c4_Bytes
   only), i.e. copy via full temp.  Added test s41, doing partial access
   on a blocked view.

2001-03-12 Add test for serialized input

   The c4_Storage::LoadFrom() call (mk::file load) can be tricky.  After
   a commit, the header is adjusted so that reading from the start
   works.  This is not the case in commit-extend mode, where a load will
   read th state as it was before extending - it cannot know there is
   more.
   Added test s40 to verify this case.  Also reorged a few more files
   (tbasics and tstore4 split into 2 each).
   Added test in mk4tl.cpp so LoadFrom failure generates an error
   return, instead of being ignored.

2001-03-10 Tweaked March 8 fix a tad further

   The workaround implemented below wasn't 100% complete.

2001-03-08 Workaround for file extend on Win

   There seems to be a bug when extending a file on at least NT4 with
   NTFS (file server works fine).  When extending the file in such a way
   that a gap is created to save new data during commit, the file
   appears to get rounded up to the next 512-byte boundary.  At that
   point, the datafile no longer has a valid end marker and is sort of
   corrupt.
   Wrote workaround for Win32 builds, see persist.cpp notes names "March
   8, 2002".  One way to force this bug is to run "mkhash Dmhs 250000" -
   after row 150000, it asserts on bad filesize when built in debug mode
   and run on NTFS.

2001-02-19 Fixed over-aggressive optimization

   Change made on Feb 7 was releasing too many objects in a commit,
   causing it to detach empty top-level views, even when in use.  Fixed,
   added s39 to test for this case.

2001-02-10 Improve Mk4tcl's "mk::view layout"

   Avoid crash when asking for the layout of a non-existent view.  Now
   returns an error instead.

2001-02-07 Fast commit with many empty subviews

   Avoid creating subviews when committing, if these are empty anyway.
   Added new s38 test for this case.

2001-02-02 Small optimizations

   Changed a few c4_Property instances to const& references to avoid
   copying (2 in view.cpp, 2 in custom.cpp).

2001-02-01 ############################################## MK 2.4.3