From: Rafael Kitover Date: Thu, 30 Jul 2009 08:21:20 +0000 (+0000) Subject: better test for "smalldatetime" in Sybase X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=5137d252094eee8572c3a4602d0c7a451bfc2757;p=dbsrgits%2FDBIx-Class-Historic.git better test for "smalldatetime" in Sybase --- diff --git a/lib/DBIx/Class/Storage/DBI/Sybase.pm b/lib/DBIx/Class/Storage/DBI/Sybase.pm index 35608b0..48123f5 100644 --- a/lib/DBIx/Class/Storage/DBI/Sybase.pm +++ b/lib/DBIx/Class/Storage/DBI/Sybase.pm @@ -419,14 +419,13 @@ sub _insert_blobs { for my $col (keys %$blob_cols) { my $blob = $blob_cols->{$col}; - my $sth; my %where = map { ($_, $row{$_}) } @primary_cols; my $cursor = $source->resultset->search(\%where, { select => [$col] })->cursor; $cursor->next; - $sth = $cursor->sth; + my $sth = $cursor->sth; eval { do { diff --git a/t/inflate/datetime_sybase.t b/t/inflate/datetime_sybase.t index 13edcb5..24d0f07 100644 --- a/t/inflate/datetime_sybase.t +++ b/t/inflate/datetime_sybase.t @@ -43,13 +43,15 @@ for my $storage_type (@storage_types) { isa_ok( $schema->storage, "DBIx::Class::Storage::$storage_type" ); +# coltype, col, date my @dt_types = ( - ['DATETIME', '2004-08-21T14:36:48.080Z'], - ['SMALLDATETIME', '2004-08-21T14:36:00.000Z'], # minute precision + ['DATETIME', 'last_updated_at', '2004-08-21T14:36:48.080Z'], +# minute precision + ['SMALLDATETIME', 'small_dt', '2004-08-21T14:36:00.000Z'], ); for my $dt_type (@dt_types) { - my ($type, $sample_dt) = @$dt_type; + my ($type, $col, $sample_dt) = @$dt_type; eval { $schema->storage->dbh->do("DROP TABLE track") }; $schema->storage->dbh->do(<<"SQL"); @@ -57,21 +59,21 @@ CREATE TABLE track ( trackid INT IDENTITY PRIMARY KEY, cd INT, position INT, - last_updated_on $type, + $col $type, ) SQL ok(my $dt = DateTime::Format::Sybase->parse_datetime($sample_dt)); my $row; ok( $row = $schema->resultset('Track')->create({ - last_updated_on => $dt, + $col => $dt, cd => 1, })); ok( $row = $schema->resultset('Track') - ->search({ trackid => $row->trackid }, { select => ['last_updated_on'] }) + ->search({ trackid => $row->trackid }, { select => [$col] }) ->first ); - is( $row->updated_date, $dt, 'DateTime roundtrip' ); + is( $row->$col, $dt, 'DateTime roundtrip' ); } } diff --git a/t/lib/DBICTest/Schema/Track.pm b/t/lib/DBICTest/Schema/Track.pm index 4966800..a6de595 100644 --- a/t/lib/DBICTest/Schema/Track.pm +++ b/t/lib/DBICTest/Schema/Track.pm @@ -30,6 +30,10 @@ __PACKAGE__->add_columns( data_type => 'datetime', is_nullable => 1 }, + small_dt => { # for mssql and sybase DT tests + data_type => 'smalldatetime', + is_nullable => 1 + }, ); __PACKAGE__->set_primary_key('trackid');