forked from doctrine/dbal
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* 3.9.x: Simplify signature of fetchTableOptionsByTable Add MariaDb1010Platform for fetchTableOptionsByTable
- Loading branch information
Showing
6 changed files
with
86 additions
and
28 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
<?php | ||
|
||
declare(strict_types=1); | ||
|
||
namespace Doctrine\DBAL\Platforms; | ||
|
||
use Doctrine\DBAL\SQL\Builder\SelectSQLBuilder; | ||
|
||
use function implode; | ||
|
||
/** | ||
* Provides the behavior, features and SQL dialect of the MariaDB 10.10 database platform. | ||
*/ | ||
class MariaDB1010Platform extends MariaDB1060Platform | ||
{ | ||
public function createSelectSQLBuilder(): SelectSQLBuilder | ||
{ | ||
return AbstractPlatform::createSelectSQLBuilder(); | ||
} | ||
|
||
public function fetchTableOptionsByTable(bool $includeTableName): string | ||
{ | ||
// MariaDB-10.10.1 added FULL_COLLATION_NAME to the information_schema.COLLATION_CHARACTER_SET_APPLICABILITY. | ||
// A base collation like uca1400_ai_ci can refer to multiple character sets. The value in the | ||
// information_schema.TABLES.TABLE_COLLATION corresponds to the full collation name. | ||
$sql = <<<'SQL' | ||
SELECT t.TABLE_NAME, | ||
t.ENGINE, | ||
t.AUTO_INCREMENT, | ||
t.TABLE_COMMENT, | ||
t.CREATE_OPTIONS, | ||
t.TABLE_COLLATION, | ||
ccsa.CHARACTER_SET_NAME | ||
FROM information_schema.TABLES t | ||
INNER JOIN information_schema.COLLATION_CHARACTER_SET_APPLICABILITY ccsa | ||
ON ccsa.FULL_COLLATION_NAME = t.TABLE_COLLATION | ||
SQL; | ||
|
||
$conditions = ['t.TABLE_SCHEMA = ?']; | ||
|
||
if ($includeTableName) { | ||
$conditions[] = 't.TABLE_NAME = ?'; | ||
} | ||
|
||
$conditions[] = "t.TABLE_TYPE = 'BASE TABLE'"; | ||
|
||
return $sql . ' WHERE ' . implode(' AND ', $conditions); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters