Add trigger support to PostgreSQL producer and parser (including trigger scope)
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Schema / Trigger.pm
index 1939fb1..f320fb2 100644 (file)
@@ -17,6 +17,7 @@ SQL::Translator::Schema::Trigger - SQL::Translator trigger object
     on_table            => 'foo',    # table name
     action              => '...',    # text of trigger
     schema              => $schema,  # Schema object
+    scope               => 'row',    # or statement
   );
 
 =head1 DESCRIPTION
@@ -41,7 +42,7 @@ our $VERSION = '1.59';
 
 __PACKAGE__->_attributes( qw/
     name schema perform_action_when database_events database_event
-    fields table on_table action order
+    fields table on_table action order scope
 /);
 
 =pod
@@ -301,6 +302,31 @@ Get or set the trigger's order.
     return $self->{'order'} || 0;
 }
 
+
+sub scope {
+
+=pod
+
+=head2 scope
+
+Get or set the trigger's scope (row or statement).
+
+    my $scope = $trigger->scope('statement');
+
+=cut
+
+    my ( $self, $arg ) = @_;
+
+    if ( defined $arg ) {
+        return $self->error( "Invalid scope '$arg'" )
+            unless $arg =~ /^(row|statement)$/i;
+
+        $self->{scope} = $arg;
+    }
+
+    return $self->{scope} || '';
+}
+
 sub schema {
 
 =pod