summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Čihař <michal@cihar.com>2016-04-26 15:23:30 +0200
committerMichal Čihař <michal@cihar.com>2016-04-26 15:23:30 +0200
commitd3c22e1e82ada886a95d0ff26df999fefe01ef60 (patch)
tree3613b3a49cceb8de8e747eec7743b2a2d57fcc09
parent84c8ba677d4f27b2a02c9e1bae5e9d0356575338 (diff)
downloadsql-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.php1
-rw-r--r--src/Contexts/ContextMySql50000.php4
-rw-r--r--src/Contexts/ContextMySql50100.php4
-rw-r--r--src/Contexts/ContextMySql50500.php4
-rw-r--r--src/Contexts/ContextMySql50600.php4
-rw-r--r--src/Contexts/ContextMySql50700.php4
-rw-r--r--src/Parser.php4
-rw-r--r--tools/contexts/_common.txt1
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)