- Fixed conflicts

This commit is contained in:
Dave Mc Nicoll committed 2022-04-13 03:38:57 +00:00
commit 325704260b
31 files changed
+632 -127

No files matched your search

+25 -1
View File
@@ -5,7 +5,7 @@ namespace Ulmus\Repository;
use Ulmus\{Repository, Query, Ulmus, Common};
class MssqlRepository extends Repository {
/*
protected function finalizeQuery() : void
{
if ( null !== $offset = $this->queryBuilder->getFragment(Query\Offset::class) ) {
@@ -39,6 +39,30 @@ class MssqlRepository extends Repository {
$this->queryBuilder->removeFragment($limit);
}
}
*/
protected function finalizeQuery() : void
{
if ( null !== $offset = $this->queryBuilder->getFragment(Query\MsSQL\Offset::class) ) {
# an order by is mandatory for mssql offset/limit
if ( null === $order = $this->queryBuilder->getFragment(Query\OrderBy::class) ) {
$this->orderBy("(SELECT 0)");
}
if ( empty ($offset->offset ) ) {
if ( null !== $select = $this->queryBuilder->getFragment(Query\Select::class) ) {
$select->top = $offset->limit;
}
elseif ( null !== $delete = $this->queryBuilder->getFragment(Query\Delete::class) ) {
$delete->top = $offset->limit;
}
$this->queryBuilder->removeFragment($offset);
}
elseif ( empty($offset->limit) ) {
throw new \Exception("Your offset query fragment is missing a LIMIT value.");
}
}
}
protected function serverRequestCountRepository() : Repository
{
+26
View File
@@ -0,0 +1,26 @@
<?php
namespace Ulmus\Repository;
use Ulmus\{Common\EntityResolver, ConnectionAdapter, QueryBuilder, Repository, Query, Ulmus};
class MysqlRepository extends Repository {
public function pragma(/*object|Stringable*/ $pragma, $argument = null, bool $callable = false) : self
{
$this->queryBuilder->pragma($pragma, $argument, $callable);
return $this;
}
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();
}
}
+25
View File
@@ -0,0 +1,25 @@
<?php
namespace Ulmus\Repository;
use Ulmus\{ConnectionAdapter, QueryBuilder, Repository, Query, Ulmus};
class SqliteRepository extends Repository {
public function pragma(/*object|Stringable*/ $pragma, $argument = null, bool $callable = false) : self
{
$this->queryBuilder->pragma($pragma, $argument, $callable);
return $this;
}
protected function finalizeQuery() : void
{
}
protected function serverRequestCountRepository() : Repository
{
return new static($this->entityClass, $this->alias, $this->adapter);
}
}