diff options
author | Andrey Andreev <narf@devilix.net> | 2017-06-15 13:22:49 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-15 13:22:49 +0200 |
commit | af5c8960d80a9db362722ca675ffddb2079bbce9 (patch) | |
tree | 8156e7bef8af0565f287355772c9ec34593c9a11 | |
parent | f51687fb99a905fe4f63918aaae672a2fdf20334 (diff) | |
parent | bcd005fafa195d443db2419629bfeed99e49fc7e (diff) |
Merge pull request #5155 from tianhe1986/develop_count_ignore_limit
Fix CI_DB_query_builder::count_all_results() returning wrong count with LIMIT/OFFSET
-rw-r--r-- | system/database/DB_query_builder.php | 2 | ||||
-rw-r--r-- | tests/codeigniter/database/query_builder/count_test.php | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/system/database/DB_query_builder.php b/system/database/DB_query_builder.php index ef375227c..102ff4ac0 100644 --- a/system/database/DB_query_builder.php +++ b/system/database/DB_query_builder.php @@ -1488,7 +1488,7 @@ abstract class CI_DB_query_builder extends CI_DB_driver { $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 90ac5283e..da312d866 100644 --- a/tests/codeigniter/database/query_builder/count_test.php +++ b/tests/codeigniter/database/query_builder/count_test.php @@ -35,4 +35,14 @@ class Count_test extends CI_TestCase { $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 |