mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-08 12:28:52 +00:00
[task/mssql-db-tests] sql_query_limit must return all results when total = 0
PHPBB3-9868
This commit is contained in:
parent
801f66b4a2
commit
ee0993a8a6
1 changed files with 14 additions and 5 deletions
|
@ -347,7 +347,8 @@ class dbal_mssqlnative extends dbal
|
||||||
{
|
{
|
||||||
$this->query_result = false;
|
$this->query_result = false;
|
||||||
|
|
||||||
if ($offset === false || $offset == 0)
|
// total == 0 means all results - not zero results
|
||||||
|
if ($offset == 0 && $total !== 0)
|
||||||
{
|
{
|
||||||
if (strpos($query, "SELECT") === false)
|
if (strpos($query, "SELECT") === false)
|
||||||
{
|
{
|
||||||
|
@ -358,13 +359,21 @@ class dbal_mssqlnative extends dbal
|
||||||
$query = preg_replace('/SELECT(\s*DISTINCT)?/Dsi', 'SELECT$1 TOP '.$total, $query);
|
$query = preg_replace('/SELECT(\s*DISTINCT)?/Dsi', 'SELECT$1 TOP '.$total, $query);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if ($offset > 0)
|
||||||
{
|
{
|
||||||
$query = preg_replace('/SELECT(\s*DISTINCT)?/Dsi', 'SELECT$1 TOP(10000000) ', $query);
|
$query = preg_replace('/SELECT(\s*DISTINCT)?/Dsi', 'SELECT$1 TOP(10000000) ', $query);
|
||||||
$query = 'SELECT *
|
$query = 'SELECT *
|
||||||
FROM (SELECT sub2.*, ROW_NUMBER() OVER(ORDER BY sub2.line2) AS line3
|
FROM (SELECT sub2.*, ROW_NUMBER() OVER(ORDER BY sub2.line2) AS line3
|
||||||
FROM (SELECT 1 AS line2, sub1.* FROM (' . $query . ') AS sub1) as sub2) AS sub3
|
FROM (SELECT 1 AS line2, sub1.* FROM (' . $query . ') AS sub1) as sub2) AS sub3';
|
||||||
WHERE line3 BETWEEN ' . ($offset+1) . ' AND ' . ($offset + $total);
|
|
||||||
|
if ($total > 0)
|
||||||
|
{
|
||||||
|
$query .= ' WHERE line3 BETWEEN ' . ($offset+1) . ' AND ' . ($offset + $total);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$query .= ' WHERE line3 > ' . $offset;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$result = $this->sql_query($query, $cache_ttl);
|
$result = $this->sql_query($query, $cache_ttl);
|
||||||
|
|
Loading…
Add table
Reference in a new issue