From 659c89e46451c44e2d5d663f060f4a0179449c40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20=C4=8Ciha=C5=99?= Date: Wed, 6 Apr 2016 16:03:19 +0200 Subject: [PATCH] Update SQL Parser to 8de4749d803858859fcf7a39b1bbf058745920f0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See #12165 Signed-off-by: Michal Čihař --- ChangeLog | 1 + libraries/sql-parser/src/Components/Expression.php | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 860aa5ded2..ef123db500 100644 --- a/ChangeLog +++ b/ChangeLog @@ -12,6 +12,7 @@ phpMyAdmin - ChangeLog - issue #12029 Fixed SQL quoting in SQL export - issue #12129 Improve performance of database structure page - issue #12159 Fix PHP error if user did unpack new version over old one +- issue #12165 Fix parsing of expression 0 4.6.0.0 (2016-03-22) + issue #11456 Disabled storage engines diff --git a/libraries/sql-parser/src/Components/Expression.php b/libraries/sql-parser/src/Components/Expression.php index 8d6471c4af..ab855f67cd 100644 --- a/libraries/sql-parser/src/Components/Expression.php +++ b/libraries/sql-parser/src/Components/Expression.php @@ -293,6 +293,9 @@ class Expression extends Component ) { $ret->function = $prev[1]->value; } + } elseif ($token->value === ')' && $brackets == 0) { + // Not our bracket + break; } elseif ($token->value === ')') { --$brackets; if ($brackets === 0) { @@ -393,7 +396,7 @@ class Expression extends Component // White-spaces might be added at the end. $ret->expr = trim($ret->expr); - if (empty($ret->expr)) { + if ($ret->expr === '') { return null; } @@ -412,7 +415,7 @@ class Expression extends Component if (is_array($component)) { return implode($component, ', '); } else { - if (!empty($component->expr)) { + if ($component->expr !== '' && !is_null($component->expr)) { $ret = $component->expr; } else { $fields = array();