ManaPHP\Db\Adapter\Mysql::getMetadata PHP Method

getMetadata() public method

public getMetadata ( string $source ) : array
$source string
return array
    public function getMetadata($source)
    {
        $escapedTable = $this->escapeIdentifier($source);
        $columns = $this->fetchAll('DESCRIBE ' . $escapedTable, null, \PDO::FETCH_NUM);
        $attributes = [];
        $primaryKeys = [];
        $nonPrimaryKeys = [];
        $autoIncrementAttribute = null;
        foreach ($columns as $column) {
            $columnName = $column[0];
            $attributes[] = $columnName;
            if ($column[3] === 'PRI') {
                $primaryKeys[] = $columnName;
            } else {
                $nonPrimaryKeys = $columnName;
            }
            if ($column[5] === 'auto_increment') {
                $autoIncrementAttribute = $columnName;
            }
        }
        $r = [Metadata::MODEL_ATTRIBUTES => $attributes, Metadata::MODEL_PRIMARY_KEY => $primaryKeys, Metadata::MODEL_NON_PRIMARY_KEY => $nonPrimaryKeys, Metadata::MODEL_IDENTITY_COLUMN => $autoIncrementAttribute];
        return $r;
    }