v0.52 2008.06.20 - add missing timestamp types - add support for placeholders in INSERT, DELETE, UPDATE with do statements - add preliminary support for table_info, column_info, get_info - add ing_ph_inglengths, ing_ph_ingtypes fields for infos about placeholder columns after PREPARE on INSERT, DELETE, UPDATE - ... and documented it in the POD *g* -> works for Ingres2006 R3+ v0.51 2004.01.12 Added an errorcheck on the rollback when disconnecting with open transaction. Corrected spelling of $dbh->{PrintError} in Ingperl.pm Added AutoCommit=>0 to connect call. Added ing_rollback to change the behaviour of setting AutoCommit=>1 with an open transaction. The DBI docs state that the transaction is commited, with $dbh->{ing_rollback}=1 the transaction is rolled back instead. v0.50 2003.09.15 All changes due to Mike Battersby - add missing long datatype info into the attribute fetching. - add missing BYTE and BYTE VARYING type details to the POD. - fix another small memory leak of imp_sth->name when destroying a statement handle. - implement support for LONG VARCHAR and LONG BYTE data types, including dynamically allocating the memory for them. - add tests for long and binary behavior into t/dbi.t. - add t/datatypes.t for more thorough testing of support for each datatype in type_info_all. - fix memory leak in attribute fetch by decrementing the ref count on the created SV. - increment the ref count when we put an SV into the dbh cache so we don't access freed memory later (never hit because we don't cache our only attribute, AutoCommit, anyway). - don't allocate 1 extra imp_fbh_t in dbd_describe for no reason. - use perl SVs for buffer management in dbd_describe and remove the var_ptr field in the imp_sth_t. - vastly simplify the memory management in bind_ph by using Renew all the time instead of the home-brew memory manager. - use IISQ_VCH_TYPE for all character types - support BYTE and BYTE VARYING data types now that strings use IISQL_VCH_TYPE and don't rely on nul termination. - actually free the allocated statement data in dbd_st_destroy and stop leaking memory like a sieve. - don't access undef bind values (used for binding nulls), so we protect against invalid memory access and stop perl from warning us about referencing them. - fix up some formatting in the POD documentation, re-work a couple of sections and examples, and add some info about binary data types. v0.38 2003.07.03 -Tim Bunce came with the correct solution to the $dbh->do and $dbh->{Statement} problem. v0.37 2003.07.03 -removed the saving of statement text in $dbh->do as an interim solution to avoid errors. Pointed out by David Coulthart . v0.36 2002.11.22 -bind_param didn't accept type SQL_DATE. I should have been a stringish type. Pointed out by Mark Buckle v0.35 2002.05.31 -The test in dbi.t on column name must be case insensitive. Pointed out by Lenio Eric . -Further refinements in the AutoCommit area: failed when setting $dbh->{AutoCommit} to 1 when it already was 1. Pointed out by Preben Sørensen . Perhaps someday I'll get it right :-P v0.34 2002.05.18 -Setting $dbh->{AutoCommit}=1 trigers a commit as per the DBI specs. v0.33 2002.05.13 -Bug in AutoCommit handling fixed. Previously Setting AutoCommit caused a $dbh->Commit to be executed causing all kinds of grief. Eg setting AutoCommit to in the middle of a transaction triggered an absolutely unwanted commit. v0.32 2002.03.06 -Changes for perl5.7.3: all fprintf calls replaces by PerlIO_printf. -Bug in $sth->execute fixed. Sometimes errors were not detected. Added a test for this. Thanks to Dirk Kraemer . -Fixed Ingperl versionnumber so that CPAN is happier. v0.31 2001.09.17 -To aid errorhandling dbh->{Statement} will contain the text of the SQL statement being executed during $dbh->do calls. This is an extension to the normal DBI spec due to the special handling of $dbh->do in DBD::Ingres. -Minor improvents in the tests. v0.30 2001.04.03 Version 0.29 withdrawn. The changes cause too many problems with "normal" VARCHAR types. The testsuite didn't catch the bugs VARCHARS with embedded NULL characters will have to wait for Ingres6.4 support in DBD::Ingres to die out (or for some more tuits). Sorry. v0.29 2001.03.20 Fetch of binary data (ie CHAR or VARCHAR containing '\0' chars) didn't work. The fields were truncated at the \0-char. Pointed out by Mike Yudaken . 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 ). 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 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 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 . 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 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 . - 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 . - 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_, 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 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 ). - Fixed some minor warnings from dbdimp.psc - Digital Unix 4.0b has a good lint in it's C-compiler (Gary W Chapman ) - 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 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 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 ): - &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 ). Fetch(row) truncates trailing blanks from text-columns. This feature can be disabled by setting $sth->{CompatMode} true. I was tired of writing C 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 and Tim Bunce ) 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 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 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.