From 707ffe666d267613811a463cd344fa6432b9e9f0 Mon Sep 17 00:00:00 2001 From: Dan Ungureanu Date: Fri, 26 Jun 2015 14:25:53 +0300 Subject: [PATCH] Updated sql-parser library. Signed-off-by: Dan Ungureanu --- libraries/sql-parser/src/Context.php | 10 +++++- .../src/Contexts/ContextMySql50000.php | 5 +-- .../src/Contexts/ContextMySql50100.php | 5 +-- .../src/Contexts/ContextMySql50500.php | 5 +-- .../src/Contexts/ContextMySql50600.php | 5 +-- .../src/Contexts/ContextMySql50700.php | 5 +-- .../src/Exceptions/LexerException.php | 6 ++++ .../src/Exceptions/ParserException.php | 6 ++++ libraries/sql-parser/src/Fragment.php | 9 ++++++ .../src/Fragments/ArrayFragment.php | 6 ++++ .../sql-parser/src/Fragments/CallKeyword.php | 6 ++++ .../src/Fragments/CreateDefFragment.php | 6 ++++ .../src/Fragments/DataTypeFragment.php | 6 ++++ .../src/Fragments/FieldDefFragment.php | 8 +++++ .../src/Fragments/FieldFragment.php | 6 ++++ .../sql-parser/src/Fragments/FromKeyword.php | 6 ++++ .../sql-parser/src/Fragments/IntoKeyword.php | 6 ++++ .../sql-parser/src/Fragments/JoinKeyword.php | 6 ++++ .../sql-parser/src/Fragments/KeyFragment.php | 6 ++++ .../sql-parser/src/Fragments/LimitKeyword.php | 6 ++++ .../src/Fragments/OptionsFragment.php | 10 ++++-- .../sql-parser/src/Fragments/OrderKeyword.php | 6 ++++ .../src/Fragments/ParamDefFragment.php | 6 ++++ .../src/Fragments/ReferencesKeyword.php | 6 ++++ .../src/Fragments/RenameKeyword.php | 6 ++++ .../src/Fragments/SelectKeyword.php | 6 ++++ .../sql-parser/src/Fragments/SetKeyword.php | 6 ++++ .../src/Fragments/ValuesKeyword.php | 6 ++++ .../sql-parser/src/Fragments/WhereKeyword.php | 6 ++++ libraries/sql-parser/src/Lexer.php | 9 ++++++ libraries/sql-parser/src/Parser.php | 9 ++++++ libraries/sql-parser/src/Statement.php | 22 +++++++++---- .../src/Statements/AlterStatement.php | 6 ++++ .../src/Statements/AnalyzeStatement.php | 6 ++++ .../src/Statements/BackupStatement.php | 6 ++++ .../src/Statements/CallStatement.php | 6 ++++ .../src/Statements/CheckStatement.php | 6 ++++ .../src/Statements/ChecsumStatement.php | 6 ++++ .../src/Statements/CreateStatement.php | 14 +++++--- .../src/Statements/DeleteStatement.php | 6 ++++ .../src/Statements/DropStatement.php | 6 ++++ .../src/Statements/ExplainStatement.php | 6 ++++ .../src/Statements/InsertStatement.php | 6 ++++ .../src/Statements/MaintenanceStatement.php | 18 +++++++---- .../Statements/NotImplementedStatement.php | 16 +++++++--- .../src/Statements/OptimizeStatement.php | 6 ++++ .../src/Statements/RenameStatement.php | 14 +++++--- .../src/Statements/RepairStatement.php | 6 ++++ .../src/Statements/ReplaceStatement.php | 6 ++++ .../src/Statements/RestoreStatement.php | 6 ++++ .../src/Statements/SelectStatement.php | 6 ++++ .../src/Statements/ShowStatement.php | 6 ++++ .../src/Statements/UpdateStatement.php | 6 ++++ libraries/sql-parser/src/Token.php | 7 ++++ libraries/sql-parser/src/TokensList.php | 5 +++ libraries/sql-parser/src/UtfString.php | 12 +++++++ libraries/sql-parser/src/Utils/Misc.php | 32 +++++++++++-------- libraries/sql-parser/src/Utils/Query.php | 12 +++++-- libraries/sql-parser/src/Utils/Routine.php | 14 +++++--- libraries/sql-parser/src/Utils/Table.php | 22 ++++++++----- 60 files changed, 423 insertions(+), 67 deletions(-) diff --git a/libraries/sql-parser/src/Context.php b/libraries/sql-parser/src/Context.php index cbe666df57..699d800b87 100644 --- a/libraries/sql-parser/src/Context.php +++ b/libraries/sql-parser/src/Context.php @@ -1,9 +1,17 @@ from)) || (empty($tree->expr))) { + if ((empty($statement->from)) || (empty($statement->expr))) { return array(); } @@ -35,28 +41,28 @@ class Misc $tables = array(); - if ((!empty($tree->join->expr->table)) - && (!empty($tree->join->expr->alias)) + if ((!empty($statement->join->expr->table)) + && (!empty($statement->join->expr->alias)) ) { - $thisDb = empty($tree->join->expr->database) ? - $database : $tree->join->expr->database; + $thisDb = empty($statement->join->expr->database) ? + $database : $statement->join->expr->database; $retval = array( $thisDb => array( 'alias' => null, 'tables' => array( - $tree->join->expr->table => array( - 'alias' => $tree->join->expr->alias, + $statement->join->expr->table => array( + 'alias' => $statement->join->expr->alias, 'columns' => array(), ), ), ), ); - $tables[$thisDb][$tree->join->expr->alias] = $tree->join->expr->table; + $tables[$thisDb][$statement->join->expr->alias] = $statement->join->expr->table; } - foreach ($tree->from as $expr) { + foreach ($statement->from as $expr) { if (empty($expr->table)) { continue; } @@ -83,7 +89,7 @@ class Misc $tables[$thisDb][$expr->alias] = $expr->table; } - foreach ($tree->expr as $expr) { + foreach ($statement->expr as $expr) { if ((empty($expr->column)) || (empty($expr->alias))) { continue; } diff --git a/libraries/sql-parser/src/Utils/Query.php b/libraries/sql-parser/src/Utils/Query.php index c3083441ea..b1a95b155c 100644 --- a/libraries/sql-parser/src/Utils/Query.php +++ b/libraries/sql-parser/src/Utils/Query.php @@ -1,5 +1,11 @@ 0, @@ -106,9 +112,9 @@ class Routine 'opts' => array(), ); - if (!empty($tree->parameters)) { + if (!empty($statement->parameters)) { $idx = 0; - foreach ($tree->parameters as $param) { + foreach ($statement->parameters as $param) { $retval['dir'][$idx] = $param->inOut; $retval['name'][$idx] = $param->name; $retval['type'][$idx] = $param->type->name; diff --git a/libraries/sql-parser/src/Utils/Table.php b/libraries/sql-parser/src/Utils/Table.php index 6bc83a501f..95b685001c 100644 --- a/libraries/sql-parser/src/Utils/Table.php +++ b/libraries/sql-parser/src/Utils/Table.php @@ -1,5 +1,11 @@ fields)) || (!$tree->options->has('TABLE'))) { + if ((empty($statement->fields)) || (!$statement->options->has('TABLE'))) { return array(); } $ret = array(); - foreach ($tree->fields as $field) { + foreach ($statement->fields as $field) { if ((empty($field->key)) || ($field->key->type !== 'FOREIGN KEY')) { continue; @@ -74,19 +80,19 @@ class Table /** * Gets fields of the table. * - * @param CreateStatement $tree + * @param CreateStatement $statement The statement to be processed. * * @return array */ - public static function getFields($tree) + public static function getFields($statement) { - if ((empty($tree->fields)) || (!$tree->options->has('TABLE'))) { + if ((empty($statement->fields)) || (!$statement->options->has('TABLE'))) { return array(); } $ret = array(); - foreach ($tree->fields as $field) { + foreach ($statement->fields as $field) { // Skipping keys. if (empty($field->type)) {