The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Changes in DBD::Oracle 0.52 (Oraperl 1.37), 28th July 1998

  Assorted build fixes (esp. Win32, HP-UX and AIX).
  More hints on error messages, especially long truncation and
  field-level errors when fetching.
  Compiles okay now for systems without SQLT_CUR defined.
  Only sets SA_RESTART on SIGCLD if connect was successful.

Changes in DBD::Oracle 0.51 (Oraperl 1.37), 5rd July 1998

  Makefile.PL no longer tries to link with just -lclntsh directly :-(
  Improvements to some HP-UX builds (hopefully).
  DBI->data_sources ' dummy ' value removed (and list now sorted).
  connect failure now shows actual Oracle error message again.
  Initial (incomplete) support for binding cursor vars (see t/plsql.t).

Changes in DBD::Oracle 0.50 (Oraperl 1.36), 3rd June 1998

  Makefile.PL changes: fixed -c option, now searches for .h files,
  tries alternate location for sysliblist, checks for executable
  orainst/inspdver before using it.
  Fixed cursor leak.
  Added first word of tnsnames.ora name as aliases if no clash.

Changes in DBD::Oracle 0.49 (Oraperl 1.36), 1st June 1998

  Further improvements to build process over 0.48.
  Fixed broken truncation error in 0.48.
  Fetch ORACLE_SID from Win32 registry (thanks to Preston Bannister)
  Improved automatic row cache sizing (prompted by Jon Meek).
  Added $sth->{ora_cache_rows} and $sth->{ora_est_row_width}
  as read-only attributes to make cache size logic easier to test.

Changes in DBD::Oracle 0.48 (Oraperl 1.36), 25th May 1998

  THIS IS AN EXPERIMENTAL RELEASE - USE WITH CAUTION!
  Now links to -lclntsh directly (Thanks to Bruce Nelson and others)
  Workaround for broken backticks after login (Thanks to Warren Jones)
  Now finds and reads tnsnames.ora to disambiguate dbnames in connect.
  Added basic support for bind_param(..., SQL_TYPE).
  Fixed bind_param_inout after execute.
  Added dbms_output_(enable|put|get) functions.
  Added $dbh->ping.
  Added DBI->data_sources('Oracle');
  $sth->rows now warns if called for select before rows fetched.
  Fixed RAW types to not truncate.
  Improved quality and clarity of trace information.
  Requires DBI 0.92

Changes in DBD::Oracle 0.47 (Oraperl 1.35), 8th Sept 1997

  $h->{InactiveDestroy} = 1; now works reliably (with DBI 0.90).
  Makefile.PL changed for Oracle8. Thanks to Philippe Vanhaesendonck.
  Long params now work. Thanks to Michael Harvey.
  (Long params don't yet work for inout params.)
  AutoCommit flag now per-dbh. Thanks to Irving Reid.
  Fixed panic: _dbd_rebind_ph when binding an undef.
  Added $dbh->ping method (for Apache::DBI users).
  Some field-level fetch errors didn't cause the fetch to fail
  (the field was simply set undef).
  LongReadLen now works (if $Oraperl::ora_trunc unset or <= 0)
  LongTruncOk now works (for non oraperl mode handle).

Changes in DBD::Oracle 0.46 (Oraperl 1.34), 20th June 1997

  Fixed Makefile.PL to work with 5.004_01.
  Some VMS support from Dan Sugalski <sugalsd@stargate.lbcc.cc.or.us>
  If ORACLE_HOME isn't set, Oracle.pm no longer tries to guess it.
  bind_param_inout now checks for read-only variables.
  Requires DBI 0.84.

Changes in DBD::Oracle 0.45 (Oraperl 1.33), 16th June 1997

  A $dbh DESTROY without an explicit disconnect does a rollback.
  Note that this may 'break' existing 'lazy' code but is completely
  essential for robust applications. See comments in Oracle.xs.

  Added Makefile.PL changes from Eric Bartley and others.
  The changes should fix build problems for Oracle 7.3.x.

  Requires DBI 0.83.

  Oraperl now uses DBI->connect and thus works with DBI 0.81 to
  automatically support Apache without requiring script changes.

  Reworked parameter binding in preparation for future changes.
  - mutated placeholder values are now automatically rebound.
  - in/out vars that become undef/null after binding now work.
  - transparent support for longs should be easier to implement.

  Added Win32 support from Jeff Urlwin.

  Added some documentation to DBD::Oracle for 'perldoc DBD::Oracle'.

  Most tests now converted to standard t/*.t format.
  Added $sth->{NULLABLE}->[$field].
  Added private plsql_errstr method: $txt=$dbh->func('plsql_errstr')
  to fetch PL/SQL error messages. Thanks to Bob Menteer.
  Added $sth->{ora_pad_empty} and ORAPERL_PAD_EMPTY env var
  for better compatibility with old oraperl.
  Added $sth->{AutoCommit} FETCH.
  Added $sth->{ChopBlanks} (but not yet tested).
  No longer asks Oracle for text of login failure message since
  that can cause oracle's code to hang (sigh). We provide fake text
  for the most common errors and a useful default for the rest.
  You can set DBD_ORACLE_LOGIN_ERR env var to revert to old behaviour.

    The Copyright terms for DBD::Oracle have changed and now read as follows:
  You may distribute under the terms of either the GNU General Public
  License or the Artistic License, as specified in the Perl README file,
  with the exception that it cannot be placed on a CD-ROM or similar media
  for commercial distribution without the prior approval of the author.

Changes in DBD::Oracle 0.44 (Oraperl 1.30), 14th Jan 1997

  Fixed leak in read_blob (thanks to Jurgen Botz for the patch).
  Improved automatic cache sizing (so better default caching).
  Negative cache size specifies desired cache/transfer size in bytes.
  Added $rowid = $csr->{ora_rowid} attribute (untested, please test).
  (Use via $csr->bind_param(1, $rowid, { ora_type => 11 });)
  Queries returning LONG's are no longer cached (so there's no
  need to set the cache to 1 explicitly to get read_blob to work).
  Added a test using string type with bind_param_inout in test.pl.
  Worked around the rather sad VMS linker case insensitivity.
  Worked around VMS linker length warning on XS...disconnect_all.
  Makefile.PL deletes non-existant files from $(COMPOBJS)
  (thanks to aburlison@cix.compulink.co.uk for the original patch)

Changes in DBD::Oracle 0.43 (Oraperl 1.30), 29nd Oct 1996

  Fixed serious 'false ora_errno 1 after short select' bug.
  Worked around oracle bug that makes cda->ft unreliable.
  Do not use DBD::Oracle 0.41 or 0.42.
  Cursors are now 'describe'd at prepare time thus making
  NUM_OF_FIELDS always available. Describe does nothing for
  non-select operations. NUM_OF_FIELDS > 0 is now used to
  select between oexec() and oexfet() in execute().
  Added more internal debugging. Improved test.pl.

Changes in DBD::Oracle 0.42 (Oraperl 1.30), 28nd Oct 1996

  Fixed serious 'cache empty after re-bind' bug.
  Do not use DBD::Oracle 0.41.
  Implemented oexfet (combined execute and cache fetch) for
  select operations. This is a further significant speed up.
  Many selects now make only one trip to Oracle (after prepare)
  which combines the execute and fetching multiple rows.

Changes in DBD::Oracle 0.41 (Oraperl 1.30), 22nd Oct 1996

  Added the long overdue row cache to DBD::Oracle.
  (Thanks to Reetnem@aol.com for providing a patch that prompted
  me to complete the work.)
  Oraperl $ora_cache and cache parameter to ora_open now work.
  Default cache size is adjusted automatically for row width.
  Major reworking of field buffer memory management.
  Added a more internal debugging.
  Further updates to the README files.

Changes in DBD::Oracle 0.40 (Oraperl 1.29), 14th Oct 1996

  WARNING - This release contains significant changes to the
  placeholding binding code. You should test it carefully
  before using in live systems.

  Implemented PL/SQL output values via $sth->bind_param_inout.
  See the code at the end of test.pl for example usage.

  Binding is now implemented using obndra rather than obndrv.
  This may have a subtle effect when matching char fields
  against placeholders with trailing spaces.

  Fixed bind_param ora_type attribute. Thanks to Stephen Zander
  for the patch.  Updated README's. Added README.longs.

Changes in DBD::Oracle 0.39 (Oraperl 1.29), 23rd Sep 1996

  Fix for DEC "target := MACRO = string" Makefile syntax.
  Added README notes from Dave Moellenhoff, Lou Henefeld and others.
  Added README.login from James Taylor.
  Added README.client with various notes about building DBD::Oracle
  on minimaly configured client systems.
  Extra parameters to ora_do are now passed to DBI's do().
  (This is an extension to the original oraperl ora_do.)

Changes in DBD::Oracle 0.38 (Oraperl 1.28), 22th Aug 1996

  Overhaul of Makefile variable parsing. Should now cope with
  complex variables which expand to nested shell escapes.
  Try perl Makefile.PL -v to watch the fun.
  Updated README, Makefile.PL and test.pl messages for clarity.
  Fixed possible memory corruption in dbd_bind_ph().

Changes in DBD::Oracle 0.37 (Oraperl 1.28), 25th July 1996

  Fixed Makefile.PL for Oracle 7.3.2.
  Fixed $num_fields = ora_fetch($csr) before first fetch for
  	queries with bind vars.
  Fixed occasional core dump on global destruct.

Changes in DBD::Oracle 0.36 (Oraperl 1.28), 10th July 1996

  Fixed bind_param ora_type attribute.
  Fixed preparse to allocate enough memory for worst case.
  Fixed broken HP-UX 10 check in Makefile.PL.
  Other assorted Makefile.PL improvements.
  (Many thanks to those who sent in fixes.)

Changes in DBD::Oracle 0.35 (Oraperl 1.28), 21st June 1996

  Fixed broken Solaris 2.5 check in Makefile.PL.
  Added ld path to the log.

Changes in DBD::Oracle 0.34 (Oraperl 1.28), 21st June 1996

  Workaround Solaris 2 bug #1224467 (_rmutex_unlock).
  With many thanks to James Taylor.

  Added 'Bad free()' warning suppression to ora_logon and
  ora_logoff(). Setting the DBD_DUMP environment variable
  will trigger a (handy for me) core dump if a Bad free
  warning is detected.

  Further additions to the README about Bad free()'s.

Changes in DBD::Oracle 0.33 (Oraperl 1.27), 19th June 1996

  Added Makefile.PL -g option to enable debugging.
  Added Makefile.PL -s symbol_name option to search for symbols.
  Reorganised the way Makefile.PL uses MakeMaker liblist code.
  Oraperl defaults to the 'safe' (normal) mode of using the DBI.
  Oraperl uses sigtrap on SEGV & BUS to give a perl stack trace.
  Added README notes about -g option, core files and stack traces.
  Small change to $dbname/$user/$passwd logic in connect.

Changes in DBD::Oracle 0.32 (Oraperl 1.25), 30th May 1996

  Fixed memory leak when FETCH'ing attributes.
  Fixed Makefile.PL FileHandle problem (forgot 'use FileHandle;').
  Enhanced Makefile.PL support for Oracle 7.3.

Changes in DBD::Oracle 0.31 (Oraperl 1.25), 20th May 1996

  Makefile.PL for HP-UX now defaults to dynamic for hpux >= 10.

  execute (ora_bind/ora_do) now returns undef on error or the
  number of rows affected (0 is returned as 0E0, hence true, for
  okay but no rows affected or no row count available/applicable).
  This matches the oraperl version 2.4 behaviour.

  Made an attempt at supporting Oracle 7.3 (e.g. include's in proc.mk)
  Please let me know if it works (else supply patches to fix it :-)

  Fixed small memory leak in ora_titles etc functions.

Changes in DBD::Oracle 0.30, 7th May 1996

  THE ORAPERL EMULATION LAYER IS NOW FORMALLY RELEASED (NO LONGER ALPHA).

  Note that the underlying DBI and DBD::Oracle interfaces remain alpha
  because they are still subject to (possibly significant) change.

  Oraperl v2 used to return the string 'OK' to indicate success
  with a zero numeric value. The Oraperl emulation now uses the
  string '0E0' to achieve the same effect since it does not cause
  any -w warnings when used in a numeric context.

  Fixed typecast warning (s/safefree/Safefree).
  Automatically sets/resets ORACLE_HOME from oratab value for sid.
 
  TO DO: Automatic configuration from Oracle 7.3 is not yet working 
  (Oracle have reorganised the makefiles yet again!).

Changes in DBD::Oracle 0.29, 2 March 1996

  Fixed Makefile.PL to get DBIXS.h from right spot.
  Changes to suit perl5.002 and site_lib directories.
  Detects old versions ahead of new in @INC.
  Random tidy-ups.

Changes in DBD::Oracle 0.28, 29 Jan 1996:

  Minor release for Perl5.002 (beta2 or later).
  Requires Perl5.002 and DBI 0.66;

  Only functional change is to suppress (rare) 'handle not setup'
  warnings unless debugging.

Changes in DBD::Oracle 0.27, 16 Nov 1995:

  Improved oraperl compatibility in assorted ways.
  Added the original oraperl manual to Oraperl.pm as pod.
  (perldoc Oraperl will display the manual).
  The manual highlights remaining differences in the emulation.
  Added original oraperl examples into oraperl.ex directory.

  Improved error reporting in test.pl.
  Removed some internal limits.
  Renamed readblob to blob_read and fixed return value.
  Implemented $sth = $dbh->tables method (see DBI changes file).
  Uses $Config{archlibexp} not $Config{archlib} in makefile.PL
  Requires DBI-0.65.

  I've still not got around to implementing a row cache (array
  fetch) but it's next on my list.

  This should be the last alpha release of the oraperl emulation.
  (The DBD::Oracle module itself will remain alpha for awhile yet.)


Changes in DBD::Oracle 0.26, 23 Oct 1995:

  Removed error message (sql) size limits in parse and ora_error.
  Fixed FETCH NUM_OF_PARAMS so it doesn't trigger a describe.
  The ora_lengths and ora_types attributes work in non-oraperl mode.


Changes in DBD::Oracle 0.25, 26 Aug 1995:

  User visible changes:

  Fixed bug in parsing '?' style placeholders.
  $sth->bind_param now checks for a too long LONG type string.
  $sth->prepare now takes attributes:
  	ora_parse_lang  => 0 | 1 | 2  (v6, auto v6/v7, v7)
  	ora_parse_defer => 0 | 1      (control defered parsing)

  Other changes to be propogated to other drivers:

  Added usage of new DBD_ATTRIB_* macros to XS and C code.
  dbd_bind_ph return value inverted to make it consistent.
  Added braces around XSRETURN_UNDEF in execute.
  Checked for describe failure in FETCH.
  Removed NumParams since it's now called NUM_OF_PARAMS in DBI.
  Updated NEED_DBIXS_VERSION in Oracle.h


Changes in DBD::Oracle 0.24, 22 Aug 1995:

  User visible changes:

  $sth->bind_param method implemented (needs testing :-)
  and new DBI $sth->bind_col* methods work for DBD::Oracle.

  Other changes to be propogated to other drivers:

  - Slight change to STORE functions to allow them to return status
    if called as $h->STORE(...).

  - Revised signature of dbd_bind_ph function and added a bind_param
    method for it. Prototype moved from dbdimp.h to Oracle.h

  - Revised execute method to use modified dbd_bind_ph function and
    remove remaining oracle specifics.

  - imp_xxh_t structures first element now called 'com' not 'dbihcom'
    and new DBI macros used to access fields.


Changes in DBD::Oracle 0.23, 18 Aug 1995:

  Fixed Oraperl.pm debug which was left on by default by accident.
  Added small patches from Davide.Migliavacca@inferentia.it for
  longs (dbtype_is_long, dbd_describe and dbd_st_readblob).
  Added svr4 hints from Alan Burlison <aburlison@cix.compulink.co.uk>
  Changed dbd_describe to return true for success (to be consistent).


Changes in DBD::Oracle 0.22, 17 Aug 1995:

  Much more maturity, in line with the required DBI-0.60 release.
  The .xs file is now very 'clean'. It's an excellent base for
  developing other drivers. See notes in the DBI Changes file.

  The oraperl &ora_do should be working now (along with $sth->do()).
  It does not leak (as far as I can tell).

  This release is stable enough for general use again (like 0.20).
  Please test heavily.


Changes in DBD::Oracle 0.21, 15 Aug 1995:

  NOTE: THIS IS AN UNSTABLE RELEASE!
  It requires the closely related DBI 0.59 release.
  See Changes file in that release.
  Major reworking of internal data management!

  Only execute and fetchrow have yet to move into dbdimp.c.
  These were kept back since I plan other associated changes.

  Known problems:
  Warning mode is on by default so certain oraperl coding
  styles cause warnings such as:
      Statement handle ... destroyed without finish() at ...
      disconnect(...) invalidates 1 associated cursor(s) at ...
  In future oraperl mode handles will have those warnings disabled.
  ...other changes to numerous/minor to mention

Changes in DBD::Oracle 0.20, 1 Aug 1995:

  Fixed core dump when binding an undef (treated as a NULL)
  Binding a string longer that 2000 bytes will use LONG type.
  Workaround OSF makefile and oratype.h problems
  PL/SQL := construct will no longer confuse dbd_preparse()

Changes in DBD::Oracle 0.19, 21 June 1995:

  Added $VERSION
  disconnect_all now gives error 'not implemented'.
  Reworked memory management, imp_dbh's are cached.
  imp_dbh_t now has an in_use flag and generation counter.
  st::DESTROY now checks its imp_dbh for validity.
  &ora_do() now returns "OK" for 0 rows (as per oraperl).
  Reworked logging to use DBILOGFP macro.
  Now test code added to loop through logon/prep/fin/logoff.
  

Changes in DBD::Oracle 0.18:

  Makefile.PL: HPUX now builds with LINKTYPE=static automatically.
  Fixed errors on logout/global destruction.
  Added logout/global destruction test to test.pl.
  Changed Oraperl.pm default mode from safe to fast (see func_ref()).
  Added platform who's-who list to README.
  Added $sth->readblob($field, $offset, $length [, \$dest) method.
  (You need to add the following after line 80 in DBI/DBI.pm:
     'readblob' =>   {'U'=>[4,5,'$field, $offset, $len [, \\$buf]']},
  in order to access the new readblob method.)