/** * Prepare index statement. * * @param IndexInterface $index * @return string */ public function prepareIndexStatement(IndexInterface $index) { switch ($index->getIndexType()) { case IndexInterface::PRIMARY: $result = 'PRIMARY KEY'; break; case IndexInterface::UNIQUE: $result = 'UNIQUE ' . $this->getConnection()->escapeFieldName($index->getName()); break; case IndexInterface::FULLTEXT: $result = 'FULLTEXT ' . $this->getConnection()->escapeFieldName($index->getName()); break; default: $result = 'INDEX ' . $this->getConnection()->escapeFieldName($index->getName()); break; } return $result . ' (' . implode(', ', array_map(function ($field_name) { return $this->getConnection()->escapeFieldName($field_name); }, $index->getFields())) . ')'; }