Skip to content
Merged
26 changes: 21 additions & 5 deletions src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Daterange.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,28 @@
*
* @author Martin Georgiev <martin.georgiev@gmail.com>
*/
class Daterange extends BaseFunction
class Daterange extends BaseVariadicFunction
{
protected function customizeFunction(): void
protected function getFunctionName(): string
{
$this->setFunctionPrototype('daterange(%s, %s)');
$this->addNodeMapping('StringPrimary');
$this->addNodeMapping('StringPrimary');
return 'daterange';
}

/**
* @return array<string>
*/
protected function getNodeMappingPattern(): array
{
return ['StringPrimary'];
}

protected function getMinArgumentCount(): int
{
return 2;
}

protected function getMaxArgumentCount(): int
{
return 3;
}
}
26 changes: 21 additions & 5 deletions src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Int4range.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,28 @@
*
* @author Martin Georgiev <martin.georgiev@gmail.com>
*/
class Int4range extends BaseFunction
class Int4range extends BaseVariadicFunction
{
protected function customizeFunction(): void
protected function getFunctionName(): string
{
$this->setFunctionPrototype('int4range(%s, %s)');
$this->addNodeMapping('StringPrimary');
$this->addNodeMapping('StringPrimary');
return 'int4range';
}

/**
* @return array<string>
*/
protected function getNodeMappingPattern(): array
{
return ['StringPrimary'];
}

protected function getMinArgumentCount(): int
{
return 2;
}

protected function getMaxArgumentCount(): int
{
return 3;
}
}
26 changes: 21 additions & 5 deletions src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Int8range.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,28 @@
*
* @author Martin Georgiev <martin.georgiev@gmail.com>
*/
class Int8range extends BaseFunction
class Int8range extends BaseVariadicFunction
{
protected function customizeFunction(): void
protected function getFunctionName(): string
{
$this->setFunctionPrototype('int8range(%s, %s)');
$this->addNodeMapping('StringPrimary');
$this->addNodeMapping('StringPrimary');
return 'int8range';
}

/**
* @return array<string>
*/
protected function getNodeMappingPattern(): array
{
return ['StringPrimary'];
}

protected function getMinArgumentCount(): int
{
return 2;
}

protected function getMaxArgumentCount(): int
{
return 3;
}
}
26 changes: 21 additions & 5 deletions src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Numrange.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,28 @@
*
* @author Martin Georgiev <martin.georgiev@gmail.com>
*/
class Numrange extends BaseFunction
class Numrange extends BaseVariadicFunction
{
protected function customizeFunction(): void
protected function getFunctionName(): string
{
$this->setFunctionPrototype('numrange(%s, %s)');
$this->addNodeMapping('StringPrimary');
$this->addNodeMapping('StringPrimary');
return 'numrange';
}

/**
* @return array<string>
*/
protected function getNodeMappingPattern(): array
{
return ['StringPrimary'];
}

protected function getMinArgumentCount(): int
{
return 2;
}

protected function getMaxArgumentCount(): int
{
return 3;
}
}
26 changes: 21 additions & 5 deletions src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Tsrange.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,28 @@
*
* @author Martin Georgiev <martin.georgiev@gmail.com>
*/
class Tsrange extends BaseFunction
class Tsrange extends BaseVariadicFunction
{
protected function customizeFunction(): void
protected function getFunctionName(): string
{
$this->setFunctionPrototype('tsrange(%s, %s)');
$this->addNodeMapping('StringPrimary');
$this->addNodeMapping('StringPrimary');
return 'tsrange';
}

/**
* @return array<string>
*/
protected function getNodeMappingPattern(): array
{
return ['StringPrimary'];
}

protected function getMinArgumentCount(): int
{
return 2;
}

protected function getMaxArgumentCount(): int
{
return 3;
}
}
26 changes: 21 additions & 5 deletions src/MartinGeorgiev/Doctrine/ORM/Query/AST/Functions/Tstzrange.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,28 @@
*
* @author Martin Georgiev <martin.georgiev@gmail.com>
*/
class Tstzrange extends BaseFunction
class Tstzrange extends BaseVariadicFunction
{
protected function customizeFunction(): void
protected function getFunctionName(): string
{
$this->setFunctionPrototype('tstzrange(%s, %s)');
$this->addNodeMapping('StringPrimary');
$this->addNodeMapping('StringPrimary');
return 'tstzrange';
}

/**
* @return array<string>
*/
protected function getNodeMappingPattern(): array
{
return ['StringPrimary'];
}

protected function getMinArgumentCount(): int
{
return 2;
}

protected function getMaxArgumentCount(): int
{
return 3;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,16 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
'SELECT daterange(c0_.date1, c0_.date2) AS sclr_0 FROM ContainsDates c0_',
'basic range with default bounds' => 'SELECT daterange(c0_.date1, c0_.date2) AS sclr_0 FROM ContainsDates c0_',
'range with explicit bounds' => "SELECT daterange(c0_.date1, c0_.date2, '[)') AS sclr_0 FROM ContainsDates c0_",
];
}

