add compat methods
[dbsrgits/SQL-Translator-2.0-ish.git] / lib / SQL / Translator / Parser / DBI / PostgreSQL.pm
index 065166b..0d79c87 100644 (file)
@@ -1,21 +1,27 @@
-package SQL::Translator::Parser::DBI::PostgreSQL;
-use namespace::autoclean;
-use Moose::Role;
-use MooseX::Types::Moose qw(Str);
+use MooseX::Declare;
+role SQL::Translator::Parser::DBI::PostgreSQL {
+    use MooseX::Types::Moose qw(HashRef Str);
+    use SQL::Translator::Types qw(View);
+    
+    has '+schema_name' => (
+      isa => Str,
+      lazy => 1,
+      default => 'public'
+    );
+    
+    method _get_view_sql(View $view) {
+        my ($sql) = $self->dbh->selectrow_array("SELECT pg_get_viewdef('$view'::regclass)");
+        return $sql;
+    }
+    
+    method _is_auto_increment(HashRef $column_info) {
+        return $column_info->{COLUMN_DEF} && $column_info->{COLUMN_DEF} =~ /^nextval\(/ ? 1 : 0;
+    }
+    
+    method _column_default_value(HashRef $column_info) {
+        my $default_value = $column_info->{COLUMN_DEF};
+        $default_value =~ s/::.*$// if defined $default_value;
 
-has '+schema_name' => (
-  isa => Str,
-  required => 1,
-  lazy => 1,
-  default => 'public'
-);
-
-sub _get_view_sql {
-    my $self = shift;
-    my $view = shift;
-
-    my ($sql) = $self->dbh->selectrow_array("SELECT pg_get_viewdef('$view'::regclass)");
-    return $sql;
+        return $default_value;
+    }
 }
-
-1;