36 lines
1.1 KiB
PHP
36 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Ulmus\Repository;
|
|
|
|
use Ulmus\{EntityCollection, Repository, Query, Entity, Ulmus};
|
|
|
|
class MysqlRepository extends Repository {
|
|
use JsonConditionTrait;
|
|
|
|
public function pragma(/*object|Stringable*/ $pragma, $argument = null, bool $callable = false) : self
|
|
{
|
|
$this->queryBuilder->pragma($pragma, $argument, $callable);
|
|
|
|
return $this;
|
|
}
|
|
|
|
public function listColumns(? string $table = null) : EntityCollection
|
|
{
|
|
$table ??= $this->entityResolver->tableName();
|
|
$this->showColumnsSqlQuery($table);
|
|
|
|
return $this->collectionFromQuery(Entity\Mysql\Column::class)->iterate(fn($e) => $e->tableName = $table);
|
|
}
|
|
|
|
public function createSqlQuery() : self
|
|
{
|
|
if ( null === $this->queryBuilder->getFragment(Query\Engine::class) ) {
|
|
if ( $engine = $this->entityResolver->tableAnnotation()->engine ?? $this->entityResolver->databaseAdapter()->adapter()->defaultEngine() ) {
|
|
$this->queryBuilder->engine($engine);
|
|
}
|
|
}
|
|
|
|
return parent::createSqlQuery();
|
|
}
|
|
}
|