Merge branch 'MDL-52511-master' of git://github.com/danpoltawski/moodle
authorEloy Lafuente (stronk7) <stronk7@moodle.org>
Tue, 16 Feb 2016 01:00:37 +0000 (02:00 +0100)
committerEloy Lafuente (stronk7) <stronk7@moodle.org>
Tue, 16 Feb 2016 01:00:37 +0000 (02:00 +0100)
lib/dml/pgsql_native_moodle_database.php

index e369d39..5052886 100644 (file)
@@ -478,7 +478,14 @@ class pgsql_native_moodle_database extends moodle_database {
                 $info->scale         = null;
                 $info->not_null      = ($rawcolumn->attnotnull === 't');
                 if ($info->has_default) {
-                    $info->default_value = trim($rawcolumn->adsrc, '()');
+                    // PG 9.5+ uses ::<TYPE> syntax for some defaults.
+                    $parts = explode('::', $rawcolumn->adsrc);
+                    if (count($parts) > 1) {
+                        $info->default_value = reset($parts);
+                    } else {
+                        $info->default_value = $rawcolumn->adsrc;
+                    }
+                    $info->default_value = trim($info->default_value, "()'");
                 } else {
                     $info->default_value = null;
                 }
@@ -496,7 +503,14 @@ class pgsql_native_moodle_database extends moodle_database {
                 $info->not_null      = ($rawcolumn->attnotnull === 't');
                 $info->has_default   = ($rawcolumn->atthasdef === 't');
                 if ($info->has_default) {
-                    $info->default_value = trim($rawcolumn->adsrc, '()');
+                    // PG 9.5+ uses ::<TYPE> syntax for some defaults.
+                    $parts = explode('::', $rawcolumn->adsrc);
+                    if (count($parts) > 1) {
+                        $info->default_value = reset($parts);
+                    } else {
+                        $info->default_value = $rawcolumn->adsrc;
+                    }
+                    $info->default_value = trim($info->default_value, "()'");
                 } else {
                     $info->default_value = null;
                 }
@@ -514,7 +528,14 @@ class pgsql_native_moodle_database extends moodle_database {
                 $info->not_null      = ($rawcolumn->attnotnull === 't');
                 $info->has_default   = ($rawcolumn->atthasdef === 't');
                 if ($info->has_default) {
-                    $info->default_value = trim($rawcolumn->adsrc, '()');
+                    // PG 9.5+ uses ::<TYPE> syntax for some defaults.
+                    $parts = explode('::', $rawcolumn->adsrc);
+                    if (count($parts) > 1) {
+                        $info->default_value = reset($parts);
+                    } else {
+                        $info->default_value = $rawcolumn->adsrc;
+                    }
+                    $info->default_value = trim($info->default_value, "()'");
                 } else {
                     $info->default_value = null;
                 }