Revision history for Perl extension Tangram. 0.01 Sun Mar 21 10:46:45 1999 - original version; created by h2xs 1.18 0.03 Stardate: unknown - first public alpha release 0.08 Stardate: unknown - second public alpha release 0.09 Stardate: unknown - split Tangram.pm into several modules - replaced @ISA with 'use base' - replaced default typetags with automounting - prefetch now takes either class or remote - implemented prefetch for IntrArray and IntrSet *::prefetch still need real-life testing, especially when class(coll) <> class(item) 1.00 Nov 07 1999 - first mature release version - deploy() now also works directly on DBI handles - deploy() allows specification of SQL types via the schema hash - intrusive collections allow element-to-container navigation - improve speed of read_object - fixed various bugs - rewrote part of, and expanded documentation 1.01 Nov 12 1999 - interim version - added (raw) mapping between Perl strings and date/time SQL types 1.02 Nov 14 1999 - interim version - added support for aggregated refs, arrays and sets 1.03 Dec 28 1999 - interim version - added support for customizing object & class id types, etc - as a consequence Tangram should now work with PostgreSql - fixed bug: erase() failed in presence of stateless leaf classes - temporarily removed RawDate and RawTime tests because M$ SQL cannot handle them; those modules are still present though 1.04 Jan 03 2000 - interim version - fixed two bugs related to explicit tables 1.05 Jan 03 2000 - interim version - fixed: Storage::prefetch now works with inherited members - fixed: _insert() ignored collections in stateless classes 1.06 Feb 29 2000 - higly experimental interim version - added typechecks on collection members - started cleaning up autovivification of colls upon save - documented like() - documented extended select options retrieve, order & filter - changed _limit into the Limit in test suite - added temporary hack in Makefile.PL to support Access - added mapping for flat arrays - factorized code common to Array & FlatArray 1.07 Feb 29 2000 - interim version - adapted test suite for Sybase and other NULL-picky databases - added experimental support for vendor extensions (Dialect) - added skeleton Dialect::Sybase with support for datepart - did extensive rework on Expr instantiation - began documenting Type - added Storage::reload() 1.08 Mar 26 2000 - interim version - batch allocation of object ids - support for Lobs contributed by marian.kelc@ruhr-uni-bochum.de - Storage::reset() 1.09 ? - interim version - String calls DBI for correct quoting, as Marian Kelc suggested - fixed Array problem when removing elements from middle of collection - (?) 1.10 Apr 19 2000 - interim version - changed reset() into unload() and added support for partial unloading - tx_do() can now propagate arguments to closure/anon-sub; insert(), update() and erase() pass anon-subs to tx_do to prevent leaks (thanks Radu Greab) 1.11 May 29 2000 - public version - ordering result set by descending order is now supported - die() on attempt to load from an invalid id - removed silly table id allocation limit (t1000) in Coll.pm 1.13 Jul 11 2000 - interim version - new FlatHash and DMDateTime mappings contributed by Gabor Herr - some more doc in Type.pod - date & time doc moved to DateTime.pod - deploy() puts \n between instructions in trace 1.15 Jul 21 2000 - interim version - new PerlDump mapping contributed by Gabor Herr 1.16 Jul 25 2000 - interim version - fixed deploy() bug: didn't take col names into account for Array, Set and Hash - fixed query_expr bug in Scalar and Ref: used field name instead of col name 1.17 Jul 28 2000 - interim version - Gabor's patches on deep updates 1.18 Jul 28 2000 - stable version - weakrefs! - tuples - mysql tx acquired lock regardless of tx nesting 1.19 Jul 28 2000 - stable version - improved id allocation for mysql - bitwise operators for mysql - manual class id allocation - install now works in the absence of DBI and Set::Object - Makefile.PL prerequisites work now - Guided Tour is now generated & can be run - added support for LIMIT in selects - deploy() didn't take explicit oid/cid type into account; fixed - deploy() wrongly defaulted to NULLable types; fixed - class id can now be specified - oid and cid now default to INTEGER - fixed error in Expr.pod but I don't remember what it was - minor improvement to Schema.pod - added Springfield.pm for users to play with - added support for SELECT SUM 2.00 Feb ?? 2001 - first S.O.L. release - added copyright notices - added a copy of the GPL - implemented inlined exports - INSERT and UPDATE now make use of prepared statements when available - re-executable Cursors - changed database layout, Class Table is gone and 'control' table in there - object ids are no longer allocated on a class basis - introduced Tangram::Relational - dialect are now done via derivation - stored object id no longer contains type id - introduced Relational::Engine - flexible mapping 2.05pre1 May 2003 - SamV - first "not the momma" release - Patches from lots of people, don't know who 'coz the honourable grand master JLL applied a lot of them, I'll try to summarize here: - back-porting pieces for 5.00503 (that was me) - a more elegant solution for the Tangram::AbstractArray/AbstractHash corner case than the one I submitted :-) - code that (possibly) completes Tangram::Hash support (I haven't written a test case to confirm this yet) - A fix to Tangram::AbstractSet that again caters to some very strange corner cases (this was me too) - Working implementation of the Tangram::DMDateTime type mapping, a good thing that running a persistent application server offsets the huge time it takes to load in Date::Manip :-) - A bug fix to Tangram::FlatArray mapping type that affects deleting members (don't know whose) - Tangram::IntrSet::get_intrusions (? can anyone claim or explain this one?) - Minor Tangram::PerlDump fix (a simple one) - Deep, deep magic in Tangram::Relational::Engine; new function get_heterogeneity (anyone?) - Use of uninitialised variable in Tangram::Engine... - Other large changes to Tangram::Schema (? - get_bases, get_specs, is_root, etc) - A problem with merging schemas when you used a `back-ref' to a class that is later on in the schema (me) - Scattered showers of changes in Tangram::Storage (get_insert_statements etc, lots of `off by one' (reference nesting level that is) changes) - All I can say is that there have been some very smart people looking at this code and submitting patches. 2.05pre2 Jun 2003 - SamV - Minor Tangram::Expr defined vs logically-false fix (Aaron Mackey) - explicitly select all ORDER BY columns (Aaron Mackey) - normalise default "slot" and "coll" column names in Tangram::Intr* types (SamV) 2.05 Jul 2003 - SamV - Tangram::Scalar and Tangram::Ref column names are now passed through $schema->{normalize}->() 2.06 Jul 17 2003 - SamV - Added $storage->oid_isa($oid, "ClassName") method for marshalling OIDs - Fixed minor bugs causing test suite to issue large warnings on 5.8.1-RC2