fix sizeless types and typemap for SQLite
Arthur Axel 'fREW' Schmidt [Mon, 30 Apr 2012 14:50:02 +0000 (09:50 -0500)]
lib/SQL/Translator/Generator/DDL/SQLite.pm
t/56-sqlite-producer.t

index c195ea2..ec2febe 100644 (file)
@@ -15,12 +15,17 @@ sub name_sep { q(.) }
 
 sub _build_type_map {
    +{
-      date => 'datetime',
-      'time' => 'datetime',
+      set   => 'varchar',
+      bytea => 'blob',
    }
 }
 
-sub _build_sizeless_types { +{ text => 1 } }
+sub _build_sizeless_types {
+   +{
+      text => 1,
+      blob => 1,
+   }
+}
 sub _build_numeric_types {
    +{
       int                => 1,
index 3151ddb..79e7880 100644 (file)
@@ -74,4 +74,40 @@ $SQL::Translator::Producer::SQLite::NO_QUOTES = 0;
    is_deeply($result, $expected, 'correctly unquoted DEFAULT');
 }
 
+{
+   my $table = SQL::Translator::Schema::Table->new(
+       name => 'foo',
+   );
+   $table->add_field(
+       name => 'data',
+       data_type => 'bytea',
+   );
+   $table->add_field(
+       name => 'data2',
+       data_type => 'set',
+   );
+   $table->add_field(
+       name => 'data2',
+       data_type => 'set',
+   );
+   $table->add_field(
+       name => 'data3',
+       data_type => 'text',
+       size      => 30,
+   );
+   $table->add_field(
+       name => 'data4',
+       data_type => 'blob',
+       size      => 30,
+   );
+   my $expected = [ qq<CREATE TABLE "foo" (
+  "data" blob,
+  "data2" varchar,
+  "data3" text,
+  "data4" blob
+)>];
+   my $result =  [SQL::Translator::Producer::SQLite::create_table($table, { no_comments => 1 })];
+   is_deeply($result, $expected, 'correctly translated bytea to blob');
+}
+
 done_testing;