aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes
diff options
context:
space:
mode:
authorNils Adermann <naderman@naderman.de>2010-10-25 15:50:09 +0200
committerNils Adermann <naderman@naderman.de>2010-10-25 19:43:39 +0200
commitee0993a8a6725bbacc341f50e37710b51df4ea5c (patch)
treedce5f1ffe5971316a3009bc836fbf7f97586ca46 /phpBB/includes
parent801f66b4a2b6caae7b818a1aecb1c70d6ae155bb (diff)
downloadforums-ee0993a8a6725bbacc341f50e37710b51df4ea5c.tar
forums-ee0993a8a6725bbacc341f50e37710b51df4ea5c.tar.gz
forums-ee0993a8a6725bbacc341f50e37710b51df4ea5c.tar.bz2
forums-ee0993a8a6725bbacc341f50e37710b51df4ea5c.tar.xz
forums-ee0993a8a6725bbacc341f50e37710b51df4ea5c.zip
[task/mssql-db-tests] sql_query_limit must return all results when total = 0
PHPBB3-9868
Diffstat (limited to 'phpBB/includes')
-rw-r--r--phpBB/includes/db/mssqlnative.php19
1 files changed, 14 insertions, 5 deletions
diff --git a/phpBB/includes/db/mssqlnative.php b/phpBB/includes/db/mssqlnative.php
index 44d5722e4f..93a8f91613 100644
--- a/phpBB/includes/db/mssqlnative.php
+++ b/phpBB/includes/db/mssqlnative.php
@@ -347,7 +347,8 @@ class dbal_mssqlnative extends dbal
{
$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)
{
@@ -358,13 +359,21 @@ class dbal_mssqlnative extends dbal
$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 = 'SELECT *
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
- WHERE line3 BETWEEN ' . ($offset+1) . ' AND ' . ($offset + $total);
+ FROM (SELECT 1 AS line2, sub1.* FROM (' . $query . ') AS sub1) as sub2) AS sub3';
+
+ if ($total > 0)
+ {
+ $query .= ' WHERE line3 BETWEEN ' . ($offset+1) . ' AND ' . ($offset + $total);
+ }
+ else
+ {
+ $query .= ' WHERE line3 > ' . $offset;
+ }
}
$result = $this->sql_query($query, $cache_ttl);
@@ -614,4 +623,4 @@ class dbal_mssqlnative extends dbal
}
}
-?> \ No newline at end of file
+?>