protected function getDqlStatements(): array
{
return [
\sprintf('SELECT DATERANGE(e.date1, e.date2) FROM %s e', ContainsDates::class),
'basic range with default bounds' => \sprintf('SELECT DATERANGE(e.date1, e.date2) FROM %s e', ContainsDates::class),
'range with explicit bounds' => \sprintf("SELECT DATERANGE(e.date1, e.date2, '[)') FROM %s e", ContainsDates::class),
];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,16 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
'SELECT int4range(c0_.integer1, c0_.integer2) AS sclr_0 FROM ContainsIntegers c0_',
'basic range with default bounds' => 'SELECT int4range(c0_.integer1, c0_.integer2) AS sclr_0 FROM ContainsIntegers c0_',
'range with explicit bounds' => "SELECT int4range(c0_.integer1, c0_.integer2, '[)') AS sclr_0 FROM ContainsIntegers c0_",
];
}

protected function getDqlStatements(): array
{
return [
\sprintf('SELECT INT4RANGE(e.integer1, e.integer2) FROM %s e', ContainsIntegers::class),
'basic range with default bounds' => \sprintf('SELECT INT4RANGE(e.integer1, e.integer2) FROM %s e', ContainsIntegers::class),
'range with explicit bounds' => \sprintf("SELECT INT4RANGE(e.integer1, e.integer2, '[)') FROM %s e", ContainsIntegers::class),
];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,16 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
'SELECT int8range(c0_.integer1, c0_.integer2) AS sclr_0 FROM ContainsIntegers c0_',
'basic range with default bounds' => 'SELECT int8range(c0_.integer1, c0_.integer2) AS sclr_0 FROM ContainsIntegers c0_',
'range with explicit bounds' => "SELECT int8range(c0_.integer1, c0_.integer2, '[)') AS sclr_0 FROM ContainsIntegers c0_",
];
}

protected function getDqlStatements(): array
{
return [
\sprintf('SELECT INT8RANGE(e.integer1, e.integer2) FROM %s e', ContainsIntegers::class),
'basic range with default bounds' => \sprintf('SELECT INT8RANGE(e.integer1, e.integer2) FROM %s e', ContainsIntegers::class),
'range with explicit bounds' => \sprintf("SELECT INT8RANGE(e.integer1, e.integer2, '[)') FROM %s e", ContainsIntegers::class),
];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,16 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
'SELECT numrange(c0_.decimal1, c0_.decimal2) AS sclr_0 FROM ContainsDecimals c0_',
'basic range with default bounds' => 'SELECT numrange(c0_.decimal1, c0_.decimal2) AS sclr_0 FROM ContainsDecimals c0_',
'range with explicit bounds' => "SELECT numrange(c0_.decimal1, c0_.decimal2, '[)') AS sclr_0 FROM ContainsDecimals c0_",
];
}

protected function getDqlStatements(): array
{
return [
\sprintf('SELECT NUMRANGE(e.decimal1, e.decimal2) FROM %s e', ContainsDecimals::class),
'basic range with default bounds' => \sprintf('SELECT NUMRANGE(e.decimal1, e.decimal2) FROM %s e', ContainsDecimals::class),
'range with explicit bounds' => \sprintf("SELECT NUMRANGE(e.decimal1, e.decimal2, '[)') FROM %s e", ContainsDecimals::class),
];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,16 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
'SELECT tsrange(c0_.datetime1, c0_.datetime2) AS sclr_0 FROM ContainsDates c0_',
'basic range with default bounds' => 'SELECT tsrange(c0_.datetime1, c0_.datetime2) AS sclr_0 FROM ContainsDates c0_',
'range with explicit bounds' => "SELECT tsrange(c0_.datetime1, c0_.datetime2, '[)') AS sclr_0 FROM ContainsDates c0_",
];
}

protected function getDqlStatements(): array
{
return [
\sprintf('SELECT TSRANGE(e.datetime1, e.datetime2) FROM %s e', ContainsDates::class),
'basic range with default bounds' => \sprintf('SELECT TSRANGE(e.datetime1, e.datetime2) FROM %s e', ContainsDates::class),
'range with explicit bounds' => \sprintf("SELECT TSRANGE(e.datetime1, e.datetime2, '[)') FROM %s e", ContainsDates::class),
];
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,16 @@ protected function getStringFunctions(): array
protected function getExpectedSqlStatements(): array
{
return [
'SELECT tstzrange(c0_.datetimetz1, c0_.datetimetz2) AS sclr_0 FROM ContainsDates c0_',
'basic range with default bounds' => 'SELECT tstzrange(c0_.datetimetz1, c0_.datetimetz2) AS sclr_0 FROM ContainsDates c0_',
'range with explicit bounds' => "SELECT tstzrange(c0_.datetimetz1, c0_.datetimetz2, '[)') AS sclr_0 FROM ContainsDates c0_",
];
}

protected function getDqlStatements(): array
{
return [
\sprintf('SELECT TSTZRANGE(e.datetimetz1, e.datetimetz2) FROM %s e', ContainsDates::class),
'basic range with default bounds' => \sprintf('SELECT TSTZRANGE(e.datetimetz1, e.datetimetz2) FROM %s e', ContainsDates::class),
'range with explicit bounds' => \sprintf("SELECT TSTZRANGE(e.datetimetz1, e.datetimetz2, '[)') FROM %s e", ContainsDates::class),
];
}
}
Loading