$Id: //depot/tilpasninger/dbd-ingres/CHANGES#6 $ $DateTime: 2001/03/02 14:15:40 $ $Author: ht000 $
v0.28	    2001.02.26
  The error handling did'nt call the DBIh_EVENT2 macro that properly
  registers the error int the DBI.
  Ingperl.pm had a bug in the $Revision string, which caused cpan.pm to
  complain

v0.27       2001.01.12
 $sth->{Statement} was not implemented. DBIx::XML_RDB needs it.

v0.26       2000.11.20
  $dbh->table_info raised an Ingres error because of the null. This
  has been worked around (Thanks to Dirk Kraemer <kraemer@rz.uni-kiel.de>).
  Minor changes due to change from CVS to Perforce.
  Changed my old (now disfunctional) mail adress to the new (and hopefully
  permanent one: htoug@cpan.org).
  Removed some (2) occurences of \r in the code.

v0.25       2000.01.31
  Included patches for autodetect of OpenIngres on VMS, thanks to Sebastian
  Bazley <Sebastian.BAZLEY@sema.co.uk>
  Added RaiseError=>1 to the connect in t/dbi.t as per current
  recomendation.
  Changed the error return value of execute to 0 (not 0E0 which is the OK
  with 0 rows), not -1, or -2 as it was. Wonder why though?

v0.24       1999.10.29
  The "OF column..." part of the "FOR UPDATE" clause is optional.
  Clarified the pod (or tried to at least).

  This changes the behaviour of the updateable cursor patch added by
  Dirk Koopman <djk@tobit.co.uk> in version 0.19_1.  I hope nothing is
  seriously broken by this change.
  It does seem the best to let cursors be readonly by default and
  explicitly change that if you want to update. The update of a cursor
  without a "FOR UPDATE OF..." clause is not documented and could
  go away at any time. 

v0.23       1999.10.28
  Now tries to discover whether a select-cursor should be opened READONLY
  or not.
  A select is opened READONLY unless there is a FOR UPDATE clause in the
  select statement. This is done by a regexp in Ingres.pm, which might in
  some cases (I just can't imagine which :-) could possibly give a false
  positive - which will cause the select to take exclusive locks.
  To allow the user to override the automatic readonly discovery is it
  possible to write:
      $sth = $dbh->prepare("Select....", {ing_readonly => $value});

v0.22       1999.10.26
  The 'minor tweaks' to Makefile.PL for building on NT are added, thanks to 
  Bernard.ROYET@sncf.fr.
  This release should build cleanly on NT.
  
v0.21       1999.09.16
  It seems that a statement name can only be 23 characters long in Ingres 6.4
  Fixed, thanks to Bruce W. Hoylman <bhoylma@advtech.uswest.com>.

v0.20       1999.09.01
  This has been running without problems on several machines here for some
  months now. Time to release it and see what (if anything) breaks.
  Still to be done:
  - linking on VMS (waiting for DBI to link w.o. problems on VMS).
  - compiling without tweeking on NT (ran out of tuits).
  - tracking the latest chenges in the DBI spec (meta data and cached
    statements to name the most obvious).
 
V0.19_3     1999.05.25
  - Cleanup of the code. Removal of some/all (?!!) of the core dumps.
    No longer 'unaligned access'.
  - Redo the check for re-preparation (still croak if a commit/rollback
    has invalidated the statement).

    Possibly fit for human comsumption. ;-}

V0.19_2     1999.02.06
  - Added support for threaded perls, thanks to Alan Murray <murray@email.exide.com>

