X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Finflate%2Fdatetime_mssql.t;h=ae97a46b11513a2bba6cd595d503012eeb849b33;hb=52864fbd5c6035f8f3961173ad05c2cc58fe9a34;hp=822cc8484ba95af4268694f9a5d9aafc0dacc5ea;hpb=199fbc453ec03891d0e156d7353c5e992ba4de47;p=dbsrgits%2FDBIx-Class.git diff --git a/t/inflate/datetime_mssql.t b/t/inflate/datetime_mssql.t index 822cc84..ae97a46 100644 --- a/t/inflate/datetime_mssql.t +++ b/t/inflate/datetime_mssql.t @@ -73,7 +73,7 @@ for my $connect_info (@connect_info) { } } - my $guard = Scope::Guard->new(\&cleanup); + my $guard = Scope::Guard->new(sub{ cleanup($schema) }); # $^W because DBD::ADO is a piece of crap try { local $^W = 0; $schema->storage->dbh->do("DROP TABLE track") }; @@ -92,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 = ( @@ -145,14 +157,30 @@ 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 sub cleanup { + my $schema = shift; if (my $dbh = eval { $schema->storage->dbh }) { $dbh->do('DROP TABLE track'); $dbh->do('DROP TABLE event_small_dt'); + $dbh->do('DROP TABLE event'); } }