add (and use) _default_value method, relatively similar to old _apply_default_value
[dbsrgits/SQL-Translator-2.0-ish.git] / lib / SQL / Translator / Producer / SQL / PostgreSQL.pm
index f3c6272..6bef033 100644 (file)
@@ -1,5 +1,5 @@
 use MooseX::Declare;
-role  SQL::Translator::Producer::SQL::PostgreSQL {
+role SQL::Translator::Producer::SQL::PostgreSQL {
     use SQL::Translator::Constants qw(:sqlt_types :sqlt_constants);
     use SQL::Translator::Types qw(Column Constraint Index Table View);
 my ( %index_name );
@@ -296,7 +296,6 @@ method create_table(Table $table, $options?) {
         push @fks, @$fks;
     }
 
-
     my $temporary = "";
 
     if(exists $table->{extra}{temporary}) {
@@ -317,9 +316,9 @@ method create_table(Table $table, $options?) {
     $create_statement .= join(";\n", @type_defs) . ";\n"
         if $postgres_version >= 8.3 && scalar @type_defs;
     $create_statement .= qq[CREATE ${temporary}TABLE $qt$table_name_ur$qt (\n].
-                            join( ",\n", map { "  $_" } @field_defs, @constraint_defs ).
-                            "\n)"
-                            ;
+                            join( ",\n", map { "  $_" } @field_defs, @constraint_defs ) .
+                            "\n)" ;
+
     $create_statement .= @index_defs ? ';' : q{};
     $create_statement .= ( $create_statement =~ /;$/ ? "\n" : q{} )
         . join(";\n", @index_defs);
@@ -333,7 +332,6 @@ method create_view(View $view, $options?) {
     my $add_drop_view = $options->{add_drop_view};
 
     my $view_name = $view->name;
-#    debug("PKG: Looking at view '${view_name}'\n");
 
     my $create = '';
     $create .= "--\n-- View: ${qt}${view_name}${qt}\n--\n"
@@ -407,19 +405,7 @@ method create_view(View $view, $options?) {
         # Default value 
         #
         my $default = $field->default_value;
-=cut
-        if ( defined $default ) {
-            SQL::Translator::Producer->_apply_default_value(
-              \$field_def,
-              $default,
-              [
-                'NULL'              => \'NULL',
-                'now()'             => 'now()',
-                'CURRENT_TIMESTAMP' => 'CURRENT_TIMESTAMP',
-              ],
-            );
-        }
-=cut
+        $field_def .= $self->_default_value($default, [ 'NULL'=> \'NULL', 'now()' => 'now()', 'CURRENT_TIMESTAMP' => 'CURRENT_TIMESTAMP', ] ) if defined $default;
 
         #
         # Not null constraint
@@ -489,13 +475,12 @@ method create_constraint(Constraint $c, $options?) {
         map { $_ =~ s/\(.+\)//; $_ }
     map { $qt ? $_ : $self->unreserve( $_, $table_name )}
     $c->fields;
-
     my @rfields     = 
         map { $_ =~ s/\(.+\)//; $_ }
     map { $qt ? $_ : $self->unreserve( $_, $table_name )}
     $c->reference_fields;
-
     return ([], []) if !@fields && $c->type ne CHECK_C;
+
     my $def_start = $name ? qq[CONSTRAINT "$name" ] : '';
     if ( $c->type eq PRIMARY_KEY ) {
         push @constraint_defs, "${def_start}PRIMARY KEY ".
@@ -520,17 +505,16 @@ method create_constraint(Constraint $c, $options?) {
         }
 
         if ( $c->match_type ) {
-            $def .= ' MATCH ' . 
-                ( $c->match_type =~ /full/i ) ? 'FULL' : 'PARTIAL';
+            $def .= ' MATCH ' . ( $c->match_type =~ /full/i ) ? 'FULL' : 'PARTIAL';
         }
 
-        if ( $c->on_delete ) {
-            $def .= ' ON DELETE '.join( ' ', $c->on_delete );
-        }
+#        if ( $c->on_delete ) {
+#            $def .= ' ON DELETE '.join( ' ', $c->on_delete );
+#        }
 
-        if ( $c->on_update ) {
-            $def .= ' ON UPDATE '.join( ' ', $c->on_update );
-        }
+#        if ( $c->on_update ) {
+#            $def .= ' ON UPDATE '.join( ' ', $c->on_update );
+#        }
 
         if ( $c->deferrable ) {
             $def .= ' DEFERRABLE';