Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Molakvoæ <skjnldsv@users.noreply.github.com>2021-11-15 22:00:59 +0300
committerGitHub <noreply@github.com>2021-11-15 22:00:59 +0300
commitb5b3a8aa9000bb12c19258804d66a4903424ee2f (patch)
treeb923bbf9c1c1e6d975fced46b41a4813d054f621
parente302e3566c7676077643a8a5e532a41693fe121b (diff)
parent3709a8182a930ef336c8a0dc988385206d9319bf (diff)
Merge pull request #29717 from nextcloud/bump-doctrine-dbal-22
m---------3rdparty0
-rw-r--r--lib/private/DB/Connection.php11
-rw-r--r--lib/private/DB/QueryBuilder/QueryBuilder.php16
-rw-r--r--lib/private/Repair/SqliteAutoincrement.php2
-rw-r--r--lib/public/DB/QueryBuilder/IQueryBuilder.php8
-rw-r--r--lib/public/IDBConnection.php4
-rw-r--r--tests/lib/DB/QueryBuilder/QueryBuilderTest.php10
7 files changed, 28 insertions, 23 deletions
diff --git a/3rdparty b/3rdparty
-Subproject 40760a4a1a27329d466579e360ae199e44f1f91
+Subproject fd0d5d72f48315cc4f51342dc2d9e82d1dafe0e
diff --git a/lib/private/DB/Connection.php b/lib/private/DB/Connection.php
index 58d8d114705..1965bb3eee4 100644
--- a/lib/private/DB/Connection.php
+++ b/lib/private/DB/Connection.php
@@ -189,15 +189,20 @@ class Connection extends \Doctrine\DBAL\Connection {
* Prepares an SQL statement.
*
* @param string $statement The SQL statement to prepare.
- * @param int $limit
- * @param int $offset
+ * @param int|null $limit
+ * @param int|null $offset
*
* @return Statement The prepared statement.
* @throws Exception
*/
public function prepare($statement, $limit = null, $offset = null): Statement {
- if ($limit === -1) {
+ if ($limit === -1 || $limit === null) {
$limit = null;
+ } else {
+ $limit = (int) $limit;
+ }
+ if ($offset !== null) {
+ $offset = (int) $offset;
}
if (!is_null($limit)) {
$platform = $this->getDatabasePlatform();
diff --git a/lib/private/DB/QueryBuilder/QueryBuilder.php b/lib/private/DB/QueryBuilder/QueryBuilder.php
index 3b1c48306a6..89265c74fae 100644
--- a/lib/private/DB/QueryBuilder/QueryBuilder.php
+++ b/lib/private/DB/QueryBuilder/QueryBuilder.php
@@ -450,21 +450,21 @@ class QueryBuilder implements IQueryBuilder {
/**
* Sets the position of the first result to retrieve (the "offset").
*
- * @param integer $firstResult The first result to return.
+ * @param int $firstResult The first result to return.
*
* @return $this This QueryBuilder instance.
*/
public function setFirstResult($firstResult) {
- $this->queryBuilder->setFirstResult($firstResult);
+ $this->queryBuilder->setFirstResult((int) $firstResult);
return $this;
}
/**
* Gets the position of the first result the query object was set to retrieve (the "offset").
- * Returns NULL if {@link setFirstResult} was not applied to this QueryBuilder.
+ * Returns 0 if {@link setFirstResult} was not applied to this QueryBuilder.
*
- * @return integer The position of the first result.
+ * @return int The position of the first result.
*/
public function getFirstResult() {
return $this->queryBuilder->getFirstResult();
@@ -477,12 +477,16 @@ class QueryBuilder implements IQueryBuilder {
* of the databases will just return an empty result set, Oracle will return
* all entries.
*
- * @param integer $maxResults The maximum number of results to retrieve.
+ * @param int|null $maxResults The maximum number of results to retrieve.
*
* @return $this This QueryBuilder instance.
*/
public function setMaxResults($maxResults) {
- $this->queryBuilder->setMaxResults($maxResults);
+ if ($maxResults === null) {
+ $this->queryBuilder->setMaxResults($maxResults);
+ } else {
+ $this->queryBuilder->setMaxResults((int) $maxResults);
+ }
return $this;
}
diff --git a/lib/private/Repair/SqliteAutoincrement.php b/lib/private/Repair/SqliteAutoincrement.php
index 9bd8fa36deb..4a8b2a45d3f 100644
--- a/lib/private/Repair/SqliteAutoincrement.php
+++ b/lib/private/Repair/SqliteAutoincrement.php
@@ -83,7 +83,7 @@ class SqliteAutoincrement implements IRepairStep {
foreach ($columnNames as $columnName) {
$columnSchema = $tableSchema->getColumn($columnName);
$columnDiff = new ColumnDiff($columnSchema->getName(), $columnSchema);
- $tableDiff->changedColumns[] = $columnDiff;
+ $tableDiff->changedColumns[$columnSchema->getName()] = $columnDiff;
$schemaDiff->changedTables[] = $tableDiff;
}
} catch (SchemaException $e) {
diff --git a/lib/public/DB/QueryBuilder/IQueryBuilder.php b/lib/public/DB/QueryBuilder/IQueryBuilder.php
index e3daf4b3b46..7829696970c 100644
--- a/lib/public/DB/QueryBuilder/IQueryBuilder.php
+++ b/lib/public/DB/QueryBuilder/IQueryBuilder.php
@@ -280,7 +280,7 @@ interface IQueryBuilder {
/**
* Sets the position of the first result to retrieve (the "offset").
*
- * @param integer $firstResult The first result to return.
+ * @param int $firstResult The first result to return.
*
* @return $this This QueryBuilder instance.
* @since 8.2.0
@@ -289,9 +289,9 @@ interface IQueryBuilder {
/**
* Gets the position of the first result the query object was set to retrieve (the "offset").
- * Returns NULL if {@link setFirstResult} was not applied to this QueryBuilder.
+ * Returns 0 if {@link setFirstResult} was not applied to this QueryBuilder.
*
- * @return integer The position of the first result.
+ * @return int The position of the first result.
* @since 8.2.0
*/
public function getFirstResult();
@@ -299,7 +299,7 @@ interface IQueryBuilder {
/**
* Sets the maximum number of results to retrieve (the "limit").
*
- * @param integer $maxResults The maximum number of results to retrieve.
+ * @param int|null $maxResults The maximum number of results to retrieve.
*
* @return $this This QueryBuilder instance.
* @since 8.2.0
diff --git a/lib/public/IDBConnection.php b/lib/public/IDBConnection.php
index cedf0429869..2fa7fa1ad36 100644
--- a/lib/public/IDBConnection.php
+++ b/lib/public/IDBConnection.php
@@ -86,8 +86,8 @@ interface IDBConnection {
/**
* Used to abstract the ownCloud database access away
* @param string $sql the sql query with ? placeholder for params
- * @param int $limit the maximum number of rows
- * @param int $offset from which row we want to start
+ * @param int|null $limit the maximum number of rows
+ * @param int|null $offset from which row we want to start
* @return IPreparedStatement The prepared statement.
* @since 6.0.0
* @throws Exception since 21.0.0
diff --git a/tests/lib/DB/QueryBuilder/QueryBuilderTest.php b/tests/lib/DB/QueryBuilder/QueryBuilderTest.php
index aef1acc40c1..19278504707 100644
--- a/tests/lib/DB/QueryBuilder/QueryBuilderTest.php
+++ b/tests/lib/DB/QueryBuilder/QueryBuilderTest.php
@@ -102,7 +102,7 @@ class QueryBuilderTest extends \Test\TestCase {
public function dataFirstResult() {
return [
- [null, [99, 98, 97, 96, 95, 94, 93, 92, 91]],
+ [0, [99, 98, 97, 96, 95, 94, 93, 92, 91]],
[0, [99, 98, 97, 96, 95, 94, 93, 92, 91]],
[1, [98, 97, 96, 95, 94, 93, 92, 91]],
[5, [94, 93, 92, 91]],
@@ -112,7 +112,7 @@ class QueryBuilderTest extends \Test\TestCase {
/**
* @dataProvider dataFirstResult
*
- * @param int $firstResult
+ * @param int|null $firstResult
* @param array $expectedSet
*/
public function testFirstResult($firstResult, $expectedSet) {
@@ -121,14 +121,10 @@ class QueryBuilderTest extends \Test\TestCase {
if ($firstResult !== null) {
$this->queryBuilder->setFirstResult($firstResult);
-
- // FIXME Remove this once Doctrine/DBAL is >2.5.1:
- // FIXME See https://github.com/doctrine/dbal/pull/782
- $this->queryBuilder->setMaxResults(100);
}
$this->assertSame(
- $firstResult,
+ $firstResult ?? 0,
$this->queryBuilder->getFirstResult()
);