=head1 Changes in DBD-Oracle 1.14    27th March 2003  

  NOTE: OCI 7 and Oraperl will not be supported in future releases.

  Implemented inserting NULL values into LOB fields using placeholders,
    (sponsored by bayerwald-fenster.de thanks to Bernhard Donaubauer).
  Fixed broken get_info() due to missing GetInfo.pm #2274.
  Fixed compiler warnings/errors thanks to H.Merijn Brand.
  Fixed bind_param with array ref to croak not warn, reported by Steven Roels.
  Fixed "Bad hash" error using $sth->{ParamValues} if there were no placeholders.
  Fixed Makefile.PL for more HPUX/Oracle configurations thanks to Lincoln Baxter.
  Simplified MacOS X build thanks to Brook Schofield, see README.macosx.
  Updated README.hpux thanks to H.Merijn Brand, Jay Strauss, and Lincoln Baxter.
  Updated README and README.utf8 with minor changes thanks to Alexey Mahotkin.

=head1 Changes in DBD-Oracle 1.13    14th March 2003  

  Fixed null user issue when using OS Authentication thanks to Christopher R. Baker
  Fixed precision for Raw types in oci7.c thanks to J.D. Laub.
  Fixed LOB code for table names containing $ thanks to Wayne Volkmuth.
  Fixed LOB synonym handling thanks to John Milton.
  Fixed dbms_output_get to be immune to ora_ph_type changes thanks to Michael Fox.
  Fixed to now not treat SUCCESS_WITH_INFO (eg ORA-28011) on connect as an error.

  Updated table_info to decode SYS and SYSTEM to prepend 'SYSTEM ' thanks to Olga Voronina
  Updated table_info and added get_info, foreign_key_info thanks to Steffen Goeldner.

  Added that ShowErrorStatement is now enabled by default.
  Added ParamValues attribute so ShowErrorStatement includes bind_param values.
  Added experimental utf8 support thanks to Stefan Eissing.  See README.utf8
  Added BFILE support thanks to David Hull.
  Added :ora_session_modes export tag for ORA_SYSDBA ORA_SYSOPER constants,
   added ORA_STRING and ORA_CHARZ to :ora_types export tag and added docs
   for ora_ph_type attribute and other doc fixes, thanks to Michael A Chase.
  Added t/cursor.t tests thanks to Jeffrey Horn.
  Added ability to share connections between threads via ora_dbh_share
    attribute, thanks to Gerald Richter.
  Added ability to connect() via 'external process context', for embedding
    Perl DBI into Oracle server, thanks to Jeff Horwitz.

  Documentation changes:
    Updated README.hpux thanks to Lincoln Baxter and Jay Strauss.
    Documented ora_parse_lang, ora_auto_lob, and ora_check_sql prepare()
      method attributes thanks to Michael A Chase.

  Configuration and build related changes:
    Added Win32 support on systems with multiple Oracle Homes thanks To Jeff Urlwin.
    Fixed prototype for constant() thanks to Sreeji K Das.
    Fixed warning in Oraperl.pm with recent perl versions thanks to Ilya V.Rachkov.
    Fixed handling of shell backticks in make output during build rule discovery.
    Fixed Win32 build using gcc thanks to Chris R. Donnelly and Michael A Chase.
    Help HPUX configs by removing -l:libcl.a from liblist, thanks to Frans Postma.
    Assorted improvements to Makefile.PL thanks to Michael A Chase and Stephen Clouse.
    Updated tests and Oraperl.pm to not use old style connect (deprecated in DBI 1.33).


=head1 Changes in DBD::Oracle 1.12   31th August 2001

  Improved LD_RUN_PATH code in Makefile.PL thanks to John Groenveld.
  Improved HPUX code in Makefile.PL thanks to H.Merijn Brand.
  Fixed handle/descriptor name code to be less Oracle version sensitive.
  Updated $dbh->primary_key_info() to new DBI spec thanks to Steffen Goeldner.
  Version 1.11 was skipped (uploaded to PAUSE with an error).

=head1 Changes in DBD::Oracle 1.10   30th August 2001

  Explicitly require DBI version 1.20 (or later).
  Support multiple oracle home's in Win32 registry thanks to Jeff Urlwin.
  Improved build support for Oracle >=8.1.7 (I_SYM) thanks to Stephen Close.
  Fixed LOB bug when writing non-string values thanks to Stephen Close.
  Fixed t/ph_type.t to be better behaved thanks to Ville Skytta.
  Added OCI8 handle/descriptor name to trace output for some API calls.

