Update parameters

Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
Joas Schilling 2020-11-07 14:06:03 +01:00 committed by backportbot[bot]
parent 2e3cffc53b
commit b3dfa9290d
4 changed files with 32 additions and 8 deletions

View File

@ -27,6 +27,9 @@ namespace OC\DB\QueryBuilder\FunctionBuilder;
use OC\DB\QueryBuilder\QueryFunction; use OC\DB\QueryBuilder\QueryFunction;
use OC\DB\QueryBuilder\QuoteHelper; use OC\DB\QueryBuilder\QuoteHelper;
use OCP\DB\QueryBuilder\IFunctionBuilder; use OCP\DB\QueryBuilder\IFunctionBuilder;
use OCP\DB\QueryBuilder\ILiteral;
use OCP\DB\QueryBuilder\IParameter;
use OCP\DB\QueryBuilder\IQueryFunction;
class FunctionBuilder implements IFunctionBuilder { class FunctionBuilder implements IFunctionBuilder {
/** @var QuoteHelper */ /** @var QuoteHelper */
@ -87,10 +90,20 @@ class FunctionBuilder implements IFunctionBuilder {
return new QueryFunction('MIN(' . $this->helper->quoteColumnName($field) . ')'); return new QueryFunction('MIN(' . $this->helper->quoteColumnName($field) . ')');
} }
/**
* @param string|ILiteral|IParameter|IQueryFunction $x
* @param string|ILiteral|IParameter|IQueryFunction $y
* @return IQueryFunction
*/
public function greatest($x, $y) { public function greatest($x, $y) {
return new QueryFunction('GREATEST(' . $this->helper->quoteColumnName($x) . ', ' . $this->helper->quoteColumnName($y) . ')'); return new QueryFunction('GREATEST(' . $this->helper->quoteColumnName($x) . ', ' . $this->helper->quoteColumnName($y) . ')');
} }
/**
* @param string|ILiteral|IParameter|IQueryFunction $x
* @param string|ILiteral|IParameter|IQueryFunction $y
* @return IQueryFunction
*/
public function least($x, $y) { public function least($x, $y) {
return new QueryFunction('LEAST(' . $this->helper->quoteColumnName($x) . ', ' . $this->helper->quoteColumnName($y) . ')'); return new QueryFunction('LEAST(' . $this->helper->quoteColumnName($x) . ', ' . $this->helper->quoteColumnName($y) . ')');
} }

View File

@ -43,7 +43,7 @@ class OCIFunctionBuilder extends FunctionBuilder {
* *
* @param string|ILiteral|IParameter|IQueryFunction $x * @param string|ILiteral|IParameter|IQueryFunction $x
* @param string|ILiteral|IParameter|IQueryFunction $y * @param string|ILiteral|IParameter|IQueryFunction $y
* @return QueryFunction * @return IQueryFunction
*/ */
public function greatest($x, $y) { public function greatest($x, $y) {
if (is_string($y) || $y instanceof IQueryFunction) { if (is_string($y) || $y instanceof IQueryFunction) {
@ -63,7 +63,7 @@ class OCIFunctionBuilder extends FunctionBuilder {
* *
* @param string|ILiteral|IParameter|IQueryFunction $x * @param string|ILiteral|IParameter|IQueryFunction $x
* @param string|ILiteral|IParameter|IQueryFunction $y * @param string|ILiteral|IParameter|IQueryFunction $y
* @return QueryFunction * @return IQueryFunction
*/ */
public function least($x, $y) { public function least($x, $y) {
if (is_string($y) || $y instanceof IQueryFunction) { if (is_string($y) || $y instanceof IQueryFunction) {

View File

@ -25,16 +25,29 @@
namespace OC\DB\QueryBuilder\FunctionBuilder; namespace OC\DB\QueryBuilder\FunctionBuilder;
use OC\DB\QueryBuilder\QueryFunction; use OC\DB\QueryBuilder\QueryFunction;
use OCP\DB\QueryBuilder\ILiteral;
use OCP\DB\QueryBuilder\IParameter;
use OCP\DB\QueryBuilder\IQueryFunction;
class SqliteFunctionBuilder extends FunctionBuilder { class SqliteFunctionBuilder extends FunctionBuilder {
public function concat($x, $y) { public function concat($x, $y) {
return new QueryFunction('(' . $this->helper->quoteColumnName($x) . ' || ' . $this->helper->quoteColumnName($y) . ')'); return new QueryFunction('(' . $this->helper->quoteColumnName($x) . ' || ' . $this->helper->quoteColumnName($y) . ')');
} }
/**
* @param string|ILiteral|IParameter|IQueryFunction $x
* @param string|ILiteral|IParameter|IQueryFunction $y
* @return IQueryFunction
*/
public function greatest($x, $y) { public function greatest($x, $y) {
return new QueryFunction('MAX(' . $this->helper->quoteColumnName($x) . ', ' . $this->helper->quoteColumnName($y) . ')'); return new QueryFunction('MAX(' . $this->helper->quoteColumnName($x) . ', ' . $this->helper->quoteColumnName($y) . ')');
} }
/**
* @param string|ILiteral|IParameter|IQueryFunction $x
* @param string|ILiteral|IParameter|IQueryFunction $y
* @return IQueryFunction
*/
public function least($x, $y) { public function least($x, $y) {
return new QueryFunction('MIN(' . $this->helper->quoteColumnName($x) . ', ' . $this->helper->quoteColumnName($y) . ')'); return new QueryFunction('MIN(' . $this->helper->quoteColumnName($x) . ', ' . $this->helper->quoteColumnName($y) . ')');
} }

View File

@ -137,9 +137,8 @@ interface IFunctionBuilder {
* *
* If you want to get the maximum value of all rows in a column, use `max` instead * If you want to get the maximum value of all rows in a column, use `max` instead
* *
* @param mixed $x the first input field or number * @param string|ILiteral|IParameter|IQueryFunction $x
* @param mixed $y the first input field or number * @param string|ILiteral|IParameter|IQueryFunction $y
*
* @return IQueryFunction * @return IQueryFunction
* @since 18.0.0 * @since 18.0.0
*/ */
@ -150,9 +149,8 @@ interface IFunctionBuilder {
* *
* If you want to get the minimum value of all rows in a column, use `min` instead * If you want to get the minimum value of all rows in a column, use `min` instead
* *
* @param mixed $x the first input field or number * @param string|ILiteral|IParameter|IQueryFunction $x
* @param mixed $y the first input field or number * @param string|ILiteral|IParameter|IQueryFunction $y
*
* @return IQueryFunction * @return IQueryFunction
* @since 18.0.0 * @since 18.0.0
*/ */