Merge pull request #5155 from tianhe1986/develop_count_ignore_limit

Fix CI_DB_query_builder::count_all_results() returning wrong count with LIMIT/OFFSET
diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php
index 0abf2a2..9216651 100644
--- a/system/database/DB_query_builder.php
+++ b/system/database/DB_query_builder.php
@@ -1409,7 +1409,7 @@
 			$this->qb_orderby = NULL;
 		}
 
-		$result = ($this->qb_distinct === TRUE OR ! empty($this->qb_groupby) OR ! empty($this->qb_cache_groupby))
+		$result = ($this->qb_distinct === TRUE OR ! empty($this->qb_groupby) OR ! empty($this->qb_cache_groupby) OR $this->qb_limit OR $this->qb_offset)
 			? $this->query($this->_count_string.$this->protect_identifiers('numrows')."\nFROM (\n".$this->_compile_select()."\n) CI_count_all_results")
 			: $this->query($this->_compile_select($this->_count_string.$this->protect_identifiers('numrows')));
 
diff --git a/tests/codeigniter/database/query_builder/count_test.php b/tests/codeigniter/database/query_builder/count_test.php
index 90ac528..da312d8 100644
--- a/tests/codeigniter/database/query_builder/count_test.php
+++ b/tests/codeigniter/database/query_builder/count_test.php
@@ -35,4 +35,14 @@
 		$this->assertEquals(2, $this->db->like('name', 'ian')->count_all_results('job'));
 	}
 
+	// ------------------------------------------------------------------------
+
+	/**
+	 * @see ./mocks/schema/skeleton.php
+	 */
+	public function test_count_all_results_limit()
+	{
+		$this->assertEquals(1, $this->db->like('name', 'ian')->limit(1)->count_all_results('job'));
+	}
+
 }
\ No newline at end of file