diff --git a/libs/codesniffer/PhOSCo/Sniffs/Commenting/FileCommentSniff.php b/libs/codesniffer/PhOSCo/Sniffs/Commenting/FileCommentSniff.php index 56f3d824..5a668b6d 100644 --- a/libs/codesniffer/PhOSCo/Sniffs/Commenting/FileCommentSniff.php +++ b/libs/codesniffer/PhOSCo/Sniffs/Commenting/FileCommentSniff.php @@ -476,9 +476,9 @@ protected function processPackage($errorPos) { $newContent = preg_replace('/[^A-Za-z_]/', '', $newContent); $nameBits = explode('_', $newContent); $firstBit = array_shift($nameBits); - $newName = strtoupper($firstBit{0}) . substr($firstBit, 1) . '_'; + $newName = strtoupper($firstBit[0]) . substr($firstBit, 1) . '_'; foreach ($nameBits as $bit) { - $newName .= strtoupper($bit{0}) . substr($bit, 1) . '_'; + $newName .= strtoupper($bit[0]) . substr($bit, 1) . '_'; } $error = 'Package name "%s" is not valid; consider "%s" instead'; @@ -504,9 +504,9 @@ protected function processSubpackage($errorPos) { $newContent = str_replace(' ', '_', $content); $nameBits = explode('_', $newContent); $firstBit = array_shift($nameBits); - $newName = strtoupper($firstBit{0}) . substr($firstBit, 1) . '_'; + $newName = strtoupper($firstBit[0]) . substr($firstBit, 1) . '_'; foreach ($nameBits as $bit) { - $newName .= strtoupper($bit{0}) . substr($bit, 1) . '_'; + $newName .= strtoupper($bit[0]) . substr($bit, 1) . '_'; } $error = 'Subpackage name "%s" is not valid; consider "%s" instead'; diff --git a/src/PHPSQLParser/PHPSQLCreator.php b/src/PHPSQLParser/PHPSQLCreator.php index 409ab00d..c7a67de6 100644 --- a/src/PHPSQLParser/PHPSQLCreator.php +++ b/src/PHPSQLParser/PHPSQLCreator.php @@ -40,6 +40,7 @@ */ namespace PHPSQLParser; +use PHPSQLParser\builders\Builder; use PHPSQLParser\exceptions\UnsupportedFeatureException; use PHPSQLParser\builders\SelectStatementBuilder; use PHPSQLParser\builders\DeleteStatementBuilder; @@ -64,7 +65,8 @@ * */ class PHPSQLCreator { - + public $created; + public function __construct($parsed = false) { if ($parsed) { $this->create($parsed); @@ -76,9 +78,9 @@ public function create($parsed) { switch ($k) { case 'UNION': - $builder = new UnionStatementBuilder(); - $this->created = $builder->build($parsed); - break; + $builder = new UnionStatementBuilder(); + $this->created = $builder->build($parsed); + break; case 'UNION ALL': $builder = new UnionAllStatementBuilder(); $this->created = $builder->build($parsed); diff --git a/src/PHPSQLParser/processors/SelectExpressionProcessor.php b/src/PHPSQLParser/processors/SelectExpressionProcessor.php index 5d6f846a..a4cbc57c 100644 --- a/src/PHPSQLParser/processors/SelectExpressionProcessor.php +++ b/src/PHPSQLParser/processors/SelectExpressionProcessor.php @@ -89,7 +89,9 @@ public function process($expression) { // but also a comment! if ($capture) { if (!$this->isWhitespaceToken($upper) && !$this->isCommentToken($upper)) { - $alias['name'] .= $token; + if ($alias) { + $alias['name'] .= $token; + } array_pop($stripped); } $alias['base_expr'] .= $token; diff --git a/src/PHPSQLParser/utils/PHPSQLParserConstants.php b/src/PHPSQLParser/utils/PHPSQLParserConstants.php index 7b01eafb..5a3b92ea 100644 --- a/src/PHPSQLParser/utils/PHPSQLParserConstants.php +++ b/src/PHPSQLParser/utils/PHPSQLParserConstants.php @@ -129,7 +129,7 @@ class PHPSQLParserConstants { 'BITLENGTH', 'CAST', 'CEILING', 'CHAR', 'CHAR_LENGTH', 'CHARACTER_LENGTH', 'CHARSET', 'COALESCE', 'COERCIBILITY', 'COLLATION', 'COMPRESS', 'CONCAT', 'CONCAT_WS', 'CONNECTION_ID', 'CONV', 'CONVERT', 'CONVERT_TZ', 'COS', 'COT', 'COUNT', 'CRC32', - 'CURDATE', 'CURRENT_USER', 'CURRVAL', 'CURTIME', 'DATABASE', 'SCHEMA', 'DATE_ADD', 'DATE_DIFF', + 'CURDATE', 'CURRENT_TIMESTAMP', 'CURRENT_USER', 'CURRVAL', 'CURTIME', 'DATABASE', 'SCHEMA', 'DATE_ADD', 'DATE_DIFF', 'DATE_FORMAT', 'DATE_SUB', 'DAY', 'DAYNAME', 'DAYOFMONTH', 'DAYOFWEEK', 'DAYOFYEAR', 'DECODE', 'DEFAULT', 'DEGREES', 'DES_DECRYPT', 'DES_ENCRYPT', 'ELT', 'ENCODE', 'ENCRYPT', 'EXP', 'EXPORT_SET', 'EXTRACT', 'FIELD', 'FIND_IN_SET', 'FLOOR', 'FORMAT', diff --git a/tests/cases/creator/issue368Test.php b/tests/cases/creator/issue368Test.php new file mode 100644 index 00000000..189c0b8c --- /dev/null +++ b/tests/cases/creator/issue368Test.php @@ -0,0 +1,30 @@ +parse($sql); + + $this->assertEquals($sql, $creator->create($parser->parsed)); + } +} diff --git a/tests/cases/parser/issue320Test.php b/tests/cases/parser/issue320Test.php index 1f3b274e..b907cd63 100644 --- a/tests/cases/parser/issue320Test.php +++ b/tests/cases/parser/issue320Test.php @@ -39,9 +39,8 @@ */ namespace PHPSQLParser\Test\Parser; use PHPSQLParser\PHPSQLParser; -use PHPSQLParser\PHPSQLCreator; -class issue320Test extends \PHPUnit_Framework_TestCase +class issue320Test extends \PHPUnit\Framework\TestCase { public function test_no_warning_is_issued_when_help_table_is_used() { diff --git a/tests/cases/parser/issue335Test.php b/tests/cases/parser/issue335Test.php index 7dd5a869..90bf3b9c 100644 --- a/tests/cases/parser/issue335Test.php +++ b/tests/cases/parser/issue335Test.php @@ -39,7 +39,7 @@ use PHPSQLParser\PHPSQLParser; -class issue335Test extends \PHPUnit_Framework_TestCase +class issue335Test extends \PHPUnit\Framework\TestCase { /** * @test