better test for "smalldatetime" in Sybase
Rafael Kitover [Thu, 30 Jul 2009 08:21:20 +0000 (08:21 +0000)]
lib/DBIx/Class/Storage/DBI/Sybase.pm
t/inflate/datetime_sybase.t
t/lib/DBICTest/Schema/Track.pm

index 35608b0..48123f5 100644 (file)
@@ -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 {
index 13edcb5..24d0f07 100644 (file)
@@ -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' );
   }
 }
 
index 4966800..a6de595 100644 (file)
@@ -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');