1.61 2020-01-30
[BUG FIXES]
Fix 12blob.t test by pali
Fix searching for ODBC libraries in system by pali (#15)
[ENHANCEMENTS]
use PERL_NO_GET_CONTEXT for more performance by markusbeth (#13)
[MISCELLANEOUS]
Fix travis builds for older Perls by pali
Upstream changes:
1.60 2018-10-31
[BUG FIXES]
Merged pull request 11 from audun which fixes some issues with the AutoCommit flag
on commit and rollback.
[MISCELLANEOUS]
Merged pull request 10 from vadz which fixed typo (affecting license) in README.md.
Upstream changes:
1.56 2016-10-06
Full release of the 1.53 development series
One version skipped because of indexing problems.
1.53_2 2016-02-03
[MISCELLANEOUS]
Add new FAQs
1.53_1 2015-10-16
[BUG FIXES]
Strictly speaking this is a bug fix to DBI and not DBD::ODBC but DBI
now supports 64 bit row counts where an IV in perl is 64 bits. However, it
necessitated changes to DBD::ODBC to pick up the fix. odbc_rows (my workaround
since 2012) is still supported but should no longer be required so long as you
use this DBD::ODBC and DBI 1.633_92 or above.
[INTERNALS]
Removed dbd_st_rows and now setting DBIc_ROW_COUNT.
[DOCUMENTATION]
Add tables and table_info section to deviations from the DBI spec.
[MISCELLANEOUS]
Change column name in t/rt_101579.t as "method" is a reserved word
in. Teradata Thanks to Zhenyi Zhou.
Remove duplicate dynamic_config from META.yml.
Upstream changes:
1.52 2015-04-15
[MISCELLANEOUS]
Changes to the test suite to make it run better with Postgres thanks
to Greg Sabino Mullane.
1.51_4 2015-01-18
[BUG FIXES]
Numerous errors in the test suite (with SQLite ODBC driver) mostly down to not
creating the test table first.
[MISCELLANEOUS]
Try and make the test suite run ok for SQLite ODBC driver so I can use it
in travis-ci.
1.51_3 2015-01-17
[BUG FIXES]
RT101579 - using bound input parameters for numeric columns (e.g.,
SQL_NUMERIC) only works the first time and will quite likey fail
with "string data, right truncation" on the second and subsequent
calls to execute. Thanks to Laura Cox for finding.
1.51_2 2014-11-19
[BUG FIXES]
The table_info method (ANSI version only) was incorrectly passing
the table name for the type argument. I think this bug was
introduced last year.
1.51_1 2014-11-14
[BUG FIXES]
RT100186 - handle VARBINARY(MAX) parameters with SQL Server native
client. Identify "libmsodbcsql*" as the MS ODBC Driver for Linux as
there are some specific workarounds for MS Native Client ODBC driver.
Problems found with existing distfiles:
distfiles/D6.data.ros.gz
distfiles/cstore0.2.tar.gz
distfiles/data4.tar.gz
distfiles/sphinx-2.2.7-release.tar.gz
No changes made to the cstore or mariadb55-client distinfo files.
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
---------------------
1.50 2014-07-25
[BUG FIXES]
The 80_odbc_diags.t test could fail if a driver fails a table does
not exist test in the prepare instead of the execute.
1.49_4 2014-07-08
[BUG FIXES]
Fixed sql_type_cast.t test which assumed column aliases which stay
lowercase.
Fixed 87_odbc_lob_read.t test which did not bow out of the test
properly if the database was not MS SQL Server.
[DOCUMENTATION]
Revised the query notification example and documentation.
Added a link to a better Query Notification article.
1.49_3 2014-05-01
[CHANGE IN BEHAVIOUR]
As warned years ago, this release removes the odbc_old_unicode attribute.
If you have a good reason to use it speak up now before the next non-development
release.
[BUG FIXES]
Fix rt89255: Fails to create test table for tests using PostgreSQL odbc driver.
Change test suite to fallback on PRECISION if COLUMN_SIZE is not found.
[ENHANCEMENTS]
Added support for MS SQL Server Query Notification. See the new
section in the pod.
Added a currently undocumented (and experimental)
odbc_describe_param method on a statement handle which takes a
parameter number as the only argument and returns an array of the
data type, parameter size, decimal digits and nullable (as per
SQLDescribeParam).
[DOCUMENTATION]
Added FAQ on truncated column names with freeTDS.
[MISCELLANEOUS]
I have removed the "experimental" tag for odbc_getdiaffield and odbc_getdiagrec
methods.
1.49_2 2014-04-26
[BUG FIXES]
Change to data_sources in 1.49_1 could lead to a compile error since
data_sources was not returning a value if an error occurred.
1.49_1 2014-04-25
[BUG FIXES]
If you had a lot of DSNs on Windows (more than 280 but it depends on
the length of their names) and called the data_sources method it
could crash your script. Code internally changed to stop putting the DSNs
returned on the stack.
[CHANGE IN BEHAVIOUR]
As warned years ago, the private data_sources method has been
removed - use DBI one instead.
[MISCELLANEOUS]
Added FAQ entry of maximum number of allowed parameters.
List just of date for old changes, see ChangeLog in source, thank you.
1.48 2014-03-03
1.47 2014-02-19
1.46_2 2013-12-17
1.46_1 2013-11-16
1.45 2013-10-28
1.44_4 2013-10-16
1.44_3 2013-10-11
1.44_3 2013-10-11
1.44_2 2013-09-07
1.44_1 2013-06-06
1.43 2013-03-06
1.42_5 2013-01-25
1.42_4 2013-01-21
1.42_3 2013-01-17
1.42_2 2012-12-17
1.42_1 2012-12-12
1.42_0 2012-11-28
1.41 2012-10-23
1.40_3 2012-10-08
1.40_2 2012-09-06
1.40_1 2012-09-04
1.39 2012-07-07
1.38_3 2012-06-25
1.38_2 2012-05-24
1.38_1 2012-05-19
1.37 2012-04-07
1.36_2 2012-03-31
1.36_1 2012-03-21
1.35 2012-03-06
1.34_7 2012-03-02
1.34_6 2012-02-27
1.34_5 2012-02-17
1.34_4 2012-02-05
1.34_3 2012-02-03
1.34_2 2012-01-25
1.34_1 2011-12-11
1.33 2011-12-01
1.32_5 2011-11-24
1.32_4 2011-11-22
1.32_3 2011-11-15
1.32_2 2011-10-22
1.32_1 2011-06-24
* 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.
Changes 1.30_7:
* 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.
* 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.
Upstream changes:
Changes in DBD::ODBC 1.25 September 22, 2010
* Official release of 1.25 combining all the changes in the 1.24_x
development releases.
Changes in DBD::ODBC 1.24_6 September 16, 2010
* rt 61370 - default XML type parameters in SQL Server to SQL_WCHAR so
they accept unicode strings.
Changes in DBD::ODBC 1.24_5 September 15, 2010
* Fixed missing SvSETMAGIC on a bound scalar which was causing length()
to return the wrong result - see http://www.perlmonks.org/?node_id=860211
and a big thank you to Perl Monks and in particular ikegami.
* Changed bind_col so it actually pays attention to the TYPE attribute as
you could not override the bind type of a bound column before.
Changes in DBD::ODBC 1.24_4 September 8, 2010
* Left a sv_undef in - thanks smoke testers for finding that.
* Change sprintf to snprintf for safety.
Changes in DBD::ODBC 1.24_3 September 6, 2010
* Added note from Robert Freimuth for obtaining the last insert ID in
MS Access.
* Changed all &sv_yes/&sv_no occurrances in XS to PL_sv_yes/PL_sv_no as
the originals have now gone from blead Perl.
* Minor change to fix missing newline in trace output.
* Added a FAQ entry for how "use regional settings" in MS SQL Server
breaks things.
Changes in DBD::ODBC 1.24_2 July 23, 2010
* Fix rt57957 reported by Marc Prewitt. DBD::ODBC was not ignoring named
placeholders and ? inside comments. Comments are deemed as text between
"/*" and "*/" (if not in a literal) and line comments begin with "--".
* Added a FAQ on procedures not completing in MS SQL Server. Thanks to
Peter Rabbitson for hitting this problem and reminding me I'd seen it a
couple of times before.
* Added a FAQ on equality comparisons with ntext columns.
* Added pod for last_insert_id which is not currently supported.
* Fix bug where if SQLMoreResults was called and failed it was not reported.
* Removed some unused fields from the fbh structure which should save a
little memory for each column in a result-set.
* Started adding support for DBI's DiscardString and StrictlyTyped but not
complete yet so don't use them yet.
* Added experimental odbc_lob_read method - see pod. Thanks to tye and
ikegami on perlmonks for pointing out some problems with my initial
implementation.
* Moved the binding of columns to the first call to fetch instead of after
execute is called as it prevents bind_col overrriding the type used for
binding and I needed it to support odbc_lob_read. This may have undesired
affects so any testing of this release would be appreciated.
* Added bind_col method so DBD::ODBC can support attributes on a bind_col
call.
* Removed support for DBI's blob_read - it was totally flawed and did not
work at all. May replace in the future.
* Added support for MS SQL Server XML type (SQL type -152). See rt 59621.
* Added note on do method implementation in DBD::ODBC and how some may
consider it to deviate from the DBI specification.
Changes in DBD::ODBC 1.24_1 May 27, 2010
* Corrected pod and private attributes for the odbc_SQL_DRIVER_ODBC_VER
attribute which was documented as SQL_DRIVER_ODBC_VER.
* Added FAQ on pauses on statement destruction when all the result-set
has not been retrieved (mostly freeTDS and MS SQL Server ODBC Driver).
* Fixed bug introduced in 1.24 where if you are using MS SQL Server, and
you are preparing, binding placeholders and re-executing multiple times
you may get a "Invalid character value for cast specification" error.
Thanks to anonymous for spotting this and producing a standalone example
of the problem that made it so much easier to find.
Changes in DBD::ODBC 1.24 May 14, 2010
* Minor change in Makefile.PL to only use NO_META if ExtUtils::MakeMaker
is at least at version 6.10. Reported by Chunmei Wu.
* Minor change to test rt_50852 which had wrong skip count.
Changes in DBD::ODBC 1.23_5 May 6, 2010
* Added advice from Jan Dubois (ActiveState) on building DBD::ODBC for
ActivePerl (see README.windows).
* rt56692. Fix spelling mistake in DBD::ODBC pod - thanks to Ansgar
Burchardt.
* Added a 7th way to help documentation - become a tester.
* Hopefully fixed problems building on windows 32 bit platforms that have
old sql header files not mentioning SQLLEN/SQLULEN.
Changes in DBD::ODBC 1.23_4 April 13, 2010
* Added more FAQs.
* Small optimization to remove calls to SQLError when tracing is not
turned on. This was a bug. We only need to call SQLError when SQLExecute
succeeds if there is an error handler or if tracing is enabled. The test
was for tracing disabled!
* Large experimental change primarily affecting MS SQL Server users but it
does impact on other drivers too. Firstly, for MS SQL Server users we no
longer SQLFreeStmt(SQL_RESET_PARAMS) and rebind bound parameters as it
is causing the MS SQL Server ODBC driver to re-prepare the SQL. Secondly
(for all drivers) we no longer call SQLBindParameter again IF all the
arguments to it are the same as the previous call. If you find something
not working you better let me know as this is such a speed up I'm going
to go with this unless anyone complains.
* Minor change to avoid a double call to SQLGetInfo for SQL_DBMS_NAME
immediately after connection.
* Small change for rt 55736 (reported by Matthew Kidd) to not assume a
parameter is varXXX(max) if SQLDescribeParam failed in the Microsoft
Native Client driver.
Changes in DBD::ODBC 1.23_3 March 24, 2010
* Minor changes to Makefile.PL and dbdimp.c to remove some compiler
warnings.
* Fix some calls to SQLMoreResults which were not passing informational
messages on to DBI's set_err. As you could not see all the informational
messages from procedures, only the first.
* Fix minor issue in 02simple test which printed the Perl subversion
before the version.
* Changes to 20SqlServer.t to fix a few typos and make table names
consistent wrt to case - (as someone had turned on case-sensitivity in
SQL Server) Similar changes in rt_38977.t and rt_50852.t
Changes in DBD::ODBC 1.23_2 January 26, 2010
* Fixed bug in Makefile.PL which could fail to find unixODBC/iODBC header
files but not report it as a problem. Thanks to Thomas J. Dillman and
his smoker for finding this.
* Fixed some compiler warnings in dbdimp.c output by latest gcc wrt to
format specifiers in calls to PerlIO_printf.
* Added the odbc_force_bind_type attribute to help sort out problems with
ODBC Drivers which support SQLDescribeParam but describe the parameters
incorrectly (see rt 50852). Test case also added as rt_50852.t.
Changes in DBD::ODBC 1.23_1 October 21, 2009
* Makefile.PL changes: some formatting changes to output warn if unixodbc
headers are not found that the unixodbc-dev package is not installed use
$arext instead of "a" pattern match for pulling libodbc.* changed warn
if DBI_DSN etc not defined change odbc_config output for stderr to
/dev/null missing / on /usr/local wheb finding find_dm_hdr_files()
* New FAQ entries from Oystein Torget for bind parameter bugs in SQL
Server.
* rt_46597.rt - update on wrong table
* Copied dbivport.h from the latest DBI distribution into DBD::ODBC.
* Added if_you_are_taking_over_this_code.txt.
* Add latest Devel::PPPort ppport.h to DBD::ODBC and followed all
recommendations for changes to dbdimp.c.
* Added change to Makefile.PL provided by Shawn Zong to make
Windows/Cygwin work again.
* Minor change to Makefile.PL to output env vars to help in debugging
peoples build failures.
* Added odbc_utf8_on attribute to dbh and sth handles to mark all strings
coming from the database as utf8. This is for Aster (based on
PostgreSQL) which returns all strings as UTF-8 encoded unicode. Thanks
to Noel Burton-Krahn.
pkgsrc changes:
- remove patch to detect iODBC correctly after is was applied upstream
Upstream changes:
Changes in DBD::ODBC 1.23 September 11, 2009
- Only a readme change and version bumped to 1.23. This is a full release
of all the 1.22_x development releases.
Changes in DBD::ODBC 1.22_3 August 19, 2009
- Fix skip count in rt_38977.t and typo in ok call.
- Workaround a bug in unixODBC 2.2.11 which can write off the end of the
string buffer passed to SQLColAttributes.
- Fix skip count in rt_null_nvarchar.t test for non SQL Server drivers.
- Fix test in 02simple.t which reported a fail if you have no ODBC
datasources.
- In 99_yaml.t pick up the yaml spec version from the meta file instead
of specifying it.
- Change calls to SQLPrepare which passed in the string lenth of the SQL to
use SQL_NTS because a) they are null terminated and more importantly b)
unixODBC contains a bug in versions up to 2.2.16 which can overwrite the
stack by 1 byte if the string length is specified and not built with iconv
support and converting the SQL from ASCII to Unicode.
- Fixed bug in ping method reported by Lee Anne Lester where it dies if used
after the connection is closed.
- A great deal of changes to Makefile.PL to improve the automatic detection
and configuration for ODBC driver managers - especially on 64bit platforms.
See rt47650 from Marten Lehmann which started it all off.
- Add changes from Chris Clark for detecting IngresCLI.
- Fix for rt 48304. If you are using a Microsoft SQL Server database and
nvarchar(max) you could not insert values between 4001 and 8000 (inclusive)
in size. A test was added to the existing rt_38977.t test. Thanks to
Michael Thomas for spotting this.
- Added FAQ on UTF-8 encoding and IBM iSeries ODBC driver.
- Add support for not passing usernames and passwords in call to connect.
Previously DBD::ODBC would set an unspecified username/password to '' in
ODBC.pm before calling one of the login_xxx functions. This allows the
driver to pull the username/password from elsewhere e.g., like the
odbc.ini file.
Changes in DBD::ODBC 1.22_1 June 16, 2009
- Applied a slightly modified version of patch from Jens Rehsack to improve
support for finding the iODBC driver manager.
- A UNICODE enabled DBD::ODBC (the default on Windows) did not handle
UNICODE usernames and passwords in the connect call properly.
- Updated "Attribution" in ODBC.pm.
- Unicode support is no longer experimental hence warning and prompt removed
from the Makefile.PL.
- old_ping method removed.
- Fixed bug in 02simple.t test which is supposed to check you have at least
one data source defined. Unfortunately, it was checking you had more than
1 data source defined.
- rt_null_varchar had wrong skip count meaning non-sql-server drivers or
sql server drivers too old skipped 2 tests more than were planned.
- Updating package of p5 module DBD::ODBC from 1.21 to 1.22
- Adjusting LICENSE to ${PERL5_LICENSE} according to META.yaml
Upstream changes:
* Changes in DBD::ODBC 1.22 June 10, 2009
Fixed bug which led to "Use of uninitialized value in subroutine
entry" warnings when writing a NULL into a NVARCHAR with a
unicode-enabled DBD::ODBC. Thanks to Jirka Novak and Pavel Richter who
found, reported and patched a fix.
Fixed serious bug in unicode_helper.c for utf16_len which I'm ashamed to
say was using an unsigned short to return the length. This meant you
could never have UTF16 strings of more than ~64K without risking serious
problems. The DBD::ODBC test code actually got a
*** glibc detected *** /usr/bin/perl: double free or corruption
(out): 0x406dd008 ***
If you use a UNICODE enabled DBD::ODBC (the default on Windows) and
unicode strings larger than 64K you should definitely upgrade now.
* Changes in DBD::ODBC 1.21_1 June 2, 2009
Fixed bug referred to in rt 46597 reported by taioba and identified by
Tim Bunce. In Calls to bind_param for a given statement handle if you
specify a SQL type to bind as, this should be "sticky" for that
parameter. That means if you do:
$sth->bind_param(1, $param, DBI::SQL_LONGVARCHAR)
and follow it up with execute calls that also specify the parameter:
$sth->execute("a param");
then the parameter should stick with the SQL_LONGVARCHAR type and not
revert to the default parameter type. The DBI docs (from 1.609)
make it clear the parameter type is sticky for the duration of the
statement but some DBDs allow the parameter to be rebound with a
different type - DBD::ODBC is one of those drivers.