- Added some stuff to MANIFEST.SKIP
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Producer / SQLite.pm
index 4526951..377dab4 100644 (file)
@@ -1,7 +1,7 @@
 package SQL::Translator::Producer::SQLite;
 
 # -------------------------------------------------------------------
-# $Id: SQLite.pm,v 1.15 2006-08-26 11:35:31 schiffbruechige Exp $
+# $Id$
 # -------------------------------------------------------------------
 # Copyright (C) 2002-4 SQLFairy Authors
 #
@@ -44,7 +44,7 @@ use SQL::Translator::Utils qw(debug header_comment);
 
 use vars qw[ $VERSION $DEBUG $WARN ];
 
-$VERSION = sprintf "%d.%02d", q$Revision: 1.15 $ =~ /(\d+)\.(\d+)/;
+$VERSION = sprintf "%d.%02d", q$Revision$ =~ /(\d+)\.(\d+)/;
 $DEBUG = 0 unless defined $DEBUG;
 $WARN = 0 unless defined $WARN;
 
@@ -153,7 +153,7 @@ sub create_table
     my $table_name = $table->name;
     my $no_comments = $options->{no_comments};
     my $add_drop_table = $options->{add_drop_table};
-    my $sqlite_version = $options->{sqlite_version};
+    my $sqlite_version = $options->{sqlite_version} || 0;
 
     debug("PKG: Looking at table '$table_name'\n");
 
@@ -287,17 +287,16 @@ sub create_field
 
     # Default?  XXX Need better quoting!
     my $default = $field->default_value;
-    if ( defined $default ) {
-        if ( uc $default eq 'NULL') {
-            $field_def .= ' DEFAULT NULL';
-        } elsif ( $default eq 'now()' ||
-                  $default eq 'CURRENT_TIMESTAMP' ) {
-            $field_def .= ' DEFAULT CURRENT_TIMESTAMP';
-        } elsif ( $default =~ /val\(/ ) {
-            next;
-        } else {
-            $field_def .= " DEFAULT '$default'";
-        }
+    if (defined $default) {
+        SQL::Translator::Producer->_apply_default_value(
+            \$field_def,
+            $default, 
+            [
+             'NULL'              => \'NULL',
+             'now()'             => 'now()',
+             'CURRENT_TIMESTAMP' => 'CURRENT_TIMESTAMP',
+            ],
+        );
     }
 
     return $field_def;