Revision history for Class-AutoDB

1.22 2011-01-07

        Bug fixes
        - when 'using' a class at runtime, schema changes were not happening;
          the common failure case was a class loaded at runtime that defines
          a collection
        Changes to Build.PL
        - added explicit test for DBD::mysql based on code in Data::Babel's
          Build.PL and removed from prereqs. it doesn't work to put in prereqs
          because if not present, install tries to install 'DBD' which does not 
          exist
        Changes to tests
        - declare.030.pct_autodb.t was not setting 'create' flag in call to
          'new'. longstanding bug that remained undetected because previous
          tests left the database in a state that didn't bother it

1.21 2011-01-05

        Bug fixes;
        - when deleting objects whose classes were not yet 'used', the deletes 
          were not being applied to the objects' collections; this was because
          the class-to-collection information was set in the registry

1.20 2010-09-20

        New features
        - 'del' method to delete objects
        - queries ('get', 'find', 'count') with no arguments retrieve/count all
          objects. makes it possible to retrieve objects without defining
          collections
        - raw SQL can be used in queries ('get', 'find', 'count')
        Bug fixes
        - drop views everywhere that we drop tables, so views will not get in
          way when we create tables. (arises because DROP TABLE only drops 
          tables, not views)
        Many small cleanups in code and tests

1.19_02 2010-09-17

        Bug fixes
        - added 'numify' to overloads in Oid and OidDeleted. arises because
          Perls >= 5.10 use stringify to autogenerate numify
          (Thanks to CPAN testers for finding this!)
        - found a few more places where I drop tables and now have to also
          drop views
        Changes to tests
        - added code to emit MySQL version in 000.code_exists test
        - check MySQL version in 150.dropview test and skip if version too
          old to support views
        - added tests for overloaded numify

1.11 2010-03-08

        Changes to build and test process only.
        Changes to Build.PL:-
         added DBD, DBI::mysql, plus some others to configure_requires. thanks 
          to CPAN testers for finding this problem
        Changes in tests:
        - more screwing around with MySQL's max_allowed_packet variable. this
          limits the size of the biggest object that can be stored. I have come
          to learn that setting this variable has no effect, even though the
          MySQL documentation claims that it is a session variable. recent
          versions of the docs correct this misconception...

1.10 2010-03-01

        Brings CPAN version up-to-date with version used internally at ISB
        New features:
        - 'put' method added to AutoDB (in Class::AutoDB::Database) to store
           specific objects. this is a step towards cleaning up namespace of
           user-objects
        - 'oid' method added to AutoDB. this is a step towards cleaning up 
          namespace of user-objects
        - %AUTODB=0 works
        - %AUTODB with HASH form of keys: type defaults to string, as it does
          with all other forms
        - 'port' and 'timeout' added to connection parameters
        Cleanup:
        - connection management (connect, reconnect, etc) made consistent
        - 'renew' made consistent with 'new'
        Bug fixes:
        - in perl 5.10, '==' comparison in AutoDB::put was forcing stringify when
          applied to Oids. fixed by moving '==' after check for Oid.
        - 'exists' (in Class::AutoDB::Database) now checks for empty
          _AutoDB table; this may address common problem where AutoDB
          appears to exists, but registry does not exist
        - fixed ambiguity of â€~getâ€TM (AutoClass::get was masking AutoDB::get)
          by changing order of base classes; this is short term workaround --
          really need to clean up AutoClass namespace!
        - 'store' (in Class::AutoDB::Serialize) was using wrong regex when
          processing transients: /$key/ insead of /^$key$/. This caused keys to 
          be ignored if they matched any substring of a transient. 
          Scary this wasn't caught earlier!!
        - 'count' was throwing exception when count was 0. Scary this wasn't
          caught earlier!!
        - 'put' was storing undef in base table when value of key was 0. Does
          not impact the actual objects returned by 'get' (since objects stored
          in AutoDB), but breaks queries selecting on 0. Scary this wasn't
          caught earlier!!
        - queries on lists with duplicate values were returning duplicate
          objects
        - queries with multiple terms addressing the same list key were ignoring
          all but one of the terms
        - queries with multiple terms addressing the same scalar key now
          detected as illegal
        - objects with incorrectly typed search keys now behave predictably
        - queries with undef values now do 'IS NULL'
        - keys declared with abbreviated types were not always being seen as
          equivalent (eg, 'int' vs. 'integer'
        - programmatic definition of collections now works
        Changes to Build process
        - added Tie::ToObject to prereqs
        - changes to Build.PL for better handling of MySQL dependency. not sure 
          either of these are necessary or even help...
        - added DBD::mysql to prereqs
        - put DBI->connect inside eval to catch error when DBD::mysql not
          installed
        - removed Dumper.o from distro tarball
        Bug fixes in tests:
        - changed 'note' to 'diag' in several tests to get more information
          from testers
        - fixed simple coding error in autodb.122.badfreeze.t ('dbh' to '$dbh')
        - return aggregate in t::Build::run_tap_harness (overrides method from
          Module::Build) as new versions of Module::Build require this
        - in autodb.010.putget.t, now invoke perl via full (secure) path rather
          than just 'perl'
        - in graph.020 tests, skip tests unless max_allowed_packet big enough
          (long term solution added to release 1.20 plan)
        - in bad_freeze tests, skip tests unless max_allowed_packet big enough
          (long term solution added to release 1.20 plan)

0.1     06-01-04
        - in Oid, added code to 'use' classes when object is fetched
          if not already 'used'. caution: this only works if people
          follow the Perl convention of placing module Foo in file
          Foo.pm.  Else, there's no easy way to translate a classname
          into a string that can be 'used'
        - in Oid, added overload for stringification and a few related
          op. stringify fetches object, so serialized objects will
          work as expected when used as hash key
        - in Object, added overload declaration for objects after
          they've been fetched.  don't know why this is needed, but it
          didn't work without it
        - in Serialize, made -transients work
        - changed syntax of %AUTODB declaration to allow multiple
          collections to be specified with different keys. backwards
          compatible. affects code in Collection, Oid, Registration,
          Registry, RegistryVersion

0.092 05-10-25

          data source might be wrong (evil and silent bug)
        - added SQL limit capability to AutoDB, users can now pass a
          limit => n, where n=max number of rows to fetch, in find
          args

0.091 05-06-08

0.09 2004/20/10

0.08 Wed Sep 1 14:09:29 PDT 2004

        The following defects have been addressed (see also bug tracker at 
        www.sf.net project: isbiology):
         1016244 no persistence on (enclosed) test
         1016246 reformat of list sorage
         1019348 not all objects stored
         1016242 create flag not working for registry
         1016238 registryis_saved error
         1017046 not all objects stored

0.07 Tue Aug 17 10:52:27 PDT 2004

0.06 Mon Aug 16 14:24:43 PDT 2004

0.05 17 May 2004

0.04 Mon Feb 23 11:15:53 PST 2004

0.03 Thu Feb 19 09:46:40 PST 2004

0.02 Tues Jan 06 17:01:12 PST 2004

0.01 Mon Dec 22 17:28:49 PST 2003