V0.19_1     1998.10.14
  This is the first test of the forthcoming release 0.20. This is not
  for public consumption - please use with care.

  Do please report any problem to me <ht@datani.dk>.
  
  - Don't export $sql_dbh etc as default. (Ingperl.pm)
    Warning:
       This may break code that uses one or more of:
          $sql_drh $sql_dbh $sql_sth $sql_debug $sql_rowcount
       Change:
          use Ingperl;
       to:
          use Ingperl( qw[ $sql_dbh $sql_sth ] );
  - Added support for updateable cursors (experimental), Thanks to
    Dirk Koopman <djk@tobit.co.uk>.
  - Upgrade to support DBI 1.00 (experimental):
     . re-prepare statement, that have gone out of scope (eq. after a
       commit/rollback etc). Just first bash at it :-(, ie. for now just
       keep tabs on whether the statement is invalidated by commit.
     . add the new meta-data fields (TYPE, SCALE, PRECISION)
       Ingres doesn't return the SCALE information so that is undef untill
       further notice!
     . first bash at type_info_all
     . added $dbh->table_info (so $dbh->tables also works thanks to DBI)
     . added $dbh->ping
  - Changed statement name from stmnt<12-digit-number> to
    st<number>_<a-bit-of-the-select>, so that it maybe is possible to
    see which statement is executing from eg. ipm.
    This may have the adverse effect that Ingres runs out of buffer space,
    because it leaves all prepared statements in the ???-buffer untill a
    commit. This will only be a problem if you execute many different
    statements in a transaction.
    If this does become a problem please let me know. One solution is to
    allow the user to define the statement name if neccessary (eg. though
    the %attribs argument to prepare).
  - Cleaned up some code here and there.
  - OpenIngres 1.0 now requires patch 5301 (or later) as this fixes the
    unfortunate problem with nullability and outerjoins. The code to work
    around this problem is removed (it had strange sideeffects at times).
    This should not be a problem for OpenIngres 2.0 or later.
    It if definitely not a problem for Ingres 6.4; as outerjoins were
    introduced in OpenIngres.
####  - Now builds cleanly on NT without changes to the makefile.
####  - Now builds cleanly on VMS (again)
  - Now commits after inquiring for autocommit-state after connect. This
    removes the nedd for the commit in:
        $dbh = DBI->connect...
        $dbh->commit;
        $dbh->do("set lockmode....");

(Note #### = Not Yet Implemented)


V0.16     1998.02.05
  - Ulrich Pfeifer found and fixed another couple of memory leaks.
  - Called dbd_st_finish when dbd_st_fetch returns undef. This avoid the bug
    reported by  JD Laub <jdl@iasi.com> where the sequence 
       prepare - execute - fetch - execute 
    results in an error.

v0.15     1998.01.16
  - Added '-lm -lc' to the lib list for SCO reported by Alexander Slinkin
    <sas@arstel.ru>).
  - Fixed some minor warnings from dbdimp.psc - Digital Unix 4.0b has a
    good lint in it's C-compiler (Gary W Chapman <gwc1@acf3.nyu.edu>)
  - Fixed bug that causes DBD::Ingres code to break when used with DBI-0.91s
    (where Tim Bunce has fixed an autocommit bug). The error occurs when you
    issue a statement that cannot be in a multi-statement-transaction just
    after a commit - the test for autocommit has started a transaction.

v0.14     1997.12.16
    Added ChopBlanks test to t/dbi.t
    Ulrich Pfeifer found (and fixed) yet another memory leak in bind_params.
    Reworked the code so that it also works on machines wheres ints are
    not 4 bytes long.
    Truncated some long lines (so they fit in an 80 char windows).
    Documented lack of procedure call.
    Fixed the VMS build problem - nobody needed it. Am I the only one that
    uses Ingres, Perl and VMS??
    
v0.13     1997.11.28
    Found (one of the) AutoCommit bug(s)! Needs an update to DBI to work
    properly. (Autocommit state is not initialized).
    Fixed serious memory leak in binding core (Thanks to Ulrich Pfeifer).

v0.12     1997.11.14
    Remove the trailing "\n" from Ingres error messages, so that
    $dbh->{RaiseError} and $dbh->{PrintError} can return a stack-traceback.
    Add tests to dbi.t for {AutoCommit}, and get autocommitstate at connect-
    time. (Ulrich Pfeifer).
    Return UNDEF from $dbh->execute when errors occur. (Ulrich Pfeifer).
    Fixed Ingperl.pm so that ingtest.pl runs without errors.

v0.11     1997.10.30
    Bug in Ingperl.pm &sql_fetch used $sth instead of $sql_sth - funny
    that nobody noticed before now.

v0.10     1997.10.07
    Release version - VMS does'nt work quite right, but it can muddle through.
    DBD::Test tests passed.

v0.05_96  1997.09.24
    Added get_event func. Thanks to Ulrich Pfeifer.
    Removed $dbh->rows. It was used by the ingperl emulation layer, and
    could be avoided.
    Updated the search strategy for DBIXS.h. Thanks to Jochen Wiedmann <wiedmann@Neckar-Alb.DE>
    Switched to using the DBI-0.89 Driver.xs prototype.

v0.05_95  1997.09.19
    Tried to parse selects and discover if they are outerjoins.
    Added $attribs{"ing_outerjoin"} to $dbh->prepare.
    Documented it a bit more.

v0.05_94  1997.09.18
    Ulrich's patch for nullability added. Now I just need to check if there
    is an outerjoin in the statement before deciding that all fields are
    NULLABLE.

v0.05_93  1997.09.15
    Ulrich's patch for locating DBD::Ingres somewhere else than DBI added to
    Makefile.PL.

v0.05_92  1997.09.12 (early morning)
    Ulrich Pfeifer <Ulrich.Pfeifer@de.uu.net> has come up with a solution to my
    Makefile.PL problems with 'old' Ingres-versions. Thanks.

    Ifdef'fed around Ingres6.4 (and earlier) non-awareness of DBMS_PASSWORD

    $dbh->rows works again.

    This version builds and tests cleanly for me.

    Note that dbdimp.psc now is processed by a chain of 3 links:
    perl (Makefile.PL), Esql/C, C-compiler!
    Cross your fingers and hope nothing breaks.

v0.05_91  1997.09.11
    I just got the binding to work. I hope :)
    Now only $dbh->rows is mucked up.

