Skip to content

Commit c5ccc0d

Browse files
committed
Inline JOINs
1 parent a79e330 commit c5ccc0d

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-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: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -508,6 +508,19 @@ 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' => 'from tbl1 join tbl2 on c1=c2',
513+
'text' => 'FROM' . "\n" .
514+
' tbl1' . "\n" .
515+
'JOIN tbl2 ON c1 = c2',
516+
'cli' => "\x1b[35mFROM" . "\n" .
517+
" \x1b[39mtbl1" . "\n" .
518+
"\x1b[35mJOIN \x1b[39mtbl2 \x1b[35mON \x1b[39mc1 \x1b[39m= \x1b[39mc2" .
519+
"\x1b[0m",
520+
'html' => '<span class="sql-reserved">FROM</span>' . '<br/>' .
521+
'&nbsp;&nbsp;&nbsp;&nbsp;tbl1' . '<br/>' .
522+
'<span class="sql-reserved">JOIN</span> tbl2 <span class="sql-reserved">ON</span> c1 = c2',
523+
),
511524
);
512525
}
513526
}

0 commit comments

Comments
 (0)