=head1 Changes in DBD::Oracle 1.09   27th August 2001

  Changed behaviour when OCIStmtExecute() returns OCI_SUCCESS_WITH_INFO:
    used to be treated as OCI_SUCCESS, now also sets $DBI::err/$DBI::errstr
    and will therefore trigger RaiseError/PrintError if they are set.
  Fixed ins/upd of LOBs in views thanks to Tom Moore.
  Fixed reading of CLOBs in wide characters sets.
  Fixed 'inherited AUTOLOAD for non-method DBD::Oracle::ORA_OCI' problem.
  Workaround very long column names causing failure thanks to Martin Busik.
  Added $dbh->primary_key_info() thanks to Steffen Goeldner.
  Added $sth->cancel method thanks to Fredrik Sjoholm.
  Added mention to registry to login failed hint thanks to Tim Callaghan.
  Changed type_info_all VARCHAR2 max length to 4000 if using OCI8.
  Removed use of perl global PL_no_modify to avoid linkage problems.
  Old OCI7 API:
    Fixed OCI7 memory leak from statement handles thanks to Bret Haeler.
    Fixed OCI7 PRECISION for RAW data types thanks to J.D. Laub.
    Fixed old OCI7 LONG buffer overwrite bug thanks to Bruce Templeton.
      (I thought I'd done this before but perhaps now it's done right.)
  Build:
    Fixed default build to set LD_RUN_PATH at build time. Yeah.
    Fixed parsing of Oracle's .mk files to handle += (appending values).
    Fixed detection of 'OCI' dire for Win32 Oracle >=8.1 thanks to many.
    Improved test for gcc in Makefile.PL thanks to Ian Kallen.
    Improved build rule detection thanks to Jonathan Segal.
    Don't merge text from Oracle's .mk into generated Makefile (use -f to reenable).
    Fixed bad test in plsql.t so shouldn't give false negatives.
    Added t/ph_type.t to test placeholder type issues thanks to James Jurach.
    Retested for perl 5.4.4 for possibly the last time. You have been warned.
      In future I'll only be testing on perl >= 5.5.3 and >=5.6.1.
  Documentation:
    Documented workaround for hang in "repetitive connect" test thanks to Alexi Lookin.
      Short version: add bequeath_detach=yes to sqlnet.ora file.
    Documented ora_oratab_orahome connect attribute (Oracle OCI 7 only).
    Documented ora_module_name connect attribute thanks to Renzo Toma.
    Added IRIX linking advice into README.help thanks to Dennis Box.
    Added AIX core dump on disconnect advice into README.help.
    Added docs on how Oracle determines the timezone thanks to Brad Howerter.
    Added 'return cursor function' example to docs thanks to Michael A. Chase
    Added more notes to README.java thanks to Peter Ludemann and Dave C.
    Added more notes to README.login thanks to Geoff Young.

=head1 Changes in DBD::Oracle 1.08 7th August 2001

  Fix Oracle 7 build broken in previous release.
  Fix for 64bit builds thanks to Alan Burlison.
  Fix for 9i Makefile.PL thanks to Dong Wang.
  Added Oracle.ex/curref.pl thanks to Geoffery Young.
  REF types are now returned in a form usable with Oracle::OCI module
    when using Oracle >= 8.1.x (untested at the moment)
  Updated Makefile.PL and README.hpux thanks to Lincoln Baxter.

=head1 Changes in DBD::Oracle 1.07 5th June 2001

  This release is mostly targeted at the needs of the new Oracle::OCI module.
    It's not a general release and not recommended for production use.

  Fixed SCALE/PRECISION/TYPE values for numeric types, including FLOAT,
    to be more correct thanks to Steffen Goeldner.
    NOTE: this may break code that depends on the old values!
  Fixed Win32::TieRegistry and Tie::Registry usage thanks to David Bradford.
  Fixed insert/update of LOBs while AutoCommit enabled.
  Fixed error in 'LOB value truncated' error thanks to Paul Walmsley.
  Fixed old oci7 LONG buffer overwrite bug thanks to Bruce Templeton.
  Fixed ocitrace.h not to trip up some compilers.
  Added table_info() search attribs thanks to Steffen Goeldner and Olga Voronova.
  Implemented some reworking of the placeholder handling, especially
    in relation to the start of some basic array support.
  Updated email and web page details to dbi-users@perl.org and dbi.perl.org.

=head1 Changes in DBD::Oracle 1.06 14th July 2000

  Fixed ora_ph_type attribute to allow 96 or 97.
  Fixed compile failure with Oracle 7.

