public function getMetadata($source)
{
$columns = $this->fetchAll('PRAGMA table_info(' . $this->escapeIdentifier($source) . ')', null, \PDO::FETCH_ASSOC);
$attributes = [];
$primaryKeys = [];
$nonPrimaryKeys = [];
$autoIncrementAttribute = null;
foreach ($columns as $column) {
$columnName = $column['name'];
$attributes[] = $columnName;
if ($column['pk'] === '1') {
$primaryKeys[] = $columnName;
} else {
$nonPrimaryKeys = $columnName;
}
if ($column['pk'] === '1' && $column['type'] === 'INTEGER') {
$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;
}