Skip to content

Commit baf740a

Browse files
authored
Merge pull request #141 from bigfoot90/inline-joins
Inline JOINs
2 parents 038f603 + ea60c28 commit baf740a

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

src/Utils/Formatter.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
namespace PhpMyAdmin\SqlParser\Utils;
88

9+
use PhpMyAdmin\SqlParser\Components\JoinKeyword;
910
use PhpMyAdmin\SqlParser\Lexer;
1011
use PhpMyAdmin\SqlParser\Parser;
1112
use PhpMyAdmin\SqlParser\Token;
@@ -383,6 +384,15 @@ public function formatList($list)
383384
}
384385
}
385386

387+
// Inline JOINs
388+
if (($prev->type === Token::TYPE_KEYWORD && isset(JoinKeyword::$JOINS[$prev->value]))
389+
|| (in_array($curr->value, array('ON', 'USING'), true) && isset(JoinKeyword::$JOINS[$list->tokens[$list->idx - 2]->value]))
390+
|| (isset($list->tokens[$list->idx - 4]) && isset(JoinKeyword::$JOINS[$list->tokens[$list->idx - 4]->value]))
391+
|| (isset($list->tokens[$list->idx - 6]) && isset(JoinKeyword::$JOINS[$list->tokens[$list->idx - 6]->value]))
392+
) {
393+
$lineEnded = false;
394+
}
395+
386396
// Indenting BEGIN ... END blocks.
387397
if ($prev->type === Token::TYPE_KEYWORD && $prev->keyword === 'BEGIN') {
388398
$lineEnded = true;

tests/Utils/FormatterTest.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -508,6 +508,13 @@ public function formatQueries()
508508
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-variable">`query`</span> <span class="sql-keyword">TEXT</span> <span class="sql-reserved">NOT NULL</span>,' . '<br/>' .
509509
'&nbsp;&nbsp;&nbsp;&nbsp;<span class="sql-reserved">PRIMARY KEY</span>(<span class="sql-variable">`id`</span>)',
510510
),
511+
'join' => array(
512+
'query' => 'join tbl2 on c1=c2',
513+
'text' => 'JOIN tbl2 ON c1 = c2',
514+
'cli' => "\x1b[35mJOIN \x1b[39mtbl2 \x1b[35mON \x1b[39mc1 \x1b[39m= \x1b[39mc2" .
515+
"\x1b[0m",
516+
'html' => '<span class="sql-reserved">JOIN</span> tbl2 <span class="sql-reserved">ON</span> c1 = c2',
517+
),
511518
);
512519
}
513520
}

0 commit comments

Comments
 (0)