The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for Perl extension DBIx::Recordset

0.19  30 Mar 1999

  - changed order of group by and order by in select. Spotted by
    Roman Maeder.
  - DBIx::Recordset automaticly tried to determinated links between
    tables (see also DBIx::Database)
  - DBIx::Recordset will only insert a new record in the DB if
    a record contains any data. This avoids inserting a record
    that is only created when try to read an non existent record.   
  - Added new attribute !WriteMode which lets you specify which
    write operation to the db are permited and which are not.
  - Added new attribute '!LinkName' which will automaticly select
    additional fields from links tables (DBMS must support LEFT JOIN)
  - Fixed a problem that occurs in cleanup when you use muliple
    nested links. (while (($k, $v) = each (%h)) is not reentrant!!)
  - Execute will not do a Search after INSERT/UPDATE/DELETE when an
    error has occured, so the error message is not overwritten
  - use croak instead of die
  - SQLDelete accepts empty WHERE, which will delete the whole table
  - Added new object DBIx::Database which will parse the metadata of
    the database and tried to automaticly determinate links between tables.
    All the information is stored for later access by DBIx::Recordset
    objects. This makes setup of a DBIx::Recordset object much faster,
    especially when you use it in the startup file of your web server.
    Also this gives you the possibility to speficy table attributes
    only once at startup time.
  - New method Links return the links of a DBIx::Recordset object
  - New method Link4Field return the link of the specified field if any.
  - tied hash now also support DELETE and CLEAR operation on a table.
  - Insert now skips undef values, because there is no need to insert
    NULL values.
  - Update now set undef to NULL, even for database that does not use
    placeholders.
  - Added Filters. Filters allows you to specify an input and/or an
    output function which transforms the correspondig fields before
    input/output. This could for example be used to transform database
    specific datatypes (e.g. date) to and from a common format, or just
    to a human readable format.
  - Fieldnames which are given to Update and Insert maybe prefixed with a
    \ to avoid any transformation. Suggested by Frank Ridderbusch.
  - Update and Insert converts numeric values to vaild numeric format, e.g.
    'foo' will be converted to 0 when inserting in an integer field. Use
    '\name' => 'foo' to avoid this conversion.
  - 'null' and 'not null' now allowed as unary operators in where expression.
    Suggested by Malcolm Cook.
  - An value of undef is now allowed as key for the hash access. This is
    usefull when your primary key is an autoincrement value. Then you can
    add data with undef as key and call Flush to write out the record.
  - automaticly finish a statement handle, when all data is fetched to
    avoid unneccesaary open statement handles.
  - Make all the new features are working with DBD::Orcale. Many thanks
    to John Tobey for his help.
  - Adapted Compat.pm entries for DBD::Sybase. Help and testing from
    Malcolm Cook and Aaron Ross.
  - $DBIx::Recordset::Debug now allows more values, so you can better
    control what's being logged.
  - Added !LongNames parameter which forces the hash keys to the form
    table.field.
  - Added methods for begin/commit/rollback to make sure DBIx::Recordset
    internal data are correctly updated. Suggested by John Tobey.


0.18  3 Nov 1998 
  - Added !TabJoin parameter to support LEFT/RIGTH/INNER JOIN
    syntax. Spotted by Roman Maeder.
  - Added $group parameter to support GROUP BY
  - Added $append parameter to append arbitrary data to the end
    of an SELECT statement.
  - Added !IgnoreEmpty which gives you the possiblity to 
    specify how DBIx::Recordset handles fields with undef value,
    or empty strings. This may helpfull in a CGI enironement.
    NOTE: with a value of 2 DBIx::Recordset behaves like versions
    before 0.18
  - fixed problem with handling of undef and zero values.
    undef is now treated as SQL NULL and zero is handled
    correctly. See also !IgnoreEmpty.
  - Added entry for DBD::Oracle from Malcolm Cook
  - fixed a bug in PrevNextForm spotted by David Crook
  - The first Next after a sucessfull search returns now
    the first row and not the second one, spotted by Malcom Cook.
  - fixed a bug so that now linked tables a correctly flushed if modified

0.17  8 Oct 1998
  - DBIx::Recordset now can handle subtables. This means if you have
    one tables which has field which is an key for another table
    you are able to access the second table via $set{first}{subfield}
    DBIx::Recordset handles this by creating a special link field,
    which is actually a new Recordset object.
    Look at "Working with multiple tables" in the documentation.    
  - You can now call the method add to get an empty new record and
    then simply put data in the current record 
  - Metadata is cached, that means if you open the same table a
    second time DBIx::Recordset does not query the driver again
    for the metadata, but uses the cached values instead.
  - The Flush methods returns now undef on error, otherwise a true
    value
  - Adapted the data types for newer mSQL drivers in DBIx::Compat
  - Added documentation about working with mulitple tables
  - Added documentation about debugging and DBIx::Recordset logfile
  - DBD::CSV works together with DBIx::Recordset

0.16  26 Aug 1998
  - Reworked memory management
    1.) DBIx::Recordset will be correctly destroyed and the statement handles 
        released, if the object goes out of scope. (You don't need 
        DBIx::Recordset::Undef anymore to destroy an object)
    2.) Worked around a problem that perl will reference an object when a
        reference to it is return from the each operator. This causes reference count
        of the object not going to zero and therfore the object was not destroyed
        when it goes out of scope.

  - Ignore DBD::File for tests because it's just a base class
  - Added support for drivers which does not have field types 
    ($sth -> {TYPE})
  - Fixed return values from Select/Update/Insert/Search/Execute so
    they return undef on error. Spotted by Gary Ashton-Jones.
  - Documentation update

0.15  31 Jul 1998
  - Apdapt STORE method of tied array to perl5.005. DBIx::Recordset works
    now correctly with perl5.004 and perl5.005
  - Update can now handle updates of the primary keys correctly
  - Insert can be done by calling Setup and then write values to the
    array
  - Update works now without an primary key
  - Adapted Compat.pm to the new values in $sth -> {TYPE} of DBD::mSQL
    in 1.19_19 and higher. Spotted by Ray Zimmerman,

0.14  1 May 1998  
  - first public release