Files
ulmus/src/Repository/MssqlRepository.php
T

39 lines
1.1 KiB
PHP

<?php
namespace Ulmus\Repository;
use Ulmus\{EntityCollection, Repository, Query, Entity, Ulmus, Common};
class MssqlRepository extends Repository {
protected function finalizeQuery() : void
{
$delete = $this->queryBuilder->getFragment(Query\Delete::class);
$offset = $this->queryBuilder->getFragment(Query\MsSQL\Offset::class);
if ($offset) {
if ( $delete ) {
$delete->top = $offset->limit;
$this->queryBuilder->removeFragment(Query\MsSQL\Offset::class);
}
elseif (null === $this->queryBuilder->getFragment(Query\OrderBy::class)) {
$this->orderBy("(SELECT 0)");
}
}
}
public function listColumns(? string $table = null) : EntityCollection
{
$table ??= $this->entityResolver->tableName();
$this->showColumnsSqlQuery($table);
return $this->collectionFromQuery(Entity\Mssql\Column::class)->iterate(fn($e) => $e->tableName = $table);
}
protected function serverRequestCountRepository() : Repository
{
return new static($this->entityClass, $this->alias, $this->adapter);
}
}