Add support for CHECK constraint in POD producer (GH#63)
Andrew Gregory [Sat, 27 Jun 2015 15:38:01 +0000 (11:38 -0400)]
Changes
lib/SQL/Translator/Producer/POD.pm

diff --git a/Changes b/Changes
index deb821d..4198719 100644 (file)
--- a/Changes
+++ b/Changes
@@ -2,6 +2,7 @@ Changes for SQL::Translator
 
  * Add support for monotonically increasing SQLite autoincs (GH#47)
  * Add support for CHECK constraint in SQLite producer (GH#57)
+ * Add support for CHECK constraint in POD producer (GH#63)
  * Fix forgotten quoting in the MySQL DROP TABLE diff producer (GH#50)
  * Fix Pg grammar parsing of UUID, time, timetz columns (RT#100196, GH#52)
  * Add support for USING and WHERE on indexes in PostgreSQL producer
index abced98..17c378a 100644 (file)
@@ -83,23 +83,27 @@ sub produce {
             $pod .= "=head3 CONSTRAINTS\n\n";
             for my $c ( @constraints ) {
                 $pod .= "=head4 " . $c->type . "\n\n=over 4\n\n";
-                $pod .= "=item * Fields = " .
-                    join(', ', $c->fields ) . "\n\n";
-
-                if ( $c->type eq FOREIGN_KEY ) {
-                    $pod .= "=item * Reference Table = L</" .
-                        $c->reference_table . ">\n\n";
-                    $pod .= "=item * Reference Fields = " .
-                        join(', ', map {"L</$_>"} $c->reference_fields ) .
-                        "\n\n";
-                }
-
-                if ( my $update = $c->on_update ) {
-                    $pod .= "=item * On update = $update\n\n";
-                }
-
-                if ( my $delete = $c->on_delete ) {
-                    $pod .= "=item * On delete = $delete\n\n";
+                if($c->type eq CHECK_C) {
+                    $pod .= "=item * Expression = " . $c->expression . "\n\n";
+                } else {
+                    $pod .= "=item * Fields = " .
+                        join(', ', $c->fields ) . "\n\n";
+
+                    if ( $c->type eq FOREIGN_KEY ) {
+                        $pod .= "=item * Reference Table = L</" .
+                            $c->reference_table . ">\n\n";
+                        $pod .= "=item * Reference Fields = " .
+                            join(', ', map {"L</$_>"} $c->reference_fields ) .
+                            "\n\n";
+                    }
+
+                    if ( my $update = $c->on_update ) {
+                        $pod .= "=item * On update = $update\n\n";
+                    }
+
+                    if ( my $delete = $c->on_delete ) {
+                        $pod .= "=item * On delete = $delete\n\n";
+                    }
                 }
 
                 $pod .= "=back\n\n";