=head1 Changes in DBD::Oracle 1.05 13th July 2000

  Added $dbh->{ora_ph_type} attribute to define default bind type:
     1=> VARCHAR2,  does strip trailing spaces, embedded \0 bytes okay
     5=> STRING, doesn't strip trailing spaces, embedded \0 ends string
    96=> CHAR,   doesn't strip trailing spaces, embedded \0 okay
    97=> CHARZ,  doesn't strip trailing spaces, embedded \0 ends string?
    The two CHAR types force 'blank-padded comparison semantics'.
    Needs testing and documenting, volunteers most welcome!
  Added (many) typecasts to avoid compiler warnings thanks to Denis Goddard.
  Added ability to pass existing DBD::Oracle select statement handle
    (cursor) back _into_ Oracle as a ref cursor type thanks to Mike Moretti.
    Note that this enables a workaround for closing ref cursors:
    $dbh->do("BEGIN CLOSE :cursor; END;", undef, $sth_ref_csr_to_close);
  Improved Win32 support in Makefile.PL thanks to Michael A. Chase.
  Workaround Win32::TieRegistry FETCH error during global destruction.
  Re-enable row cache by default for OCI8 (can give big speed increase).
  Fixed bug in OCI8 row cache calculation thanks to Greg Stark.

=head1 Changes in DBD::Oracle 1.04 11th July 2000

  Added info on workarounds for Java thread related linker errors
    on Solaris with Oracle 8.1.6. Thanks to Andi Lamprecht.
  Fixed memory leak on connect. Thanks to Jeffrey W. Baker.
  Fixed memory and ref cursor leaks. Thanks to Mike Moretti and John Tobey.
  Fixed SEGV on insert/update or many LOBS. Thanks to Honza Pazdziora.
  Fixed treating SUCCESS_WITH_INFO from finish() as an error.
  Fixed passing of attribs to connect thanks to K.Takaoka.
  Fixed cursor binding example in docs thanks to Michael Chase.
  Build using otrace/demo/atmoci.mk as last resort thanks to Chris Sylvain.
  Improved reliability of "perl Makefile.PL -b" configure option.
  Improved reliability of t/plsql.t cursor tests. Hopefully.
  Improved reliability of ping method.
  Fixed broken SQL type warning in bind_param.

=head1 Changes in DBD::Oracle 1.03 12th July 1999

  Added "perl Makefile.PL -b" configure option. Links DBD::Oracle
    using same linker args as Oracle's own OCI demo applications.
  Added connect("dbi:Oracle:host=foo;sid=bar", ...) syntax.
  Added OCI8 function trace at level 6, useful for Oracle support.
  Added ora_session_mode attribute to connect (eg SYSDBA/SYSOPER).
  Added test for Oracle security problem. See README.sec.
  Updated ora_explain tool to v1.1 thanks to Alan Burlison.
  Contributions from Michael Chase (plus docs from Andy Duncan):
  Documented plsql_errstr & dbms_output_enable/_put/_get.
  Enhanced $dbh->func('plsql_errstr') output.
  Replaced old Oraperl examples with DBI/DBD::Oracle ones.

=head1 Changes in DBD::Oracle 1.02 14th June 1999

  LongReadLen no longer limited to 64KB for OCI 7 & 8!
    But beware of OCI 7 bug when fetching >64KB.
    See t/long.t for more details.
  Fixed OCI7 ref cursor missing data row.
  Fixed OCI8 LOB statement handle leak & improved trace.

=head1 Changes in DBD::Oracle 1.01 8th June 1999

  Enhanced diagnostics in t/long.t test suite.
  Removed byte with high-bit set from t/long.t test data.
  Disable finish if database disconnected or perl is terminating.
  Made t/general.t work with other NLS settings.
  Added Cygwin support thanks to Alexander Smishlajev.
  Fixed 'undeclared identifier' error building with old Oracle's.

=head1 Changes in DBD::Oracle 1.00 4th June 1999

  Increased default row cache size for improved performance.
  Added OCI8 binding of cursors! Sponsored by cp.net.
  Added OCI7 binding of cursors! (Was easier after OCI8 work :-)
  Added OCI8 blob_read (only for LOBs not LONGs) thanks to Jim Lawson.
  Added OCI8 re-authentication thanks to John Tobey.
  Added t/long.t test script for LONG/LONG RAW/CLOB/BLOB handling.
  Length of fetched LONG RAW string now 2 * LongReadLen for OCI7 & 8.
  Fixed LONG fetches being one byte longer than LongReadLen.
  Fixed OCI8 non-reporting of LobWrite error.
  Fixed OCI8 "LongReadLen too small and/or LongTruncOk not set" hint.
  Fixed OCI7 probable cursor leak.
  Fixed ping method to be more robust. This should fix
    the "morning bug" problem with Apache::DBI.
  Fixed t/general.t core dump thanks to Donald Buczek.
  Fixed ora_check_sql prepare attribute (for selects).
  Fetch errors (non-row level) now turn off the Active attribute.

=head1 Changes in DBD::Oracle 0.61, 9th April 1999

  Fixed execute() always returning 0 rows! (with OCI 7).
  Fixed $sth->bind_param(..., SQL_CHAR);
  Assorted minor Makefile.PL improvements.
  Added ora_check_sql attribute to prepare() for OCI8.

