Revert my previous changes (rev 1722 reverted back to rev 1721)
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Parser / PostgreSQL.pm
index 5a66cec..a80021e 100644 (file)
@@ -152,8 +152,11 @@ statement : create
   | select
   | copy
   | readin_symbol
+  | commit
   | <error>
 
+commit : /commit/i ';'
+
 connect : /^\s*\\\connect.*\n/
 
 set : /set/i /[^;]*/ ';'
@@ -610,9 +613,9 @@ pg_data_type :
             $return = { type => 'bytea' };
         }
     |
-    /(timestamptz|timestamp)(?:\(\d\))?( with(out)? time zone)?/i
+    /(timestamptz|timestamp)(?:\(\d\))?( with(?:out)? time zone)?/i
         { 
-            $return = { type => 'timestamp' };
+            $return = { type => 'timestamp' . ($2||'') };
         }
     |
     /text/i
@@ -660,7 +663,7 @@ table_constraint : comment(s?) constraint_name(?) table_constraint_type deferrab
             deferred         => $item{'deferred'},
             reference_table  => $desc->{'reference_table'},
             reference_fields => $desc->{'reference_fields'},
-            match_type       => $desc->{'match_type'}[0],
+            match_type       => $desc->{'match_type'},
             on_delete        => $desc->{'on_delete'} || $desc->{'on_delete_do'},
             on_update        => $desc->{'on_update'} || $desc->{'on_update_do'},
             comments         => [ @comments ],
@@ -718,9 +721,7 @@ deferrable : not(?) /deferrable/i
 
 deferred : /initially/i /(deferred|immediate)/i { $item[2] }
 
-match_type : /match full/i { 'match_full' }
-    |
-    /match partial/i { 'match_partial' }
+match_type : /match/i /partial|full|simple/i { $item[2] }
 
 key_action : key_delete 
     |