Passing test for mssql odbc bulk insert bug fixed by fabbd5cca9
Wes Malone [Tue, 29 Mar 2011 23:46:02 +0000 (18:46 -0500)]
lib/DBIx/Class.pm
t/inflate/datetime_mssql.t

index 87beb08..d706cb3 100644 (file)
@@ -504,6 +504,8 @@ victori: Victor Igumnov <victori@cpan.org>
 
 wdh: Will Hawes
 
+wesm: Wes Malone <wes@mitsi.com>
+
 willert: Sebastian Willert <willert@cpan.org>
 
 wreis: Wallace Reis <wreis@cpan.org>
index 7f0173b..ae97a46 100644 (file)
@@ -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');
   }
 }