getTableEngine(); $charset = $this->getUsedCharset(); $collation = $this->getUsedCollation(); $rowFormat = $this->getTableRowFormat(); if ('utf8mb4' === $charset && '' === $collation) { $collation = 'utf8mb4_0900_ai_ci'; } $options = "ENGINE=$engine DEFAULT CHARSET=$charset"; if ('' !== $collation) { $options .= " COLLATE=$collation"; } if ('' !== $rowFormat) { $options .= " $rowFormat"; } return $options; } public function isOptimizeInnoDBSupported(): bool { return false; } public function optimizeTables(array $tables, bool $force = false): bool { // OPTIMIZE TABLE not supported for TiDb return false; } public function supportsSortingInSubquery(): bool { // TiDb optimizer removes all sorting from subqueries return false; } public function getSupportedReadIsolationTransactionLevel(): string { // TiDB doesn't support READ UNCOMMITTED return 'READ COMMITTED'; } public function hasReachedEOL(): bool { // ignore in EOL checks return false; } }