diff options
author | Michal Čihař <michal@cihar.com> | 2016-04-26 15:23:30 +0200 |
---|---|---|
committer | Michal Čihař <michal@cihar.com> | 2016-04-26 15:23:30 +0200 |
commit | d3c22e1e82ada886a95d0ff26df999fefe01ef60 (patch) | |
tree | 3613b3a49cceb8de8e747eec7743b2a2d57fcc09 | |
parent | 84c8ba677d4f27b2a02c9e1bae5e9d0356575338 (diff) | |
download | sql-parser-d3c22e1e82ada886a95d0ff26df999fefe01ef60.zip sql-parser-d3c22e1e82ada886a95d0ff26df999fefe01ef60.tar.gz sql-parser-d3c22e1e82ada886a95d0ff26df999fefe01ef60.tar.bz2 |
Add support for FULL OUTER JOIN
Fixes https://github.com/phpmyadmin/phpmyadmin/issues/12205
Signed-off-by: Michal Čihař <michal@cihar.com>
-rw-r--r-- | src/Components/JoinKeyword.php | 1 | ||||
-rw-r--r-- | src/Contexts/ContextMySql50000.php | 4 | ||||
-rw-r--r-- | src/Contexts/ContextMySql50100.php | 4 | ||||
-rw-r--r-- | src/Contexts/ContextMySql50500.php | 4 | ||||
-rw-r--r-- | src/Contexts/ContextMySql50600.php | 4 | ||||
-rw-r--r-- | src/Contexts/ContextMySql50700.php | 4 | ||||
-rw-r--r-- | src/Parser.php | 4 | ||||
-rw-r--r-- | tools/contexts/_common.txt | 1 |
8 files changed, 16 insertions, 10 deletions
diff --git a/src/Components/JoinKeyword.php b/src/Components/JoinKeyword.php index 75ecca6..e7f62a6 100644 --- a/src/Components/JoinKeyword.php +++ b/src/Components/JoinKeyword.php @@ -32,6 +32,7 @@ class JoinKeyword extends Component */ public static $JOINS = array( 'FULL JOIN' => 'FULL', + 'FULL OUTER JOIN' => 'FULL', 'INNER JOIN' => 'INNER', 'JOIN' => 'JOIN', 'LEFT JOIN' => 'LEFT', diff --git a/src/Contexts/ContextMySql50000.php b/src/Contexts/ContextMySql50000.php index 62b776d..93f0268 100644 --- a/src/Contexts/ContextMySql50000.php +++ b/src/Contexts/ContextMySql50000.php @@ -154,8 +154,8 @@ class ContextMySql50000 extends Context 'SET PASSWORD' => 7, 'SQL SECURITY' => 7, 'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7, 'DATA DIRECTORY' => 7, 'UNION DISTINCT' => 7, - 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'INDEX DIRECTORY' => 7, - 'LEFT OUTER JOIN' => 7, 'SUBPARTITION BY' => 7, + 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'FULL OUTER JOIN' => 7, + 'INDEX DIRECTORY' => 7, 'LEFT OUTER JOIN' => 7, 'SUBPARTITION BY' => 7, 'GENERATED ALWAYS' => 7, 'RIGHT OUTER JOIN' => 7, 'START TRANSACTION' => 7, 'SELECT TRANSACTION' => 7, diff --git a/src/Contexts/ContextMySql50100.php b/src/Contexts/ContextMySql50100.php index 7cb8541..5b15f5f 100644 --- a/src/Contexts/ContextMySql50100.php +++ b/src/Contexts/ContextMySql50100.php @@ -167,8 +167,8 @@ class ContextMySql50100 extends Context 'SET PASSWORD' => 7, 'SQL SECURITY' => 7, 'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7, 'DATA DIRECTORY' => 7, 'UNION DISTINCT' => 7, - 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'INDEX DIRECTORY' => 7, - 'LEFT OUTER JOIN' => 7, 'SUBPARTITION BY' => 7, + 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'FULL OUTER JOIN' => 7, + 'INDEX DIRECTORY' => 7, 'LEFT OUTER JOIN' => 7, 'SUBPARTITION BY' => 7, 'GENERATED ALWAYS' => 7, 'RIGHT OUTER JOIN' => 7, 'START TRANSACTION' => 7, 'SELECT TRANSACTION' => 7, diff --git a/src/Contexts/ContextMySql50500.php b/src/Contexts/ContextMySql50500.php index 04d723d..cb5fdc3 100644 --- a/src/Contexts/ContextMySql50500.php +++ b/src/Contexts/ContextMySql50500.php @@ -171,8 +171,8 @@ class ContextMySql50500 extends Context 'SET PASSWORD' => 7, 'SQL SECURITY' => 7, 'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7, 'DATA DIRECTORY' => 7, 'UNION DISTINCT' => 7, - 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'INDEX DIRECTORY' => 7, - 'LEFT OUTER JOIN' => 7, 'SUBPARTITION BY' => 7, + 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'FULL OUTER JOIN' => 7, + 'INDEX DIRECTORY' => 7, 'LEFT OUTER JOIN' => 7, 'SUBPARTITION BY' => 7, 'GENERATED ALWAYS' => 7, 'RIGHT OUTER JOIN' => 7, 'START TRANSACTION' => 7, 'SELECT TRANSACTION' => 7, diff --git a/src/Contexts/ContextMySql50600.php b/src/Contexts/ContextMySql50600.php index 0e4fef2..aca5f7b 100644 --- a/src/Contexts/ContextMySql50600.php +++ b/src/Contexts/ContextMySql50600.php @@ -177,8 +177,8 @@ class ContextMySql50600 extends Context 'SET PASSWORD' => 7, 'SQL SECURITY' => 7, 'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7, 'DATA DIRECTORY' => 7, 'UNION DISTINCT' => 7, - 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'INDEX DIRECTORY' => 7, - 'LEFT OUTER JOIN' => 7, 'SUBPARTITION BY' => 7, + 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'FULL OUTER JOIN' => 7, + 'INDEX DIRECTORY' => 7, 'LEFT OUTER JOIN' => 7, 'SUBPARTITION BY' => 7, 'GENERATED ALWAYS' => 7, 'RIGHT OUTER JOIN' => 7, 'START TRANSACTION' => 7, 'SELECT TRANSACTION' => 7, diff --git a/src/Contexts/ContextMySql50700.php b/src/Contexts/ContextMySql50700.php index bdcb45e..3f42516 100644 --- a/src/Contexts/ContextMySql50700.php +++ b/src/Contexts/ContextMySql50700.php @@ -183,8 +183,8 @@ class ContextMySql50700 extends Context 'SET PASSWORD' => 7, 'SQL SECURITY' => 7, 'CHARACTER SET' => 7, 'IF NOT EXISTS' => 7, 'DATA DIRECTORY' => 7, 'UNION DISTINCT' => 7, - 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'INDEX DIRECTORY' => 7, - 'LEFT OUTER JOIN' => 7, 'SUBPARTITION BY' => 7, + 'DEFAULT CHARSET' => 7, 'DEFAULT COLLATE' => 7, 'FULL OUTER JOIN' => 7, + 'INDEX DIRECTORY' => 7, 'LEFT OUTER JOIN' => 7, 'SUBPARTITION BY' => 7, 'GENERATED ALWAYS' => 7, 'RIGHT OUTER JOIN' => 7, 'START TRANSACTION' => 7, 'SELECT TRANSACTION' => 7, diff --git a/src/Parser.php b/src/Parser.php index 74274f0..e37b363 100644 --- a/src/Parser.php +++ b/src/Parser.php @@ -210,6 +210,10 @@ class Parser 'class' => 'SqlParser\\Components\\JoinKeyword', 'field' => 'join', ), + 'FULL OUTER JOIN' => array( + 'class' => 'SqlParser\\Components\\JoinKeyword', + 'field' => 'join', + ), 'STRAIGHT_JOIN' => array( 'class' => 'SqlParser\\Components\\JoinKeyword', 'field' => 'join', diff --git a/tools/contexts/_common.txt b/tools/contexts/_common.txt index 0922a32..980429a 100644 --- a/tools/contexts/_common.txt +++ b/tools/contexts/_common.txt @@ -25,6 +25,7 @@ FLOAT (D) FOR EACH ROW FOREIGN KEY (K) FULL JOIN +FULL OUTER JOIN FULLTEXT (K) FULLTEXT INDEX (K) FULLTEXT KEY (K) |