diff options
-rw-r--r-- | src/Components/CaseExpression.php | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/Components/CaseExpression.php b/src/Components/CaseExpression.php index 364b7d7..7f6af8c 100644 --- a/src/Components/CaseExpression.php +++ b/src/Components/CaseExpression.php @@ -227,10 +227,7 @@ class CaseExpression extends Component && $token->keyword === 'AS'){ if ($asFound || !empty($ret->alias)) { - $parser->error( - 'Potential duplicate alias of CASE expression.', - $token - ); + $parser->error('Potential duplicate alias of CASE expression.', $token); break; } $asFound = true; @@ -238,6 +235,14 @@ class CaseExpression extends Component } if ($asFound + && $token->type === Token::TYPE_KEYWORD + && ($token->flags & Token::FLAG_KEYWORD_RESERVED || $token->flags & Token::FLAG_KEYWORD_FUNCTION)){ + $parser->error('An alias expected after AS but got '.$token->value, $token); + $asFound = false; + break; + } + + if ($asFound || $token->type === Token::TYPE_STRING || ($token->type === Token::TYPE_SYMBOL && !$token->flags & Token::FLAG_SYMBOL_VARIABLE) || $token->type === Token::TYPE_NONE @@ -257,10 +262,7 @@ class CaseExpression extends Component break; } if ($asFound) { - $parser->error( - 'An alias was expected after AS.', - $list->tokens[$list->idx - 1] - ); + $parser->error('An alias was expected after AS.', $list->tokens[$list->idx - 1]); } |