Signed-off-by: Joas Schilling <coding@schilljs.com>tags/v13.0.0beta1
@@ -31,6 +31,7 @@ use OC\DB\QueryBuilder\QueryFunction; | |||
use OC\DB\QueryBuilder\QuoteHelper; | |||
use OCP\DB\QueryBuilder\IExpressionBuilder; | |||
use OCP\DB\QueryBuilder\ILiteral; | |||
use OCP\DB\QueryBuilder\IQueryBuilder; | |||
use OCP\DB\QueryBuilder\IQueryFunction; | |||
use OCP\IDBConnection; | |||
@@ -350,6 +351,28 @@ class ExpressionBuilder implements IExpressionBuilder { | |||
return $this->expressionBuilder->notIn($x, $y); | |||
} | |||
/** | |||
* Creates a $x = '' statement, because Oracle needs a different check | |||
* | |||
* @param string $x The field in string format to be inspected by the comparison. | |||
* @return string | |||
* @since 13.0.0 | |||
*/ | |||
public function emptyString($x) { | |||
return $this->eq($x, $this->literal('', IQueryBuilder::PARAM_STR)); | |||
} | |||
/** | |||
* Creates a `$x <> ''` statement, because Oracle needs a different check | |||
* | |||
* @param string $x The field in string format to be inspected by the comparison. | |||
* @return string | |||
* @since 13.0.0 | |||
*/ | |||
public function nonEmptyString($x) { | |||
return $this->neq($x, $this->literal('', IQueryBuilder::PARAM_STR)); | |||
} | |||
/** | |||
* Binary AND Operator copies a bit to the result if it exists in both operands. | |||
* |
@@ -137,6 +137,28 @@ class OCIExpressionBuilder extends ExpressionBuilder { | |||
return $this->expressionBuilder->notIn($x, $y); | |||
} | |||
/** | |||
* Creates a $x = '' statement, because Oracle needs a different check | |||
* | |||
* @param string $x The field in string format to be inspected by the comparison. | |||
* @return string | |||
* @since 13.0.0 | |||
*/ | |||
public function emptyString($x) { | |||
return $this->isNull($x); | |||
} | |||
/** | |||
* Creates a `$x <> ''` statement, because Oracle needs a different check | |||
* | |||
* @param string $x The field in string format to be inspected by the comparison. | |||
* @return string | |||
* @since 13.0.0 | |||
*/ | |||
public function nonEmptyString($x) { | |||
return $this->isNotNull($x); | |||
} | |||
/** | |||
* Returns a IQueryFunction that casts the column to the given type | |||
* |
@@ -70,7 +70,7 @@ class RepairInvalidPaths implements IRepairStep { | |||
->from('filecache', 'f') | |||
->innerJoin('f', 'filecache', 'p', $builder->expr()->andX( | |||
$builder->expr()->eq('f.parent', 'p.fileid'), | |||
$builder->expr()->isNotNull('p.name') | |||
$builder->expr()->nonEmptyString('p.name') | |||
)) | |||
->where($builder->expr()->neq('f.path', $computedPath)) | |||
->setMaxResults(self::MAX_ROWS); |
@@ -305,6 +305,24 @@ interface IExpressionBuilder { | |||
*/ | |||
public function notIn($x, $y, $type = null); | |||
/** | |||
* Creates a $x = '' statement, because Oracle needs a different check | |||
* | |||
* @param string $x The field in string format to be inspected by the comparison. | |||
* @return string | |||
* @since 13.0.0 | |||
*/ | |||
public function emptyString($x); | |||
/** | |||
* Creates a `$x <> ''` statement, because Oracle needs a different check | |||
* | |||
* @param string $x The field in string format to be inspected by the comparison. | |||
* @return string | |||
* @since 13.0.0 | |||
*/ | |||
public function nonEmptyString($x); | |||
/** | |||
* Creates a bitwise AND comparison |