DBD::ODBC 1.45 released

[email protected] ("Martin J. Evans") Tue, 29 Oct 2013 12:00:07 +0000
Newsgroups perl.dbi.dev,perl.dbi.users,perl.dbi.announce
Message-ID <[email protected]>
I've just uploaded DBD::ODBC 1.45 to the CPAN. As always I'd draw your attention to a few small changes in behaviour. The changes since 1.43 are listed below but I need to warn you about an upcoming change first.

WARNING - PLEASE READ:
=====
The next development cycle of DBD::ODBC will contain signficant changes to the way unicode strings in your Perl scripts are inserted into CHAR and VARCHAR columns. In an attempt to write up exactly how this all works (see https://github.com/mjegh/dbd_odbc_sql_server_unicode and http://www.mail-archive.com/[email protected]/msg07364.html) I have discovered that unicode strings are not being inserted into CHAR/VARCHAR columns correctly in the unicode build of DBD::ODBC. There may also be changes to how unicode strings are read back from the database but I have not evaluated that yet.

Please make sure you keep an eye out of DBD::ODBC development releases 1.46_N and ensure you test them before the next full release is made. In the mean time if you are using unicode with DBD::ODBC and have any comments, have hit any strange issues or are using any workarounds I strongly urge you to contact me now before I get too far into these changes.
=====

Thanks to everyone who has contributed with code or advice.

Here are the changes since 1.43:

=head2 1.45 2013-10-28

   [CHANGE IN BEHAVIOUR]

   There is no intentional change in behaviour in this release but I'm
   adding a warning that the next development release is highly liking
   to contain some significant unicode changes in behaviour to fix some
   bugs which have been around for quite a long time now.

   [BUG FIXES]

   If an SQLExecute ODBC API call returned SQL_NO_DATA DBD::ODBC was
   still calling SQLError (which was a waste of time).

   Since 1.44_1 odbc_out_connect_string stopped returning anything.

   [MISCELLANEOUS]

   Added another link to resources for supplementary characters.

   Added 1 more test to 20SqlServer.t for update statement.

   Small changes to 20SqlServer.t test to skip some tests and note the
   problem if SQLExecute returns SQL_NO_DATA on a non searched update.

=head2 1.44_4 2013-10-16

   [BUG FIXES]

   Fix method redefinition warnings in threads on Perl >= 5.16 thanks
   Dagfinn Ilmari Mannsåker

   [MISCELLANEOUS]

   Changed this Changes file to be closer to the version 0.03 change
   file spec.

   Added t/version.t test.

   Added recommends Test::Version.

   Updates to the odbc_more_results pod to help clarify its use after
   some confusion was seen in a perlmonks thread.

=head2 1.44_3 2013-10-11

   [CHANGE IN BEHAVIOUR]

   If you attempt to set the ReadOnly attribute and the underlying
   ODBC driver does not support this (SQL_SUCCESS_WITH_INFO and "option
   value changed" is returned) a warning is issued. However, until RT
   89015 "You cannot issue a warning in the STORE method" in DBI is
   resolved you won't get this warning. As DBI 1.628 it is not
   resolved. I've only seen the SQLite ODBC driver do this.

   If you set ReadOnly and the underlying ODBC driver does not
   support this then any subsequent attempts to fetch the ReadOnly
   attribute will return the value you set.

   [BUG FIXES]

   The 82_table_info test assumed all database and ODBC Drivers
   supported catalogs and schemas (some don't). Use get_info to
   find out if catalogs and schemas are supported before
   running these tests.

   The rt_79190.t could incorrectly fail if your test DSN contained
   the DRIVER attribute.

   [MISCELLANEOUS]

   Added RedHat spec file to examples courtesy of Michiel Beijen.

   Added "use strict" to FAQ/Changes etc to quieten kwalitee test.

   Added a workaround in the test suite for a probable bug in the
   postgres ODBC driver which does not return COLUMN_SIZE from
   SQLGetTypeInfo. It also issues a warning.  See
   http://www.postgresql.org/message-id/[email protected]

=head2 1.44_3 2013-10-11

   [MISCELLANEOUS]

   Skip 70execute_array_native.t test if MS Access - even if behind an
   ODBC Bridge.

   Fixed some compiler warnings when attempting to print/trace SvCUR.

=head2 1.44_2 2013-09-07

   [BUG FIXES]

   When table_info was called with a '%' for any one of the catalog,
   schema or type arguments with the rest all '' (the empty string),
   only a list of catalogs, schemas or types should be returned. It was
   not doing that as it was changing empty strings to undef/NULL.

   pod for odbc_lob_read had an example only saying lob_read.

   TYPE attribute for odbc_lob_read was actually coded as Type.  It is
   now as documented.

   The example lob_read.pl had the TYPE set to 999 from when I was
   testing it but it got checked in like this.

   MANIFEST contained column_info.pl but the file was coltest.pl

   [MISCELLANEOUS]

   Fixed RT 86379 - spelling mistakes in ODBC.pm and FAQ - thanks
   to David Steinbrunner.

   Added 82_table_info.t test.

   Added 87_odbc_log_read.t test.

=head2 1.44_1 2013-06-06

   Moved from subversion to github as svn.perl.org is closing down.
   Changed docs to show new repository.

   [BUG FIXES]

   Fixed RT 84450 - Database Handle Attribute Fetch broken. Thanks to
   Stephen Oberholtzer for finding and supplying patch.

   Fixed problem with attributes on bind_col not being sticky. You'll
   probably only see this if you are using fetchall_arrayref with a
   slice and setting TYPE or attributes in bind_col first.

Martin