=head1 Changes in DBD::Oracle 0.60, 10th March 1999

  Fetching all records now resets Active flag as it should.
  Finally fixed "Can't bind unknown placeholder" (hopefully :-).
  Fixed placeholder parser to ignore comments, thanks to JD Laub.
  Fixed placeholder parser to ignore double-quotes strings.
  No longer changes ORACLE_HOME to match oratab, by default.
  Fixes for OCI 8:
    Fixed selection of very large numbers (132 digits).
    Fixed small memory leak in parameter binding.
    Fixed small memory leak in prepare of statements using LOBs.
    Fixed binding empty strings.
    Fixed OCILobRead error when fetching of zero length LOBs.
    Fixed OCILobWrite of zero length to use OCILobTrim instead.
    Treat SUCCESS_WITH_INFO from OCIStmtExecute as SUCCESS.
    Enabled OCI_CRED_EXT login thanks to Alan Burlison & Jeremy Brinkley.
  Modified hints/svr4.pl - SVR4 users please test.
  Updated Alan Burlison's ora_explain Tk tool to version 1.0.

=head1 Changes in DBD::Oracle 0.59 (Oraperl 1.37), 27th December 1998

  Fixed detection of ambiguous LOB-param-to-table-field assignment
  (previous fix had typo). Only affects multiple LOBs in same table.
  Added support for Oracle 8's "... RETURNING foo,bar INTO :foo,:bar"
  for simple scalar types (not LOBs or arrays) via bind_param_inout.
  Cleaned up the code.
  Improved Oracle 8 library selection code for Win32 (untested).

=head1 Changes in DBD::Oracle 0.58 (Oraperl 1.37), 22nd December 1998

  Fixed detection of ambiguous LOB-param-to-table-field assignment.
  Added bind_param ora_field attribute to disambiguate if needed.

=head1 Changes in DBD::Oracle 0.57 (Oraperl 1.37), 21st December 1998

  Fixed bug preventing fetching LONGs when using OCI 8, better.
  (Oracle bug #641812 not involved. Should work for all 8.0.x)

=head1 Changes in DBD::Oracle 0.56 (Oraperl 1.37), 19th December 1998

  Fixed bug preventing fetching LONGs when using OCI 8.
  (Oracle bug #641812 may still cause failure prior to v8.0.5.)
  Fixed LongTruncOk to work when using OCI 8.
  Fixed bug in table name detection code for OCI8 LOB refetch.
  SCALE & PRECISION work for OCI 7 & 8.

=head1 Changes in DBD::Oracle 0.55 (Oraperl 1.37), 16th December 1998

  Major internal work to support Oracle 8 OCI.
  Oracle 8 LOBs are supported and treated as LONGs (DBD::Oracle works
  hard to hide the complexities of handling Lob Locators for you).
  See Oracle 8 section in the docs for more details.
  Added $sth->{TYPE}.
  SCALE & PRECISION are implemented but return 0 (Oracle bug?).
  DBI 1.02 or later is required.
  Assorted build time Makefile.PL improvements.
  Builds with 5.004_04, 5.005_02 and 5.005_54 (not _53).
  Added "use DBD::Oracle qw(:ora_types);"

=head1 Changes in DBD::Oracle 0.54 (Oraperl 1.37), 14th August 1998

  Added $dbh->type_info_all.
  Fixed $dbh->tables (partly by renaming to new $dbh->table_info).
  data_sources no longer adds abbreviated versions of tnsnames.
  Alan Burlison's whizzo Tk based explain script now bundled.
  Revised workaround for "Can't bind unknown placeholder '3'" errors.
  Doubled default automatic row cache size (now approx 5KB).
  The resetting of Oracle's SIGCHD handler to SA_RESTART can
  now be disabled by setting the env var DBD_ORACLE_SIGCHLD=0.
  Fixed Makefile.PL -c to better avoid shared Oracle lib.

=head1 Changes in DBD::Oracle 0.53 (Oraperl 1.37), 3rd August 1998

  Further build fixes (esp kpudc problem with Oracle 8).
  Now prefers oracle.mk over proc.mk again.
  Only $ENV{ORA_CLIENT_LIB} ||= 'shared' if shared lib exists.
  Builds okay with 5.005-thread (not tested).

=head1 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.

=head1 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).

=head1 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.

=head1 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.

=head1 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

=head1 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).

=head1 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.

=head1 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.

=head1 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)

=head1 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.

=head1 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.

=head1 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.

=head1 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.

=head1 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.)

=head1 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().

=head1 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.

=head1 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.)

=head1 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.

=head1 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.

=head1 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.

=head1 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.

=head1 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.

=head1 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!).

=head1 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.

=head1 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.

=head1 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.)


=head1 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.


=head1 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


=head1 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.


=head1 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).


=head1 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.


=head1 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

=head1 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()

=head1 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.
  
=head1 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.)

=cut
