<?php declare(strict_types=1); namespace Doctrine\DBAL\Platforms; use Doctrine\DBAL\Schema\Index; use Doctrine\DBAL\Schema\TableDiff; use Doctrine\DBAL\Types\Types; /** * Provides the behavior, features and SQL dialect of the MySQL 5.7 (5.7.9 GA) database platform. */ class MySQL57Platform extends MySqlPlatform { /** * {@inheritdoc} */ public function hasNativeJsonType() : bool { return true; } /** * {@inheritdoc} */ public function getJsonTypeDeclarationSQL(array $field) : string { return 'JSON'; } /** * {@inheritdoc} */ protected function getPreAlterTableRenameIndexForeignKeySQL(TableDiff $diff) : array { return []; } /** * {@inheritdoc} */ protected function getPostAlterTableRenameIndexForeignKeySQL(TableDiff $diff) : array { return []; } /** * {@inheritdoc} */ protected function getRenameIndexSQL(string $oldIndexName, Index $index, string $tableName) : array { return ['ALTER TABLE ' . $tableName . ' RENAME INDEX ' . $oldIndexName . ' TO ' . $index->getQuotedName($this)]; } /** * {@inheritdoc} */ protected function getReservedKeywordsClass() : string { return Keywords\MySQL57Keywords::class; } /** * {@inheritdoc} */ protected function initializeDoctrineTypeMappings() : void { parent::initializeDoctrineTypeMappings(); $this->doctrineTypeMapping['json'] = Types::JSON; } }