develooper Front page | perl.dbi.announce | Postings from June 2011

DBD::ODBC 1.31 released

From:
Martin J. Evans
Date:
June 24, 2011 01:14
Subject:
DBD::ODBC 1.31 released
Message ID:
4E03A9A5.7030304@easysoft.com
I have just uploaded DBD::ODBC 1.31 to pause. This is the culmination of 
7 development releases and I thought it was time to do an official 
release. Due to personal issues I am unlikely to be doing another update 
to DBD::ODBC in the near future but if you find issues please report 
them on RT and I'll try my best. The changes since 1.29 are below. There 
are significant changes since the last official release and a few 
changes in behaviour. If you didn't test a development release and it 
now goes wrong I'm sorry but after 7 development releases you had your 
chance. I'm sorry if this sounds harsh but it is notoriously difficult 
to get feedback on development releases, few smokers actually have a 
database set up (but thank you anyway) and it is next to impossible for 
me to cover the dozens of ODBC drivers in existence.

Thank you to all the people who have reported issues, tested releases 
and in particular to the DBIx::Class guys who yet again have provided 
invaluable testing (you know who you are and if we ever meet up it will 
be beers all round on me).

=head2 Changes in DBD::ODBC 1.31 June 21, 2011

   [BUG FIXES]

   Recently introduced test sql_type_cast.t cannot work with DBI less
   than 1.611.

   Minor change to Makefile.PL to avoid use of unitialised warning on
   $ENV{LD_LIBRARY_PATH} in warning when it is not set.

=head2 Changes in DBD::ODBC 1.30_7 June 15, 2011

   [BUG FIXES]

   Some time ago (I don't know when) a few internal errors generated by
   DBD::ODBC got ignored. There are about 5 of them but I seriously
   doubt anyone would hit any other than the data truncated error
   (which is reported by the ODBC driver anyway) and "no select
   statement currently executing". You can see rt_68720.t in the t
   directory for an example of the latter.

   [ENHANCEMENTS]

   An extra argument has been added to the sub associated with
   odbc_err_handler.  The arguments passed to the odbc_err_handler are
   now state (string), error (string), native error code (number) and
   the status returned from the last ODBC API. The status will be
   SQL_ERROR (-1) for errors or SQL_SUCCESS_WITH_INFO (1) for
   informational messages.

=head2 Changes in DBD::ODBC 1.30_6 June 4, 2011

   [BUG FIXES]

   * When DBD::ODBC calls SQLExecDirect (the do method) it was not
     reporting informational diagnostics (SQL_SUCCESS_WITH_INFO) and
     not calling the error handler.

     Arguably, this is a change in behaviour but one I've struggled to
     resolve since in all other cases of warnings DBD::ODBC's error
     handler is called. However, DBI does not call its error handler
     for warnings so was DBD::ODBC wrong to call it's error in the
     first place for warnings? I decided it was better to leave this as
     it is but add checking of SQLExecDirect/do. Apart from anything
     else if DBD::ODBC does not call its error handler for
     informational diagnostics there is no way to retrieve print
     statements etc from procedures.

   * The odbc_describe_parameter.t test could fail with some versions
     of MS SQL Server ODBC Driver. It was down to when
     SQLDescribeParameter is disabled, the column_size passed to
     SQLBindParameter is 0.

   * pod example of odbc_err_handler incorrectly used \$err_handler
     instead of \&err_handler.

=head2 Changes in DBD::ODBC 1.30_5 May 24, 2011

   [BUG FIXES]

   * The change in behavior detailed in 1.30_1 for wide character
     binding was still not working properly (see
     http://rt.cpan.org/Ticket/Display.html?id=67994). It was working
     for SQL_CHAR described columns but not SQL_VARCHAR.

=head2 Changes in DBD::ODBC 1.30_4 May 18, 2011

   [BUG FIXES]

   * Fix issue described in
     http://www.nntp.perl.org/group/perl.dbi.dev/2011/05/msg6567.html.
     If you prepare a statement, disconnect and then try and execute the
     statement you get an error but it does not tell what is wrong.

   [ENHANCEMENTS]

   * Added support for StrictlyTyped and DiscardString to the bind_col
     method.

   [OTHER]

   * Minor changes to META.yml for mailing list, dynamic_config,
     homepage and keywords.

   * The pod was missing = before the heads on a couple of sections in
     "Private DBD::ODBC Functions"

   * TreatAsLob was incorrectly documented as BindAsLob.

=head2 Changes in DBD::ODBC 1.30_3 May 17, 2011

   [BUG FIXES]

   * Made the new odbc_describe_parameters work and added test case.

=head2 Changes in DBD::ODBC 1.30_2 May 16, 2011

   [ENHANCEMENTS]

   * Added the new odbc_describe_parameters attribute.

=head2 Changes in DBD::ODBC 1.30_1 May 12, 2011

   [BUG FIXES]

   * Fixed some compiler warnings shown with -Wall including some
     printf formats that had extra/missing arguments.

   * Fixed t/70execute_array.t which was missing an "order by" in the
     check_data sub which could cause failures for drivers not
     returning the rows in the order they were inserted.

   * Minor fix to Makefile.PL to avoid issuing variable used in void
     context.

   [CHANGE IN BEHAVIOR]

   * DBD::ODBC used to quietly rollback any transactions when
     disconnect was called and AutoCommit was off. This can mask a
     problem and leads to different behavior when disconnect is called
     vs not calling disconnect (where you get a warning). This release
     issues a warning if you call disconnect and a transaction is in
     progress then it is rolled back.

   * DBD::ODBC used to bind char/varchar/longvarchar columns as SQL_CHAR
     meaning that in the unicode build of DBD::ODBC the bound column
     data would be returned 8bit in whatever character-set (codepage) the
     data was in, in the database. This was inconvenient and arguably a
     mistake. Columns like nchar/nvarchar etc were bound as SQL_WCHAR and
     returned as Unicode. This release changes the behaviour in a unicode
     build of DBD::ODBC to bind all char columns as SQL_WCHAR. This may
     inconvenience a few people who expected 8bit chars back, knew the
     char set and decoded them (sorry). See odbc_old_unicode to return
     to old behaviour.

   [ENHANCEMENTS]

   * added -w option to Makefile.PL to add "-Wall" to CCFLAGS and
     -fno-strict-aliasing so I can find warnings.

   * Cope with broken ODBC drivers that describe a parameter as SQL
     type 0.

   [OTHER]

   * Add "disconnect and transactions" to pod describing what DBD::ODBC
     does if you call disconnect with an outstanding transaction.

   * Reorganised FAQ for bound parameter issues and added a lot on
     bound parameter problems.

   * Added new FAQ entry for Firebird

   * Removed some unused variables and added some missing function
     prototypes

Martin



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About