Typo fixing
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Parser / SQLServer.pm
index e97f4c2..39aa719 100644 (file)
@@ -1,7 +1,7 @@
 package SQL::Translator::Parser::SQLServer;
 
 # -------------------------------------------------------------------
-# $Id: SQLServer.pm,v 1.1 2005-06-27 19:01:31 duality72 Exp $
+# $Id: SQLServer.pm,v 1.4 2006-05-04 20:47:07 duality72 Exp $
 # -------------------------------------------------------------------
 # Copyright (C) 2002-4 SQLFairy Authors
 #
@@ -39,7 +39,7 @@ should probably be considered a work in progress.
 use strict;
 
 use vars qw[ $DEBUG $VERSION $GRAMMAR @EXPORT_OK ];
-$VERSION = sprintf "%d.%02d", q$Revision: 1.1 $ =~ /(\d+)\.(\d+)/;
+$VERSION = sprintf "%d.%02d", q$Revision: 1.4 $ =~ /(\d+)\.(\d+)/;
 $DEBUG   = 0 unless defined $DEBUG;
 
 use Data::Dumper;
@@ -207,7 +207,7 @@ field : field_name data_type field_qualifier(s?)
             size           => $item{'data_type'}{'size'},
             nullable       => $nullable, 
             default        => $qualifiers{'default_val'}, 
-            is_auto_inc    => $qualifiers{'auto_inc'}, 
+            is_auto_inc    => $qualifiers{'is_auto_inc'}, 
 #            is_primary_key => $item{'primary_key'}[0], 
         } 
     }
@@ -268,7 +268,9 @@ nullable : /not/i /null/i
     | /null/i
     { $return = 1 }
 
-default_val : /default/i /(?:')?[^']*(?:')?/ 
+default_val : /default/i /null/i
+    { $return = 'null' }
+       | /default/i /'[^']*'/ 
     { $item[2]=~ s/'//g; $return = $item[2] }
 
 auto_inc : /identity/i { 1 }
@@ -283,7 +285,7 @@ primary_key_constraint : /constraint/i index_name(?) /primary/i /key/i parens_fi
         } 
     }
 
-foreign_key_constraint : /constraint/i index_name(?) /foreign/i /key/i parens_field_list /references/i table_name parens_field_list(?) on_delete_do(?) on_update_do(?)
+foreign_key_constraint : /constraint/i index_name(?) /foreign/i /key/i parens_field_list /references/i table_name parens_field_list(?) on_delete(?) on_update(?)
     {
         $return = { 
             supertype        => 'constraint',
@@ -292,8 +294,8 @@ foreign_key_constraint : /constraint/i index_name(?) /foreign/i /key/i parens_fi
             fields           => $item[5],
             reference_table  => $item[7],
             reference_fields => $item[8][0], 
-            on_delete_do     => $item[9][0],
-            on_update_do     => $item[10][0],
+            on_delete        => $item[9][0],
+            on_update        => $item[10][0],
         } 
     }
 
@@ -309,10 +311,10 @@ unique_constraint : /unique/i clustered(?) INDEX(?) index_name(?) on_table(?) pa
         } 
     }
 
-on_delete_do : /on delete/i reference_option
+on_delete : /on delete/i reference_option
     { $item[2] }
 
-on_update_do : /on update/i reference_option
+on_update : /on update/i reference_option
     { $item[2] }
 
 reference_option: /cascade/i   | 
@@ -455,8 +457,8 @@ sub parse {
                 reference_table  => $cdata->{'reference_table'},
                 reference_fields => $cdata->{'reference_fields'},
                 match_type       => $cdata->{'match_type'} || '',
-                on_delete        => $cdata->{'on_delete_do'},
-                on_update        => $cdata->{'on_update_do'},
+                on_delete        => $cdata->{'on_delete'} || $cdata->{'on_delete_do'},
+                on_update        => $cdata->{'on_update'} || $cdata->{'on_update_do'},
             ) or die $table->error;
         }
     }