public function getColumns($database, $table, $column = null, $full = false, $link = null)
{
$sql = $this->getColumnsSql($database, $table, $column, $full);
$fields = $this->fetchResult($sql, 'Field', null, $link);
if (!is_array($fields) || count($fields) == 0) {
return array();
}
// Check if column is a part of multiple-column index and set its 'Key'.
$indexes = Index::getFromTable($table, $database);
foreach ($fields as $field => $field_data) {
if (!empty($field_data['Key'])) {
continue;
}
foreach ($indexes as $index) {
/** @var Index $index */
if (!$index->hasColumn($field)) {
continue;
}
$index_columns = $index->getColumns();
if ($index_columns[$field]->getSeqInIndex() > 1) {
if ($index->isUnique()) {
$fields[$field]['Key'] = 'UNI';
} else {
$fields[$field]['Key'] = 'MUL';
}
}
}
}
return $column != null ? array_shift($fields) : $fields;
}