Fix 'default now()' test for PostgreSQL v10
Dagfinn Ilmari Mannsåker [Tue, 12 Sep 2017 10:37:33 +0000 (11:37 +0100)]
It upcases default_timestamp in default values, so make sure they are
downcased again for consistency with other loaders.

Changes
lib/DBIx/Class/Schema/Loader/DBI/Pg.pm

diff --git a/Changes b/Changes
index ba6ff49..3fc6f80 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,6 +1,7 @@
 Revision history for Perl extension DBIx::Class::Schema::Loader
 
         - Fix for PostgreSQL enums not in the schema search path (RT#123234)
+        - Fix 'default now()' test for PostgreSQL v10
 
 0.07047  2017-05-26
         - Avoid upcoming DBIC warning on implicit SELECT * invocation
index b614919..a0d6dff 100644 (file)
@@ -323,6 +323,10 @@ EOF
                 my $now = 'now()';
                 $info->{original}{default_value} = \$now;
             }
+            elsif (${ $info->{default_value} } =~ /\bCURRENT_TIMESTAMP\b/) {
+                # PostgreSQL v10 upcases current_timestamp in default values
+                ${ $info->{default_value} } =~ s/\b(CURRENT_TIMESTAMP)\b/lc $1/ge;
+            }
         }
 
         # detect 0/1 for booleans and rewrite