From dc675c66e4696fe562a636b081789592931d44d8 Mon Sep 17 00:00:00 2001 From: Achim Ennenbach Date: Tue, 26 Feb 2019 18:52:32 +0100 Subject: [PATCH] fixes e107org/vstore#99: Difference between MariaDB and MySQL on command TABLE CREATE returns CURRENT_TIMESTAMP w/o brackets Updated method db_verify::diffStructurePermissive() to correct the given sql table definition. --- e107_handlers/db_verify_class.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/e107_handlers/db_verify_class.php b/e107_handlers/db_verify_class.php index 63ff8f027..f55a21630 100755 --- a/e107_handlers/db_verify_class.php +++ b/e107_handlers/db_verify_class.php @@ -154,6 +154,13 @@ class db_verify $actual['default'] = preg_replace("/DEFAULT '(\d*\.?\d*)'/i", 'DEFAULT $1', $actual['default'] ); } + // Correct difference on CREATE TABLE statement between MariaDB and MySQL + if(1 === preg_match('/(DATE|DATETIME|TIMESTAMP|TIME|YEAR)/i', $expected['default'])) + { + $expected['default'] = preg_replace("/CURRENT_TIMESTAMP\(\)/i", 'CURRENT_TIMESTAMP', $expected['default']); + $actual['default'] = preg_replace("/CURRENT_TIMESTAMP\(\)/i", 'CURRENT_TIMESTAMP', $actual['default'] ); + } + return array_diff_assoc($expected, $actual); }