Add addUnique function

Signed-off-by: David Arendsen <darendsen@gamepoint.com>
This commit is contained in:
David Arendsen 2023-02-12 17:54:18 +01:00
commit 483e67a2e8
6 changed files with 110 additions and 0 deletions

View file

@ -17,6 +17,7 @@ use Arendsen\FluxQueryBuilder\Functions\Min;
use Arendsen\FluxQueryBuilder\Functions\Reduce;
use Arendsen\FluxQueryBuilder\Functions\Sort;
use Arendsen\FluxQueryBuilder\Functions\Sum;
use Arendsen\FluxQueryBuilder\Functions\Unique;
use Arendsen\FluxQueryBuilder\Functions\Window;
trait Universe
@ -133,6 +134,14 @@ trait Universe
return $this;
}
public function addUnique(?string $column = null): QueryBuilderInterface
{
$this->addToQuery(
new Unique($column)
);
return $this;
}
public function addUnWindow(): QueryBuilderInterface
{
$this->addToQuery(

27
src/Functions/Unique.php Normal file
View file

@ -0,0 +1,27 @@
<?php
namespace Arendsen\FluxQueryBuilder\Functions;
use Arendsen\FluxQueryBuilder\Type;
class Unique extends Base
{
/**
* @var string|null $column
*/
private $column;
public function __construct(?string $column = null)
{
$this->column = $column;
}
public function __toString()
{
$params = new Type(array_filter([
'column' => $this->column
]));
return '|> unique(' . $params . ') ';
}
}