From: Wes Malone Date: Tue, 29 Mar 2011 23:46:02 +0000 (-0500) Subject: Passing test for mssql odbc bulk insert bug fixed by fabbd5cca9 X-Git-Tag: v0.08197~75 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=124162a0580d6007d51d85c5caf198a52a12989f;p=dbsrgits%2FDBIx-Class.git Passing test for mssql odbc bulk insert bug fixed by fabbd5cca9 --- diff --git a/lib/DBIx/Class.pm b/lib/DBIx/Class.pm index 87beb08..d706cb3 100644 --- a/lib/DBIx/Class.pm +++ b/lib/DBIx/Class.pm @@ -504,6 +504,8 @@ victori: Victor Igumnov wdh: Will Hawes +wesm: Wes Malone + willert: Sebastian Willert wreis: Wallace Reis diff --git a/t/inflate/datetime_mssql.t b/t/inflate/datetime_mssql.t index 7f0173b..ae97a46 100644 --- a/t/inflate/datetime_mssql.t +++ b/t/inflate/datetime_mssql.t @@ -2,6 +2,7 @@ use strict; use warnings; use Test::More; +use Test::Exception; use Scope::Guard (); use Try::Tiny; use DBIx::Class::Optional::Dependencies (); @@ -91,6 +92,18 @@ CREATE TABLE event_small_dt ( small_dt SMALLDATETIME, ) SQL + try { local $^W = 0; $schema->storage->dbh->do("DROP TABLE event") }; + $schema->storage->dbh->do(<<"SQL"); +CREATE TABLE event ( + id int IDENTITY(1,1) NOT NULL, + starts_at smalldatetime NULL, + created_on datetime NULL, + varchar_date varchar(20) NULL, + varchar_datetime varchar(20) NULL, + skip_inflation datetime NULL, + ts_without_tz datetime NULL +) +SQL # coltype, column, source, pk, create_extra, datehash my @dt_types = ( @@ -144,8 +157,22 @@ SQL 'DateTime fractional portion roundtrip' ) if exists $sample_dt->{nanosecond}; } + + # Check for bulk insert SQL_DATE funtimes when using DBD::ODBC and sqlncli + # dbi:ODBC:driver=SQL Server Native Client 10.0;server=10.6.0.9;database=odbctest; + lives_ok { + $schema->resultset('Event')->populate([{ + id => 1, + starts_at => undef, + },{ + id => 2, + starts_at => '2011-03-22', + }]) + } 'populate with datetime does not throw'; + ok ( my $row = $schema->resultset('Event')->find(2), 'SQL_DATE bulk insert check' ); } + done_testing; # clean up our mess @@ -154,5 +181,6 @@ sub cleanup { if (my $dbh = eval { $schema->storage->dbh }) { $dbh->do('DROP TABLE track'); $dbh->do('DROP TABLE event_small_dt'); + $dbh->do('DROP TABLE event'); } }