v0.05_90  1997.09.10
    Major rehaul
    - added bind params - NOTE It doesn't work yet
    - added password support
    - HPUX must link statically
    - RCS Revision bumped to 2.100 so CPAN can find its way around
    - tried to adjust to the DBI-spec (as pr. DBI-0.90) with all Tim's new
      ideas, $sth->{TYPE} now returns SQL_-values from DBI
    - expanded pod
    This is released as a "release early and often" version - respects to Eric
    S. Raymond - for the not faint at heart.

V0.0504   1997.06.16
    Dropped { ing_trim_blanks } again as Tim Bunce has added it to DBI.
    Now needs  DBI-0.82. (for this reason)
    Expanded the pod (and adjusted it to reflect the new DBI-specs.
    Tried to conform better to the DBI-spec.

V0.05_03  1997.04.30
    Added attribs on connect and prepare.
       { ing_trim_blanks => 1 }
    to cause trimming of trailing blanks.
    The former change (from 0.05_01) is now reverted.

V0.05_02 1997.04.29
    No changes. Just a number change as I can't upload the d... thing to
    PAUSE.

V0.05_01 1997.04.16

    Check on II_SYSTEM moved to connect (was at compile-time).

    Improved library dectection for OpenIngres without installed ABF
    component.
    
    Improved Ingperl emulation (Ronald B. Irvin <rbirvin@usgs.gov>):
        - &sql_fetch into scalar now returns first column of output
          and warns if $sql_sth->{Warn} is true.
        - Warnings from &sql_close without open cursor are now only
          output if requested (uses $sql_sth->{Warn}).
        - &sql_eval_col1 fixed.

    Now known to work on DG-UX (Ronald B. Irvin <rbirvin@usgs.gov>).
    
    Fetch(row) truncates trailing blanks from text-columns. This feature
    can be disabled by setting $sth->{CompatMode} true. I was tired of
    writing C<VARCHAR(column)> or C<$col=~S/\+$//;> all over the place!
    WARNING: this may change old (DBD) code!!!
    Ingperl sets CompatMode so Ingperl scripts are not affected.

    Many other cleanups and buglet fixes.

V0.05	1997.03.20
	Makefile.PL changed so that it can link OpenIngres.

	Support for HP-UX added (thanks to Gil Hirsch <gilh@cpm.telrad.co.il>
	and Tim Bunce <Tim.Bunce@ig.co.uk>)

	Added support for DBI 0.77
	
V0.04	1997.01.17
	The function DBD::Ingres::st:fetch has now been reinstated
	(thanks to Tim Bunce <Tim.Bunce@ig.co.uk> who showed the way to
	let case insentive linker handle case sensitivity)

V0.03	1997.01.09
	Restriction on number of simultaniously open cursors removed
	 - inspiration from Dirk Kraemer (kraemer@rz.uni-kiel.de)

	Multiple database connects possible

	Must reuse statement numbers as the number of different
	statement names between commits is limited by the available
	parser memory. You get error:
		E_PS0F02_MEMORY_FULL
		  There is no more available memory. Try again later.
	when this happens.

	DBD::rows does not change the session - will have to discover
	whether this is a dbh or a sth to get the session number.
	Tried (unsuccessfully) to use $dbh->{Database} in Ingres.pm
	- any better ideas?

V0.0201  1996.12.18
	Can now link dynamically on Unix
	 - thanks to Paul Lindner <lindner@itu.int>

	Solaris fixes to Makefile.PL
	 - thanks to Dirk Kraemer (kraemer@rz.uni-kiel.de)

	The bug in VMS MakeMaker has been fixed - require a
	version that includes the fix!
	Still need to improve the ingres.opt handling.