Hello community, here is the log from the commit of package perl-DBD-ODBC for openSUSE:Factory checked in at 2016-11-04 20:59:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-DBD-ODBC (Old) and /work/SRC/openSUSE:Factory/.perl-DBD-ODBC.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-DBD-ODBC" Changes: -------- --- /work/SRC/openSUSE:Factory/perl-DBD-ODBC/perl-DBD-ODBC.changes 2015-09-03 18:07:45.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.perl-DBD-ODBC.new/perl-DBD-ODBC.changes 2016-11-04 20:59:52.000000000 +0100 @@ -1,0 +2,43 @@ +Fri Oct 7 05:12:38 UTC 2016 - [email protected] + +- updated to 1.56 + see /usr/share/doc/packages/perl-DBD-ODBC/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. + +------------------------------------------------------------------- Old: ---- DBD-ODBC-1.52.tar.gz New: ---- DBD-ODBC-1.56.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-DBD-ODBC.spec ++++++ --- /var/tmp/diff_new_pack.L32dFc/_old 2016-11-04 20:59:53.000000000 +0100 +++ /var/tmp/diff_new_pack.L32dFc/_new 2016-11-04 20:59:53.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package perl-DBD-ODBC # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: perl-DBD-ODBC -Version: 1.52 +Version: 1.56 Release: 0 %define cpan_name DBD-ODBC Summary: ODBC Driver for DBI @@ -45,7 +45,7 @@ %prep %setup -q -n %{cpan_name}-%{version} -find . -type f -print0 | xargs -0 chmod 644 +find . -type f ! -name \*.pl -print0 | xargs -0 chmod 644 %patch0 -p0 # MANUAL BEGIN for file in README.af README.unicode; do ++++++ DBD-ODBC-1.52.tar.gz -> DBD-ODBC-1.56.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.52/Changes new/DBD-ODBC-1.56/Changes --- old/DBD-ODBC-1.52/Changes 2015-04-15 10:58:08.000000000 +0200 +++ new/DBD-ODBC-1.56/Changes 2016-10-06 10:30:13.000000000 +0200 @@ -5,6 +5,43 @@ DBD::ODBC::Changes - Log of significant changes to the DBD::ODBC +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. + 1.52 2015-04-15 [MISCELLANEOUS] @@ -29,7 +66,7 @@ [BUG FIXES] RT101579 - using bound input parameters for numeric columns (e.g., - SQL_NUMERIC) only works the first time and will quite likey fail + SQL_NUMERIC) only works the first time and will quite likely fail with "string data, right truncation" on the second and subsequent calls to execute. Thanks to Laura Cox for finding. @@ -39,7 +76,8 @@ 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. + introduced last year. Thanks to Nick Gorham for spotting and providing + a fix. 1.51_1 2014-11-14 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.52/FAQ new/DBD-ODBC-1.56/FAQ --- old/DBD-ODBC-1.52/FAQ 2014-04-29 20:17:41.000000000 +0200 +++ new/DBD-ODBC-1.56/FAQ 2016-02-03 16:21:47.000000000 +0100 @@ -1307,6 +1307,40 @@ 9.0 or 10.0 and fall back to 6.0 where column names are restricted to 30 characters. +=head2 Why are my doubles truncated from MS Access DB? + +If you have a double column in your MS Access DB and the retrieved +values are truncated you have probably hit a known (and fixed) bug in +the MS Access ODBC driver. Typical truncation lookes like this: + + 8.93601020357839E-06 returned as E-6 + +If you have the Microsoft Access 2010 accdb ODBC driver (v14) or older +then try upgrading to the 2013 (v15) driver as my experiments showed +that fixed the issue. Search for "Microsoft Access 2013 +redistributable engine" and download the appropriate version for your +operating system. + +=head2 Why is my (long)binary data inserted into MS Access incorrect? + +A typical example of this is trying to insert binary data into a +MS Access table using parameters and the data ends up full of null bytes. + +The MS Access ODBC driver does not support the ODBC API SQLDescribeParam +so DBD::ODBC has no idea what parameter type to use when binding placeholders. +By default, DBD::ODBC defaults in this situations to SQL_CHAR type. However, +when you bind binary data as SQL_CHAR with the MS Access ODBC Driver the data +stored in your DB will no longer be the data you expect as the driver translates +your data bound as a string to binary. The way around this is to bind the parameter +specifying the binary type e.g., + + $sth->bind_param(1, undef, SQL_LONGVARBINARY) + +or one of the other binary types. Note, that you don't actually have to pass the +parameter into bind_param as parameter types are sticky so (as in this example) you +can tell DBD::ODBC to use a different type in the bind_param call but still go on to +pass the paramter into the execute method. + =head1 AUTHOR Parts of this document were written by Tim Bunce, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.52/META.yml new/DBD-ODBC-1.56/META.yml --- old/DBD-ODBC-1.52/META.yml 2015-04-15 10:07:21.000000000 +0200 +++ new/DBD-ODBC-1.56/META.yml 2016-10-06 10:30:31.000000000 +0200 @@ -1,7 +1,7 @@ #--- #YAML:1.0 name: DBD-ODBC abstract: ODBC DBD for Perl DBI -version: 1.52 +version: 1.56 version_from: ODBC.pm author: - Martin J. Evans <[email protected]> @@ -9,7 +9,6 @@ - Jeff Urlwin license: perl distribution_type: module -dynamic_config : 1 requires: DBI: 1.609 perl: 5.008 @@ -35,6 +34,18 @@ ExtUtils::MakeMaker: 0 recommends: Test::Version: 1.002001 +# add provides in 1.54 (initially) but without the version number the distrib won't index +# without the provides the indexer extracts the version itself and with provides and +# no version it assumes 0 +#provides: +# DBD::ODBC: +# file: ODBC.pm +# DBD::ODBC::dr: +# file: ODBC.pm +# DBD::ODBC::db: +# file: ODBC.pm +# DBD::ODBC::st: +# file: ODBC.pm dynamic_config: 1 resources: homepage: http://search.cpan.org/dist/DBD-ODBC/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.52/ODBC.pm new/DBD-ODBC-1.56/ODBC.pm --- old/DBD-ODBC-1.52/ODBC.pm 2015-04-15 10:07:14.000000000 +0200 +++ new/DBD-ODBC-1.56/ODBC.pm 2016-10-06 10:30:24.000000000 +0200 @@ -18,7 +18,7 @@ # see discussion on dbi-users at # http://www.nntp.perl.org/group/perl.dbi.dev/2010/07/msg6096.html and # http://www.dagolden.com/index.php/369/version-numbers-should-be-boring/ -$DBD::ODBC::VERSION = '1.52'; +$DBD::ODBC::VERSION = '1.56'; { ## no critic (ProhibitMagicNumbers ProhibitExplicitISA) @@ -671,7 +671,7 @@ =head1 VERSION -This documentation refers to DBD::ODBC version 1.52. +This documentation refers to DBD::ODBC version 1.56. =head1 WARNING @@ -2152,6 +2152,30 @@ SQL_BLOB. If you are unsure about ODBC types look at your ODBC header files or look up valid types in the ODBC specification. +=head3 tables and table_info + +These are not really deviations from the DBI specification but a +clarification of a DBI optional feature. + +DBD::ODBC supports wildcards (% and _) in the catalog, schema and type +arguments. However, you should be aware that if the statement +attribute SQL_ATTR_METADATA_ID is SQL_TRUE the values are interpreted +as identifiers and the case is ignored. SQL_ATTR_METADATA_ID defaults +to SQL_FALSE so normally the values are treated as patterns and the +case is significant. + +SQLGetInfo for SQL_ACCESSIBLE_TABLES can affect what tables you can +list. + +All the special cases listed by DBI (empty strings for all arguments +but one which is '%') for catalog, schema and table type are supported +by DBD::ODBC. However, using '%' for table type in a call to the +tables method does not currently work with DBI up to 1.631 due to an +issue in DBI. + +Although DBD::ODBC supports all the usage cases listed by DBI, your +ODBC driver may not. + =head2 Unicode The ODBC specification supports wide character versions (a postfix of diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.52/ODBC.xs new/DBD-ODBC-1.56/ODBC.xs --- old/DBD-ODBC-1.52/ODBC.xs 2014-04-30 16:47:53.000000000 +0200 +++ new/DBD-ODBC-1.56/ODBC.xs 2015-07-22 18:46:51.000000000 +0200 @@ -307,7 +307,8 @@ { /*STRLEN lna;*/ /*char *pstmt = SvOK(stmt) ? SvPV(stmt,lna) : "";*/ - ST(0) = sv_2mortal(newSViv( (IV)dbd_db_execdirect( dbh, stmt ) ) ); + + ST(0) = sv_2mortal(newSViv( dbd_db_execdirect( dbh, stmt ) ) ); } void odbc_getdiagrec(dbh, record) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.52/TO_DO new/DBD-ODBC-1.56/TO_DO --- old/DBD-ODBC-1.52/TO_DO 2015-01-16 14:35:34.000000000 +0100 +++ new/DBD-ODBC-1.56/TO_DO 2015-04-15 11:00:34.000000000 +0200 @@ -12,8 +12,6 @@ =head1 Todo - Get travis testing actually running tests against a driver. - Better/more tests on multiple statement handles which ensure the correct number of rows @@ -27,10 +25,10 @@ There is a Columns private ODBC method which is not documented. - Add support for sending lobs in chunks instead of all in one go. Although - DBD::ODBC uses SQLParamData and SQLPutData internally they are not exposed - so anyone binding a lob has to have all of it available before it can - be bound. + Add support for sending lobs in chunks instead of all in one + go. Although DBD::ODBC uses SQLParamData and SQLPutData internally + they are not exposed so anyone binding a lob has to have all of it + available before it can be bound. Why does level 15 tracing of any DBD::ODBC script show alot of these: !!DBD::ODBC unsupported attribute passed (PrintError) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.52/dbdimp.c new/DBD-ODBC-1.56/dbdimp.c --- old/DBD-ODBC-1.52/dbdimp.c 2015-01-17 11:36:53.000000000 +0100 +++ new/DBD-ODBC-1.56/dbdimp.c 2016-04-11 14:55:25.000000000 +0200 @@ -132,6 +132,7 @@ int dbd_db_login6(SV *dbh, imp_dbh_t *imp_dbh, char *dbname, char *uid, char *pwd, SV *attr); int dbd_st_finish(SV *sth, imp_sth_t *imp_sth); +IV dbd_st_execute_iv(SV *sth, imp_sth_t *imp_sth); /* for sanity/ease of use with potentially null strings */ #define XXSAFECHAR(p) ((p) ? (p) : "(null)") @@ -387,9 +388,14 @@ imp_sth->RowCount = -1; rc = SQLRowCount(imp_sth->hstmt, &imp_sth->RowCount); dbd_error(sth, rc, "build_results/SQLRowCount"); - if (rc != SQL_SUCCESS) return -1; + if (rc != SQL_SUCCESS) { + DBIc_ROW_COUNT(imp_sth) = -1; + return -1; + } + DBIc_ROW_COUNT(imp_sth) = imp_sth->RowCount; } else { imp_sth->RowCount = 0; + DBIc_ROW_COUNT(imp_sth) = 0; } DBIc_ACTIVE_on(imp_sth); /* XXX should only set for select ? */ @@ -1670,6 +1676,13 @@ imp_sth->done_desc = 0; + if (DBIc_TRACE(imp_sth, DBD_TRACING, 0, 3)) + PerlIO_printf(DBIc_LOGPIO(imp_sth), "dbd_st_tables(%s,%s,%s,%s)\n", + SvOK(catalog) ? SvPV_nolen(catalog) : "undef", + (schema && SvOK(schema)) ? SvPV_nolen(schema) : "undef", + (table && SvOK(table)) ? SvPV_nolen(table) : "undef", + (table_type && SvOK(table_type)) ? SvPV_nolen(table_type) : "undef"); + if ((dbh_active = check_connection_active(dbh)) == 0) return 0; rc = SQLAllocHandle(SQL_HANDLE_STMT, imp_dbh->hdbc, &imp_sth->hstmt); @@ -2531,13 +2544,13 @@ NULL, 0, NULL ,&fbh->ColLength); if (!SQL_SUCCEEDED(rc)) { /* See comment above under SQL_COLUMN_DISPLAY_SIZE */ - fbh->ColLength = imp_sth->odbc_column_display_size; - if( DBIc_TRACE(imp_sth, DBD_TRACING, 0, 8) ) { - TRACE1(imp_sth, - " describe/SQLColAttributes/SQL_COLUMN_LENGTH not " - "supported, fallback on %ld\n", (long)fbh->ColLength); - } - rc = SQL_SUCCESS; + fbh->ColLength = imp_sth->odbc_column_display_size; + if( DBIc_TRACE(imp_sth, DBD_TRACING, 0, 8) ) { + TRACE1(imp_sth, + " describe/SQLColAttributes/SQL_COLUMN_LENGTH not " + "supported, fallback on %ld\n", (long)fbh->ColLength); + } + rc = SQL_SUCCESS; } else if (DBIc_TRACE(imp_sth, DBD_TRACING, 0, 8)) { TRACE1(imp_sth, " SQL_COLUMN_LENGTH = %ld\n", (long)fbh->ColLength); @@ -2794,13 +2807,35 @@ int dbd_st_execute( SV *sth, imp_sth_t *imp_sth) { + IV ret; + + if (DBIc_TRACE(imp_sth, DBD_TRACING, 0, 3)) + TRACE1(imp_sth, " +dbd_st_execute(%p)\n", sth); + + ret = dbd_st_execute_iv(sth, imp_sth); + if (ret > INT_MAX) { + if (DBIc_WARN(imp_sth)) { + warn("SQLRowCount overflowed in execute - see RT 81911 - you need to upgrade your DBI to at least 1.633_92"); + } + ret = INT_MAX; + } + + if (DBIc_TRACE(imp_sth, DBD_TRACING, 0, 3)) + TRACE2(imp_sth, " -dbd_st_execute(%p)=%"IVdf"\n", sth, ret); + + return (int)ret; +} + +IV dbd_st_execute_iv( + SV *sth, imp_sth_t *imp_sth) +{ RETCODE rc; D_imp_dbh_from_sth; int outparams = 0; SQLLEN ret; if (DBIc_TRACE(imp_sth, DBD_TRACING, 0, 3)) - TRACE1(imp_dbh, " +dbd_st_execute(%p)\n", sth); + TRACE1(imp_dbh, " +dbd_st_execute_iv(%p)\n", sth); if (SQL_NULL_HDBC == imp_dbh->hdbc) { DBIh_SET_ERR_CHAR(sth, (imp_xxh_t*)imp_sth, Nullch, 1, @@ -2965,7 +3000,7 @@ if (!SQL_SUCCEEDED(rc) && rc != SQL_NO_DATA) { dbd_error(sth, rc, "st_execute/SQLExecute"); if (DBIc_TRACE(imp_sth, DBD_TRACING, 0, 3)) - TRACE1(imp_dbh, " -dbd_st_execute(%p)=-2\n", sth); + TRACE1(imp_dbh, " -dbd_st_execute_iv(%p)=-2\n", sth); return -2; } @@ -2986,6 +3021,9 @@ if (!SQL_SUCCEEDED(rc2)) { dbd_error(sth, rc2, "st_execute/SQLRowCount"); /* XXX ? */ imp_sth->RowCount = -1; + DBIc_ROW_COUNT(imp_sth) = -1; + } else { + DBIc_ROW_COUNT(imp_sth) = imp_sth->RowCount; } /* sanity check for strange circumstances and multiple types of @@ -3011,6 +3049,7 @@ " SQL_NO_DATA...resetting done_desc!\n"); imp_sth->done_desc = 0; imp_sth->RowCount = 0; + DBIc_ROW_COUNT(imp_sth) = 0; /* Strictly speaking a driver should only return SQL_NO_DATA when a searched insert/update/delete affects no rows and so it is pointless continuing below and calling SQLNumResultCols. @@ -3079,10 +3118,10 @@ if (!dbd_describe(sth, imp_sth, 0)) { if (DBIc_TRACE(imp_sth, DBD_TRACING, 0, 3)) { TRACE0(imp_sth, - " !!dbd_describe failed, dbd_st_execute #1...!\n"); + " !!dbd_describe failed, dbd_st_execute_iv #1...!\n"); } if (DBIc_TRACE(imp_sth, DBD_TRACING, 0, 3)) - TRACE1(imp_dbh, " -dbd_st_execute(%p)=-2\n", sth); + TRACE1(imp_dbh, " -dbd_st_execute_iv(%p)=-2\n", sth); return -2; /* dbd_describe already called dbd_error() */ } } @@ -3125,22 +3164,15 @@ * Because you return -2 on errors so if you don't abs() it, a perfectly * valid return value will get flagged as an error... */ - ret = (imp_sth->RowCount == -1 ? -1 : imp_sth->RowCount); + ret = (imp_sth->RowCount == -1 ? -1 : imp_sth->RowCount); /* TO_DO NONESENSE IT IS NOOP */ if (DBIc_TRACE(imp_sth, DBD_TRACING, 0, 3)) - TRACE2(imp_dbh, " -dbd_st_execute(%p)=%"IVdf"\n", sth, (IV)ret); + TRACE2(imp_dbh, " -dbd_st_execute_iv(%p)=%"IVdf"\n", sth, ret); - if (ret > INT_MAX) { - if (DBIc_WARN(imp_sth)) { - warn("SQLRowCount overflowed in execute - see RT 81911"); - } - return INT_MAX; - } return ret; } - /*---------------------------------------- @@ -3474,10 +3506,16 @@ -int dbd_st_rows(SV *sth, imp_sth_t *imp_sth) -{ - return (int)imp_sth->RowCount; -} +/* /\* SHOULD BE ABLE TO DELETE BOTH OF THESE NOW AND dbd_st_rows macro in dbdimp.h *\/ */ +/* int dbd_st_rows(SV *sth, imp_sth_t *imp_sth) */ +/* { */ +/* return (int)imp_sth->RowCount; */ +/* } */ + +/* IV dbd_st_rows(SV *sth, imp_sth_t *imp_sth) */ +/* { */ +/* return imp_sth->RowCount; */ +/* } */ @@ -7433,6 +7471,7 @@ dbd_error(sth, rc, "odbc_st_execute_for_fetch/SQLRowCount"); return -2; } + DBIc_ROW_COUNT(imp_sth) = imp_sth->RowCount; /* why does this break stuff imp_sth->param_status_array = NULL; */ if (err_seen) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.52/dbdimp.h new/DBD-ODBC-1.56/dbdimp.h --- old/DBD-ODBC-1.52/dbdimp.h 2014-05-01 12:28:06.000000000 +0200 +++ new/DBD-ODBC-1.56/dbdimp.h 2015-07-23 11:10:28.000000000 +0200 @@ -276,8 +276,9 @@ #define dbd_db_FETCH_attrib odbc_db_FETCH_attrib #define dbd_st_prepare odbc_st_prepare #define dbd_st_prepare_sv odbc_st_prepare_sv -#define dbd_st_rows odbc_st_rows +/*#define dbd_st_rows odbc_st_rows*/ #define dbd_st_execute odbc_st_execute +#define dbd_st_execute_iv odbc_st_execute_iv #define dbd_st_fetch odbc_st_fetch #define dbd_st_finish odbc_st_finish #define dbd_st_destroy odbc_st_destroy diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.52/t/05meth.t new/DBD-ODBC-1.56/t/05meth.t --- old/DBD-ODBC-1.52/t/05meth.t 2015-01-17 14:43:47.000000000 +0100 +++ new/DBD-ODBC-1.56/t/05meth.t 2015-10-16 16:57:16.000000000 +0200 @@ -53,7 +53,7 @@ $sth = $dbh->prepare("DELETE FROM $ODBCTEST::table_name"); ok($sth, "delete prepared statement"); $sth->execute(); -cmp_ok($sth->rows, '>=', 0, "Number of rows > 0"); +cmp_ok($sth->rows, '>=', 0, "Number of rows >= 0"); cmp_ok($DBI::rows, '==', $sth->rows, "Number of rows from DBI matches sth"); $sth->finish(); $dbh->rollback(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/DBD-ODBC-1.52/t/rt_101579.t new/DBD-ODBC-1.56/t/rt_101579.t --- old/DBD-ODBC-1.52/t/rt_101579.t 2015-01-17 11:36:53.000000000 +0100 +++ new/DBD-ODBC-1.56/t/rt_101579.t 2015-06-15 10:56:24.000000000 +0200 @@ -46,11 +46,11 @@ } $dbh->{RaiseError} = 0; -$dbh->do(q/create table PERL_DBD_RT_101579 (method varchar(500), val numeric(9,2))/) +$dbh->do(q/create table PERL_DBD_RT_101579 (a varchar(500), val numeric(9,2))/) or BAIL_OUT("Failed to create test table " . $dbh->errstr); my @vals = (8295.60, 181161.80, 6514.15); -my $sth = $dbh->prepare(q/insert into PERL_DBD_RT_101579 (method, val) values(?,?)/); +my $sth = $dbh->prepare(q/insert into PERL_DBD_RT_101579 (a, val) values(?,?)/); foreach my $val (@vals) { eval { $sth->execute('fred', $val);
