* Update sqlparser to fit php8.

This commit is contained in:
songchenxuan
2024-03-20 09:10:47 +08:00
committed by liyang
parent 380f1d530b
commit f297325727
663 changed files with 140347 additions and 16174 deletions
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Tests\Parser;
use PhpMyAdmin\SqlParser\Tests\TestCase;
@@ -8,51 +10,90 @@ class AlterStatementTest extends TestCase
{
/**
* @dataProvider alterProvider
*
* @param mixed $test
*/
public function testAlter($test)
public function testAlter(string $test): void
{
$this->runParserTest($test);
}
public function alterProvider()
/**
* @return string[][]
*/
public function alterProvider(): array
{
return array(
array('parser/parseAlter'),
array('parser/parseAlter2'),
array('parser/parseAlter3'),
array('parser/parseAlter4'),
array('parser/parseAlter5'),
array('parser/parseAlter6'),
array('parser/parseAlter7'),
array('parser/parseAlter8'),
array('parser/parseAlter9'),
array('parser/parseAlter10'),
array('parser/parseAlter11'),
array('parser/parseAlter12'),
array('parser/parseAlter13'),
array('parser/parseAlterErr'),
array('parser/parseAlterErr2'),
array('parser/parseAlterErr3'),
array('parser/parseAlterErr4'),
array('parser/parseAlterWithInvisible'),
array('parser/parseAlterTableCharacterSet1'),
array('parser/parseAlterTableCharacterSet2'),
array('parser/parseAlterTableCharacterSet3'),
array('parser/parseAlterTableCharacterSet4'),
array('parser/parseAlterTableCharacterSet5'),
array('parser/parseAlterTableCharacterSet6'),
array('parser/parseAlterTableCharacterSet7'),
array('parser/parseAlterUser'),
array('parser/parseAlterUser1'),
array('parser/parseAlterUser2'),
array('parser/parseAlterUser3'),
array('parser/parseAlterUser4'),
array('parser/parseAlterUser5'),
array('parser/parseAlterUser6'),
array('parser/parseAlterUser7'),
array('parser/parseAlterUser8'),
);
return [
['parser/parseAlter'],
['parser/parseAlter2'],
['parser/parseAlter3'],
['parser/parseAlter4'],
['parser/parseAlter5'],
['parser/parseAlter6'],
['parser/parseAlter7'],
['parser/parseAlter8'],
['parser/parseAlter9'],
['parser/parseAlter10'],
['parser/parseAlter11'],
['parser/parseAlter12'],
['parser/parseAlter13'],
['parser/parseAlter14'],
['parser/parseAlterErr'],
['parser/parseAlterErr2'],
['parser/parseAlterErr3'],
['parser/parseAlterErr4'],
['parser/parseAlterTableRenameIndex1'],
['parser/parseAlterTableRenameIndex2'],
['parser/parseAlterTablePartitionByRange1'],
['parser/parseAlterTablePartitionByRange2'],
['parser/parseAlterTableCoalescePartition'],
['parser/parseAlterTableAddSpatialIndex1'],
['parser/parseAlterTableDropAddIndex1'],
['parser/parseAlterTableDropColumn1'],
['parser/parseAlterTableModifyColumn'],
['parser/parseAlterTableModifyColumnEnum1'],
['parser/parseAlterTableModifyColumnEnum2'],
['parser/parseAlterTableModifyColumnEnum3'],
['parser/parseAlterWithInvisible'],
['parser/parseAlterTableCharacterSet1'],
['parser/parseAlterTableCharacterSet2'],
['parser/parseAlterTableCharacterSet3'],
['parser/parseAlterTableCharacterSet4'],
['parser/parseAlterTableCharacterSet5'],
['parser/parseAlterTableCharacterSet6'],
['parser/parseAlterTableCharacterSet7'],
['parser/parseAlterUser'],
['parser/parseAlterUser1'],
['parser/parseAlterUser2'],
['parser/parseAlterUser3'],
['parser/parseAlterUser4'],
['parser/parseAlterUser5'],
['parser/parseAlterUser6'],
['parser/parseAlterUser7'],
['parser/parseAlterUser8'],
['parser/parseAlterUser9'],
['parser/parseAlterUser10'],
['parser/parseAlterEvent'],
['parser/parseAlterEvent2'],
['parser/parseAlterEvent3'],
['parser/parseAlterEvent4'],
['parser/parseAlterEvent5'],
['parser/parseAlterEvent6'],
['parser/parseAlterEvent7'],
['parser/parseAlterEvent8'],
['parser/parseAlterEvent9'],
['parser/parseAlterEventComplete'],
['parser/parseAlterEventErr'],
['parser/parseAlterEventOnScheduleAt'],
['parser/parseAlterEventOnScheduleAt2'],
['parser/parseAlterEventOnScheduleEvery'],
['parser/parseAlterEventOnScheduleEvery2'],
['parser/parseAlterEventOnScheduleEvery3'],
['parser/parseAlterEventOnScheduleEvery4'],
['parser/parseAlterEventOnScheduleEvery5'],
['parser/parseAlterEventOnScheduleEvery6'],
['parser/parseAlterEventWithDefiner'],
['parser/parseAlterEventWithOtherDefiners'],
['parser/parseAlterRenameColumn'],
['parser/parseAlterRenameColumns'],
];
}
}
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Tests\Parser;
use PhpMyAdmin\SqlParser\Tests\TestCase;
@@ -8,20 +10,23 @@ class CallStatementTest extends TestCase
{
/**
* @dataProvider callProvider
*
* @param mixed $test
*/
public function testCall($test)
public function testCall(string $test): void
{
$this->runParserTest($test);
}
public function callProvider()
/**
* @return string[][]
*/
public function callProvider(): array
{
return array(
array('parser/parseCall'),
array('parser/parseCall2'),
array('parser/parseCall3')
);
return [
['parser/parseCall'],
['parser/parseCall2'],
['parser/parseCall3'],
['parser/parseCall4'],
['parser/parseCall5'],
];
}
}
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Tests\Parser;
use PhpMyAdmin\SqlParser\Tests\TestCase;
@@ -8,60 +10,77 @@ class CreateStatementTest extends TestCase
{
/**
* @dataProvider createProvider
*
* @param mixed $test
*/
public function testCreate($test)
public function testCreate(string $test): void
{
$this->runParserTest($test);
}
public function createProvider()
/**
* @return string[][]
*/
public function createProvider(): array
{
return array(
array('parser/parseCreateDatabase'),
array('parser/parseCreateDatabaseErr'),
array('parser/parseCreateFunction'),
array('parser/parseCreateFunctionErr1'),
array('parser/parseCreateFunctionErr2'),
array('parser/parseCreateFunctionErr3'),
array('parser/parseCreateProcedure'),
array('parser/parseCreateProcedure1'),
array('parser/parseCreateProcedure2'),
array('parser/parseCreateSchema'),
array('parser/parseCreateSchemaErr'),
array('parser/parseCreateTable'),
array('parser/parseCreateTable2'),
array('parser/parseCreateTable3'),
array('parser/parseCreateTable4'),
array('parser/parseCreateTable5'),
array('parser/parseCreateTable6'),
array('parser/parseCreateTable7'),
array('parser/parseCreateTableErr1'),
array('parser/parseCreateTableErr2'),
array('parser/parseCreateTableErr3'),
array('parser/parseCreateTableErr4'),
array('parser/parseCreateTableErr5'),
array('parser/parseCreateTableSelect'),
array('parser/parseCreateTableAsSelect'),
array('parser/parseCreateTableLike'),
array('parser/parseCreateTableSpatial'),
array('parser/parseCreateTableTimestampWithPrecision'),
array('parser/parseCreateTableEnforcedCheck'),
array('parser/parseCreateTableNotEnforcedCheck'),
array('parser/parseCreateTableWithInvisibleKey'),
array('parser/parseCreateTrigger'),
array('parser/parseCreateUser'),
array('parser/parseCreateView'),
array('parser/parseCreateView2'),
array('parser/parseCreateView3'),
array('parser/parseCreateView4'),
array('parser/parseCreateViewMultiple'),
array('parser/parseCreateViewWithoutQuotes'),
array('parser/parseCreateViewWithQuotes'),
array('parser/parseCreateViewWithWrongSyntax'),
array('parser/parseCreateViewWithUnion'),
array('parser/parseCreateViewAsWithAs'),
);
return [
['parser/parseCreateDatabase'],
['parser/parseCreateDatabaseErr'],
['parser/parseCreateFunction'],
['parser/parseCreateFunctionErr1'],
['parser/parseCreateFunctionErr2'],
['parser/parseCreateFunctionErr3'],
['parser/parseCreateProcedure'],
['parser/parseCreateProcedure1'],
['parser/parseCreateProcedure2'],
['parser/parseCreateProcedure3'],
['parser/parseCreateProcedure4'],
['parser/parseCreateSchema'],
['parser/parseCreateSchemaErr'],
['parser/parseCreateTable'],
['parser/parseCreateTable2'],
['parser/parseCreateTable3'],
['parser/parseCreateTable4'],
['parser/parseCreateTable5'],
['parser/parseCreateTable6'],
['parser/parseCreateTable7'],
['parser/parseCreateTable8'],
['parser/parseCreateTable9'],
['parser/parseCreateTable10'],
['parser/parseCreateTable11'],
['parser/parseCreateTable12'],
['parser/parseCreateTable13'],
['parser/parseCreateTable14'],
['parser/parseCreateTable15'],
['parser/parseCreateTable16'],
['parser/parseCreateTable17'],
['parser/parseCreateTable18'],
['parser/parseCreateTableErr1'],
['parser/parseCreateTableErr2'],
['parser/parseCreateTableErr3'],
['parser/parseCreateTableErr4'],
['parser/parseCreateTableErr5'],
['parser/parseCreateTableSelect'],
['parser/parseCreateTableAsSelect'],
['parser/parseCreateTableLike'],
['parser/parseCreateTableSpatial'],
['parser/parseCreateTableTimestampWithPrecision'],
['parser/parseCreateTableEnforcedCheck'],
['parser/parseCreateTableNotEnforcedCheck'],
['parser/parseCreateTableWithInvisibleKey'],
['parser/parseCreateTrigger'],
['parser/parseCreateUser1'],
['parser/parseCreateUser2'],
['parser/parseCreateView'],
['parser/parseCreateView2'],
['parser/parseCreateView3'],
['parser/parseCreateView4'],
['parser/parseCreateView5'],
['parser/parseCreateViewMultiple'],
['parser/parseCreateViewWithoutQuotes'],
['parser/parseCreateViewWithQuotes'],
['parser/parseCreateViewWithWrongSyntax'],
['parser/parseCreateViewWithUnion'],
['parser/parseCreateViewAsWithAs'],
['parser/parseCreateOrReplaceView1'],
];
}
}
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Tests\Parser;
use PhpMyAdmin\SqlParser\Tests\TestCase;
@@ -8,42 +10,43 @@ class DeleteStatementTest extends TestCase
{
/**
* @dataProvider deleteProvider
*
* @param mixed $test
*/
public function testDelete($test)
public function testDelete(string $test): void
{
$this->runParserTest($test);
}
public function deleteProvider()
/**
* @return string[][]
*/
public function deleteProvider(): array
{
return array(
array('parser/parseDelete'),
array('parser/parseDelete2'),
array('parser/parseDelete3'),
array('parser/parseDelete4'),
array('parser/parseDelete5'),
array('parser/parseDelete6'),
array('parser/parseDelete7'),
array('parser/parseDelete8'),
array('parser/parseDelete9'),
array('parser/parseDelete10'),
array('parser/parseDelete11'),
array('parser/parseDelete12'),
array('parser/parseDeleteErr1'),
array('parser/parseDeleteErr2'),
array('parser/parseDeleteErr3'),
array('parser/parseDeleteErr4'),
array('parser/parseDeleteErr5'),
array('parser/parseDeleteErr6'),
array('parser/parseDeleteErr7'),
array('parser/parseDeleteErr8'),
array('parser/parseDeleteErr9'),
array('parser/parseDeleteErr10'),
array('parser/parseDeleteErr11'),
array('parser/parseDeleteErr12'),
array('parser/parseDeleteJoin')
);
return [
['parser/parseDelete'],
['parser/parseDelete2'],
['parser/parseDelete3'],
['parser/parseDelete4'],
['parser/parseDelete5'],
['parser/parseDelete6'],
['parser/parseDelete7'],
['parser/parseDelete8'],
['parser/parseDelete9'],
['parser/parseDelete10'],
['parser/parseDelete11'],
['parser/parseDelete12'],
['parser/parseDeleteErr1'],
['parser/parseDeleteErr2'],
['parser/parseDeleteErr3'],
['parser/parseDeleteErr4'],
['parser/parseDeleteErr5'],
['parser/parseDeleteErr6'],
['parser/parseDeleteErr7'],
['parser/parseDeleteErr8'],
['parser/parseDeleteErr9'],
['parser/parseDeleteErr10'],
['parser/parseDeleteErr11'],
['parser/parseDeleteErr12'],
['parser/parseDeleteJoin'],
];
}
}
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Tests\Parser;
use PhpMyAdmin\SqlParser\Tests\TestCase;
@@ -8,19 +10,20 @@ class DropStatementTest extends TestCase
{
/**
* @dataProvider dropProvider
*
* @param mixed $test
*/
public function testDrop($test)
public function testDrop(string $test): void
{
$this->runParserTest($test);
}
public function dropProvider()
/**
* @return string[][]
*/
public function dropProvider(): array
{
return array(
array('parser/parseDrop'),
array('parser/parseDrop2'),
);
return [
['parser/parseDrop'],
['parser/parseDrop2'],
];
}
}
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Tests\Parser;
use PhpMyAdmin\SqlParser\Tests\TestCase;
@@ -8,18 +10,37 @@ class ExplainStatementTest extends TestCase
{
/**
* @dataProvider explainProvider
*
* @param mixed $test
*/
public function testExplain($test)
public function testExplain(string $test): void
{
$this->runParserTest($test);
}
public function explainProvider()
/**
* @return string[][]
*/
public function explainProvider(): array
{
return array(
array('parser/parseExplain')
);
return [
['parser/parseExplain'],
['parser/parseExplain1'],
['parser/parseExplain2'],
['parser/parseExplain3'],
['parser/parseExplain4'],
['parser/parseExplain5'],
['parser/parseExplain6'],
['parser/parseExplain7'],
['parser/parseExplain8'],
['parser/parseExplain9'],
['parser/parseExplain10'],
['parser/parseExplain11'],
['parser/parseExplain12'],
['parser/parseExplain13'],
['parser/parseExplain14'],
['parser/parseExplainErr'],
['parser/parseExplainErr1'],
['parser/parseExplainErr2'],
['parser/parseExplainErr3'],
];
}
}
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Tests\Parser;
use PhpMyAdmin\SqlParser\Tests\TestCase;
@@ -8,26 +10,28 @@ class InsertStatementTest extends TestCase
{
/**
* @dataProvider insertProvider
*
* @param mixed $test
*/
public function testInsert($test)
public function testInsert(string $test): void
{
$this->runParserTest($test);
}
public function insertProvider()
/**
* @return string[][]
*/
public function insertProvider(): array
{
return array(
array('parser/parseInsert'),
array('parser/parseInsertSelect'),
array('parser/parseInsertOnDuplicateKey'),
array('parser/parseInsertSetOnDuplicateKey'),
array('parser/parseInsertSelectOnDuplicateKey'),
array('parser/parseInsertOnDuplicateKeyErr'),
array('parser/parseInsertErr'),
array('parser/parseInsertErr2'),
array('parser/parseInsertIntoErr')
);
return [
['parser/parseInsert'],
['parser/parseInsertFunction'],
['parser/parseInsertSelect'],
['parser/parseInsertOnDuplicateKey'],
['parser/parseInsertSetOnDuplicateKey'],
['parser/parseInsertSelectOnDuplicateKey'],
['parser/parseInsertOnDuplicateKeyErr'],
['parser/parseInsertErr'],
['parser/parseInsertErr2'],
['parser/parseInsertIntoErr'],
];
}
}
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Tests\Parser;
use PhpMyAdmin\SqlParser\Parser;
@@ -7,7 +9,7 @@ use PhpMyAdmin\SqlParser\Tests\TestCase;
class LoadStatementTest extends TestCase
{
public function testLoadOptions()
public function testLoadOptions(): void
{
$data = $this->getData('parser/parseLoad1');
$parser = new Parser($data['query']);
@@ -17,29 +19,31 @@ class LoadStatementTest extends TestCase
/**
* @dataProvider loadProvider
*
* @param mixed $test
*/
public function testLoad($test)
public function testLoad(string $test): void
{
$this->runParserTest($test);
}
public function loadProvider()
/**
* @return string[][]
*/
public function loadProvider(): array
{
return array(
array('parser/parseLoad1'),
array('parser/parseLoad2'),
array('parser/parseLoad3'),
array('parser/parseLoad4'),
array('parser/parseLoad5'),
array('parser/parseLoad6'),
array('parser/parseLoadErr1'),
array('parser/parseLoadErr2'),
array('parser/parseLoadErr3'),
array('parser/parseLoadErr4'),
array('parser/parseLoadErr5'),
array('parser/parseLoadErr6')
);
return [
['parser/parseLoad1'],
['parser/parseLoad2'],
['parser/parseLoad3'],
['parser/parseLoad4'],
['parser/parseLoad5'],
['parser/parseLoad6'],
['parser/parseLoad7'],
['parser/parseLoadErr1'],
['parser/parseLoadErr2'],
['parser/parseLoadErr3'],
['parser/parseLoadErr4'],
['parser/parseLoadErr5'],
['parser/parseLoadErr6'],
];
}
}
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Tests\Parser;
use PhpMyAdmin\SqlParser\Tests\TestCase;
@@ -8,34 +10,35 @@ class LockStatementTest extends TestCase
{
/**
* @dataProvider lockProvider
*
* @param mixed $test
*/
public function testLock($test)
public function testLock(string $test): void
{
$this->runParserTest($test);
}
public function lockProvider()
/**
* @return string[][]
*/
public function lockProvider(): array
{
return array(
array('parser/parseLock1'),
array('parser/parseLock2'),
array('parser/parseLock3'),
array('parser/parseLock4'),
array('parser/parseLock5'),
array('parser/parseLockErr1'),
array('parser/parseLockErr2'),
array('parser/parseLockErr3'),
array('parser/parseLockErr4'),
array('parser/parseLockErr5'),
array('parser/parseLockErr6'),
array('parser/parseLockErr7'),
array('parser/parseLockErr8'),
array('parser/parseLockErr9'),
array('parser/parseLockErr10'),
array('parser/parseUnlock1'),
array('parser/parseUnlockErr1')
);
return [
['parser/parseLock1'],
['parser/parseLock2'],
['parser/parseLock3'],
['parser/parseLock4'],
['parser/parseLock5'],
['parser/parseLockErr1'],
['parser/parseLockErr2'],
['parser/parseLockErr3'],
['parser/parseLockErr4'],
['parser/parseLockErr5'],
['parser/parseLockErr6'],
['parser/parseLockErr7'],
['parser/parseLockErr8'],
['parser/parseLockErr9'],
['parser/parseLockErr10'],
['parser/parseUnlock1'],
['parser/parseUnlockErr1'],
];
}
}
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Tests\Parser;
use PhpMyAdmin\SqlParser\Exceptions\ParserException;
@@ -8,28 +10,31 @@ use PhpMyAdmin\SqlParser\Tests\TestCase;
use PhpMyAdmin\SqlParser\Token;
use PhpMyAdmin\SqlParser\TokensList;
use function sprintf;
class ParserTest extends TestCase
{
/**
* @dataProvider parseProvider
*
* @param mixed $test
*/
public function testParse($test)
public function testParse(string $test): void
{
$this->runParserTest($test);
}
public function parseProvider()
/**
* @return string[][]
*/
public function parseProvider(): array
{
return array(
array('parser/parse'),
array('parser/parse2'),
array('parser/parseDelimiter')
);
return [
['parser/parse'],
['parser/parse2'],
['parser/parseDelimiter'],
];
}
public function testUnrecognizedStatement()
public function testUnrecognizedStatement(): void
{
$parser = new Parser('SELECT 1; FROM');
$this->assertEquals(
@@ -38,7 +43,7 @@ class ParserTest extends TestCase
);
}
public function testUnrecognizedKeyword()
public function testUnrecognizedKeyword(): void
{
$parser = new Parser('SELECT 1 FROM foo PARTITION(bar, baz) AS');
$this->assertEquals(
@@ -51,7 +56,7 @@ class ParserTest extends TestCase
* @runInSeparateProcess
* @preserveGlobalState disabled
*/
public function testError()
public function testError(): void
{
$parser = new Parser(new TokensList());
@@ -60,20 +65,18 @@ class ParserTest extends TestCase
$this->assertEquals(
$parser->errors,
array(
[
new ParserException('error #1', new Token('foo'), 1),
new ParserException('error #2', new Token('bar'), 2),
)
]
);
}
/**
* @expectedException \PhpMyAdmin\SqlParser\Exceptions\ParserException
* @expectedExceptionMessage strict error
* @expectedExceptionCode 3
*/
public function testErrorStrict()
public function testErrorStrict(): void
{
$this->expectExceptionCode(3);
$this->expectExceptionMessage('strict error');
$this->expectException(ParserException::class);
$parser = new Parser(new TokensList());
$parser->strict = true;
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Tests\Parser;
use PhpMyAdmin\SqlParser\Tests\TestCase;
@@ -8,24 +10,25 @@ class PurgeStatementTest extends TestCase
{
/**
* @dataProvider purgeProvider
*
* @param mixed $test
*/
public function testPurge($test)
public function testPurge(string $test): void
{
$this->runParserTest($test);
}
public function purgeProvider()
/**
* @return string[][]
*/
public function purgeProvider(): array
{
return array(
array('parser/parsePurge'),
array('parser/parsePurge2'),
array('parser/parsePurge3'),
array('parser/parsePurge4'),
array('parser/parsePurgeErr'),
array('parser/parsePurgeErr2'),
array('parser/parsePurgeErr3')
);
return [
['parser/parsePurge'],
['parser/parsePurge2'],
['parser/parsePurge3'],
['parser/parsePurge4'],
['parser/parsePurgeErr'],
['parser/parsePurgeErr2'],
['parser/parsePurgeErr3'],
];
}
}
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Tests\Parser;
use PhpMyAdmin\SqlParser\Tests\TestCase;
@@ -8,24 +10,25 @@ class RenameStatementTest extends TestCase
{
/**
* @dataProvider renameProvider
*
* @param mixed $test
*/
public function testRename($test)
public function testRename(string $test): void
{
$this->runParserTest($test);
}
public function renameProvider()
/**
* @return string[][]
*/
public function renameProvider(): array
{
return array(
array('parser/parseRename'),
array('parser/parseRename2'),
array('parser/parseRenameErr1'),
array('parser/parseRenameErr2'),
array('parser/parseRenameErr3'),
array('parser/parseRenameErr4'),
array('parser/parseRenameErr5')
);
return [
['parser/parseRename'],
['parser/parseRename2'],
['parser/parseRenameErr1'],
['parser/parseRenameErr2'],
['parser/parseRenameErr3'],
['parser/parseRenameErr4'],
['parser/parseRenameErr5'],
];
}
}
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Tests\Parser;
use PhpMyAdmin\SqlParser\Tests\TestCase;
@@ -8,26 +10,27 @@ class ReplaceStatementTest extends TestCase
{
/**
* @dataProvider replaceProvider
*
* @param mixed $test
*/
public function testReplace($test)
public function testReplace(string $test): void
{
$this->runParserTest($test);
}
public function replaceProvider()
/**
* @return string[][]
*/
public function replaceProvider(): array
{
return array(
array('parser/parseReplace'),
array('parser/parseReplace2'),
array('parser/parseReplaceValues'),
array('parser/parseReplaceSet'),
array('parser/parseReplaceSelect'),
array('parser/parseReplaceErr'),
array('parser/parseReplaceErr2'),
array('parser/parseReplaceErr3'),
array('parser/parseReplaceIntoErr')
);
return [
['parser/parseReplace'],
['parser/parseReplace2'],
['parser/parseReplaceValues'],
['parser/parseReplaceSet'],
['parser/parseReplaceSelect'],
['parser/parseReplaceErr'],
['parser/parseReplaceErr2'],
['parser/parseReplaceErr3'],
['parser/parseReplaceIntoErr'],
];
}
}
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Tests\Parser;
use PhpMyAdmin\SqlParser\Tests\TestCase;
@@ -8,18 +10,19 @@ class RestoreStatementTest extends TestCase
{
/**
* @dataProvider restoreProvider
*
* @param mixed $test
*/
public function testRestore($test)
public function testRestore(string $test): void
{
$this->runParserTest($test);
}
public function restoreProvider()
/**
* @return string[][]
*/
public function restoreProvider(): array
{
return array(
array('parser/parseRestore')
);
return [
['parser/parseRestore'],
];
}
}
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Tests\Parser;
use PhpMyAdmin\SqlParser\Parser;
@@ -7,7 +9,7 @@ use PhpMyAdmin\SqlParser\Tests\TestCase;
class SelectStatementTest extends TestCase
{
public function testSelectOptions()
public function testSelectOptions(): void
{
$data = $this->getData('parser/parseSelect');
$parser = new Parser($data['query']);
@@ -17,77 +19,92 @@ class SelectStatementTest extends TestCase
/**
* @dataProvider selectProvider
*
* @param mixed $test
*/
public function testSelect($test)
public function testSelect(string $test): void
{
$this->runParserTest($test);
}
public function selectProvider()
/**
* @return string[][]
*/
public function selectProvider(): array
{
return array(
array('parser/parseSelect2'),
array('parser/parseSelect3'),
array('parser/parseSelect4'),
array('parser/parseSelect5'),
array('parser/parseSelect6'),
array('parser/parseSelect7'),
array('parser/parseSelect8'),
array('parser/parseSelect9'),
array('parser/parseSelect10'),
array('parser/parseSelect11'),
array('parser/parseSelectErr1'),
array('parser/parseSelectErr2'),
array('parser/parseSelectNested'),
array('parser/parseSelectCase1'),
array('parser/parseSelectCase2'),
array('parser/parseSelectCase3'),
array('parser/parseSelectCase4'),
array('parser/parseSelectCase5'),
array('parser/parseSelectCaseErr1'),
array('parser/parseSelectCaseErr2'),
array('parser/parseSelectCaseErr3'),
array('parser/parseSelectCaseErr4'),
array('parser/parseSelectCaseErr5'),
array('parser/parseSelectCaseAlias1'),
array('parser/parseSelectCaseAlias2'),
array('parser/parseSelectCaseAlias3'),
array('parser/parseSelectCaseAlias4'),
array('parser/parseSelectCaseAlias5'),
array('parser/parseSelectCaseAlias6'),
array('parser/parseSelectCaseAliasErr1'),
array('parser/parseSelectCaseAliasErr2'),
array('parser/parseSelectCaseAliasErr3'),
array('parser/parseSelectCaseAliasErr4'),
array('parser/parseSelectExists'),
array('parser/parseSelectIntoOptions1'),
array('parser/parseSelectIntoOptions2'),
array('parser/parseSelectIntoOptions3'),
array('parser/parseSelectJoinCross'),
array('parser/parseSelectJoinNatural'),
array('parser/parseSelectJoinNaturalLeft'),
array('parser/parseSelectJoinNaturalRight'),
array('parser/parseSelectJoinNaturalLeftOuter'),
array('parser/parseSelectJoinNaturalRightOuter'),
array('parser/parseSelectJoinMultiple'),
array('parser/parseSelectJoinMultiple2'),
array('parser/parseSelectWrongOrder'),
array('parser/parseSelectWrongOrder2'),
array('parser/parseSelectEndOptions1'),
array('parser/parseSelectEndOptions2'),
array('parser/parseSelectEndOptionsErr'),
array('parser/parseSelectUnion'),
array('parser/parseSelectUnion2'),
array('parser/parseSelectIndexHint1'),
array('parser/parseSelectIndexHint2'),
array('parser/parseSelectIndexHintErr1'),
array('parser/parseSelectIndexHintErr2'),
array('parser/parseSelectIndexHintErr3'),
array('parser/parseSelectIndexHintErr4'),
array('parser/parseSelectWithParenthesis'),
array('parser/parseSelectOrderByComment')
);
return [
['parser/parseSelect2'],
['parser/parseSelect3'],
['parser/parseSelect4'],
['parser/parseSelect5'],
['parser/parseSelect6'],
['parser/parseSelect7'],
['parser/parseSelect8'],
['parser/parseSelect9'],
['parser/parseSelect10'],
['parser/parseSelect11'],
['parser/parseSelect12'],
['parser/parseSelect13'],
['parser/parseSelect14'],
['parser/parseSelect15'],
['parser/parseSelect16'],
['parser/parseSelectAggregateWithPartitionAndAlias'],
['parser/parseSelectErr1'],
['parser/parseSelectErr2'],
['parser/parseSelectNested'],
['parser/parseSelectCase1'],
['parser/parseSelectCase2'],
['parser/parseSelectCase3'],
['parser/parseSelectCase4'],
['parser/parseSelectCase5'],
['parser/parseSelectCaseErr1'],
['parser/parseSelectCaseErr2'],
['parser/parseSelectCaseErr3'],
['parser/parseSelectCaseErr4'],
['parser/parseSelectCaseErr5'],
['parser/parseSelectCaseAlias1'],
['parser/parseSelectCaseAlias2'],
['parser/parseSelectCaseAlias3'],
['parser/parseSelectCaseAlias4'],
['parser/parseSelectCaseAlias5'],
['parser/parseSelectCaseAlias6'],
['parser/parseSelectCaseAliasErr1'],
['parser/parseSelectCaseAliasErr2'],
['parser/parseSelectCaseAliasErr3'],
['parser/parseSelectCaseAliasErr4'],
['parser/parseSelectExists'],
['parser/parseSelectIntoOptions1'],
['parser/parseSelectIntoOptions2'],
['parser/parseSelectIntoOptions3'],
['parser/parseSelectJoinCross'],
['parser/parseSelectJoinNatural'],
['parser/parseSelectJoinNaturalLeft'],
['parser/parseSelectJoinNaturalRight'],
['parser/parseSelectJoinNaturalLeftOuter'],
['parser/parseSelectJoinNaturalRightOuter'],
['parser/parseSelectJoinMultiple'],
['parser/parseSelectJoinMultiple2'],
['parser/parseSelectWrongOrder'],
['parser/parseSelectWrongOrder2'],
['parser/parseSelectEndOptions1'],
['parser/parseSelectEndOptions2'],
['parser/parseSelectEndOptionsErr'],
['parser/parseSelectUnion'],
['parser/parseSelectUnion2'],
['parser/parseSelectWhere'],
['parser/parseSelectWhereCollate'],
['parser/parseSelectIndexHint1'],
['parser/parseSelectIndexHint2'],
['parser/parseSelectOrderByIsNull'],
['parser/parseSelectIndexHintErr1'],
['parser/parseSelectIndexHintErr2'],
['parser/parseSelectIndexHintErr3'],
['parser/parseSelectIndexHintErr4'],
['parser/parseSelectWithParenthesis'],
['parser/parseSelectOrderByComment'],
['parser/parseSelectOverAlias_mariadb_100600'],
['parser/parseSelectGroupBy'],
['parser/parseSelectGroupByErr'],
['parser/parseSelectGroupByWithComments'],
['parser/parseTable1'],
];
}
}
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Tests\Parser;
use PhpMyAdmin\SqlParser\Tests\TestCase;
@@ -8,26 +10,30 @@ class SetStatementTest extends TestCase
{
/**
* @dataProvider setProvider
*
* @param mixed $test
*/
public function testSet($test)
public function testSet(string $test): void
{
$this->runParserTest($test);
}
public function setProvider()
/**
* @return string[][]
*/
public function setProvider(): array
{
return array(
array('parser/parseSetCharset'),
array('parser/parseSetCharsetError'),
array('parser/parseSetCharacterSet'),
array('parser/parseSetCharacterSetError'),
array('parser/parseAlterTableSetAutoIncrementError'),
array('parser/parseSetNames'),
array('parser/parseSetNamesError'),
array('parser/parseSetError1'),
array('parser/parseInsertIntoSet')
);
return [
['parser/parseSetCharset'],
['parser/parseSetCharsetError'],
['parser/parseSetCharacterSet'],
['parser/parseSetCharacterSetError'],
['parser/parseAlterTableSetAutoIncrementError'],
['parser/parseSetNames'],
['parser/parseSetNamesError'],
['parser/parseSetError1'],
['parser/parseInsertIntoSet'],
['parser/parseSetVariable'],
['parser/parseSetVariable2'],
['parser/parseSetGlobalVariable'],
];
}
}
@@ -1,28 +1,47 @@
<?php
declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Tests\Parser;
use PhpMyAdmin\SqlParser\Parser;
use PhpMyAdmin\SqlParser\Tests\TestCase;
class TransactionStatementTest extends TestCase
{
public function testBuildWithoutEnd(): void
{
$data = $this->getData('parser/parseTransaction4');
$parser = new Parser($data['query']);
$stmt = $parser->statements[0];
$this->assertEquals(
'START TRANSACTION;SET time_zone = "+00:00";',
$stmt->build()
);
}
/**
* @dataProvider transactionProvider
*
* @param mixed $test
*/
public function testTransaction($test)
public function testTransaction(string $test): void
{
$this->runParserTest($test);
}
public function transactionProvider()
/**
* @return string[][]
*/
public function transactionProvider(): array
{
return array(
array('parser/parseTransaction'),
array('parser/parseTransaction2'),
array('parser/parseTransaction3'),
array('parser/parseTransactionErr1')
);
return [
['parser/parseTransaction'],
['parser/parseTransaction2'],
['parser/parseTransaction3'],
['parser/parseTransaction4'],
['parser/parseTransaction5'],
['parser/parseTransaction6'],
['parser/parseTransaction7'],
['parser/parseTransactionErr1'],
];
}
}
@@ -1,5 +1,7 @@
<?php
declare(strict_types=1);
namespace PhpMyAdmin\SqlParser\Tests\Parser;
use PhpMyAdmin\SqlParser\Tests\TestCase;
@@ -8,21 +10,26 @@ class UpdateStatementTest extends TestCase
{
/**
* @dataProvider updateProvider
*
* @param mixed $test
*/
public function testUpdate($test)
public function testUpdate(string $test): void
{
$this->runParserTest($test);
}
public function updateProvider()
/**
* @return string[][]
*/
public function updateProvider(): array
{
return array(
array('parser/parseUpdate'),
array('parser/parseUpdate2'),
array('parser/parseUpdate3'),
array('parser/parseUpdateErr')
);
return [
['parser/parseUpdate1'],
['parser/parseUpdate2'],
['parser/parseUpdate3'],
['parser/parseUpdate4'],
['parser/parseUpdate5'],
['parser/parseUpdate6'],
['parser/parseUpdate7'],
['parser/parseUpdateErr'],
];
}
}