Create custom_type_name hint for PostgreSQL enum types, as used by very recent SQL...
Stephen Bennett [Wed, 10 Nov 2010 22:03:08 +0000 (22:03 +0000)]
Changes
lib/DBIx/Class/Schema/Loader/DBI/Pg.pm
t/12pg_common.t

diff --git a/Changes b/Changes
index 1c12d4a..58fa9c2 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,7 @@
 Revision history for Perl extension DBIx::Class::Schema::Loader
 
+        - Generate custom_type_name hint for PostgreSQL enums, as used
+          by very recent SQL::Translator
         - Added support for PostgreSQL enum types
         - Added table/column comment support for Oracle
         - Fix missing require (RT#62072)
index 1b922f1..529be87 100644 (file)
@@ -272,7 +272,9 @@ WHERE t.typname = ?
 EOF
 
     if (@$typevalues) {
+        # This is an enum type. Store its original name in extra for SQLT to pick up.
         $extra_info{extra}{list} = [ map { $_->[0] } @$typevalues ];
+        $extra_info{extra}{custom_type_name} = $info->{data_type};
     }
 
     return \%extra_info;
index bdac57a..3bc7281 100644 (file)
@@ -114,7 +114,8 @@ my $tester = dbixcsl_common_tests->new(
        bytea => { data_type => 'bytea' },
 
         # Enum Types
-        pg_loader_test_enum => { data_type => 'enum', extra => { list => [ qw/foo bar baz/] }, size => 4 },
+        pg_loader_test_enum => { data_type => 'enum', extra => { custom_type_name => 'pg_loader_test_enum',
+                                                                 list => [ qw/foo bar baz/] }, size => 4 },
     },
     pre_create => [
         q{