From aee67c1399637a7cdda907f40be21922c897d6c1 Mon Sep 17 00:00:00 2001 From: Nick Liu Date: Thu, 16 Jul 2020 17:30:57 -0500 Subject: [PATCH] MySQL 8.0.17+ support: INT types no longer return a width specification Fixes: #4216 --- e107_handlers/db_verify_class.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/e107_handlers/db_verify_class.php b/e107_handlers/db_verify_class.php index 6ff24fa9a..7fb77af2f 100755 --- a/e107_handlers/db_verify_class.php +++ b/e107_handlers/db_verify_class.php @@ -154,6 +154,16 @@ class db_verify $actual['default'] = preg_replace("/DEFAULT '(\d*\.?\d*)'/i", 'DEFAULT $1', $actual['default'] ); } + /** + * Display width specification for integer data types was deprecated in MySQL 8.0.17 + * @see https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-19.html + */ + if(1 === preg_match('/([A-Z]*INT)/i', $expected['type'])) + { + $expected['value'] = ''; + $actual['value'] = ''; + } + // Correct difference on CREATE TABLE statement between MariaDB and MySQL if(1 === preg_match('/(DATE|DATETIME|TIMESTAMP|TIME|YEAR)/i', $expected['default'])) {