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
<herr@iti.informatik.tu-darmstadt.de>
- 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
<herr@iti.informatik.tu-darmstadt.de>
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
2.07 Nov 8 2003 - SamV
- Fixed bug with Tangram::Intr* and erasing objects that
referred to a class which didn't use their class name as
their table name [closes: 2650]
- Added the ability to use limit => [ N, Y ] in
Tangram::Storage->select statements
- Added Tangram::Coll::includes_or; see the man page for
Tangram::Expr
- Enhancement of error message from
Tangram::Relational::Engine [related to 2631]
- Support for using table types via $schema->{sql}{table_type}
- Support for sub-selects with MySQL, for the one test that
uses them. Also $storage->{no_subselects} is auto-detected.
- Completed $storage->prefetch() function for all working
types, new test t/prefetch.t
- If you have NULL values in array or hash slots in your
database, then it won't cause a hard error, except possibly
with prefetch() [related to 2631]
- Various small fixes to bizarre internal error messages
[related to 2631]
- Minor documentation fixes
- Exceptions on various DB failures are now thrown when
DBI::execute() is called internally, rather than being
largely ignored.
- Cosmetic Test Suite changes
- ID column name wasn't being used for the index in
Tangram::Relational::Engine (Kurt Stephens)
Lost patches from 2002/06/25 (Kurt Stephens):
- Added missing Tangram::Expr and Tangram::Filter operators:
'+', '-', '*', '/',
'&', '|', '!',
'==', '!=', '<', '>', '<=', '>=',
'eq', 'ne', 'lt', 'gt', 'le', 'ge',
'cos', 'sin', 'acos',
- Added argument swapping for non-commutative operators, like
"<".
- Fixed export problem with 5.6.1 (reported by Kate Pugh)
- deep_update with Tangram::Ref bug fix (reported by Aaron Mackey)
- Makefile.PL should now hopefully be more informative about
which modules are needed for what.
- Removed Selfloader from Tangram::Ref (Kate Pugh)