/** * Returns all indexes of the table * * @param string $tableName Name of table * @return array Array of SHOW INDEX FROM ... in SQL */ protected function getAllTableIndexes($tableName) { $sortedIndex = array(); $idx = $this->_db->getTableIndex($tableName); if (is_array($idx)) { foreach ($idx as $n) { $sortedIndex[$n->Key_name][$n->Seq_in_index] = array('name' => $n->Column_name, 'size' => $n->Sub_part, 'ordering' => $n->Collation, 'type' => $n->Key_name == 'PRIMARY' ? 'primary' : ($n->Non_unique == 0 ? 'unique' : ''), 'using' => array_key_exists('Index_type', $n) ? strtolower($n->Index_type) : ($n->Comment == 'FULLTEXT' ? 'fulltext' : '')); } } return $sortedIndex; }