[MDEV-5549] Wrong row counter in found_rows() result Created: 2014-01-22  Updated: 2014-11-27  Resolved: 2014-02-04

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: 10.0.6, 10.0.7
Fix Version/s: 10.0.8

Type: Bug Priority: Major
Reporter: Lay András Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: None
Environment:

PRETTY_NAME="Debian GNU/Linux 7 (wheezy)"
NAME="Debian GNU/Linux"
VERSION_ID="7"
VERSION="7 (wheezy)"
ID=debian
ANSI_COLOR="1;31"
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support/"
BUG_REPORT_URL="http://bugs.debian.org/"

Linux version 3.2.43-grsec-sma (root@admin.sma.hu) (gcc version 4.7.2 (Debian 4.7.2-5) ) #1 SMP Mon Jun 17 14:23:20 CEST 2013


Attachments: File test.sql    
Issue Links:
Relates
relates to MDEV-5898 FOUND_ROWS() return incorrect value w... Closed
relates to MDEV-6221 SQL_CALC_FOUND_ROWS yields wrong resu... Closed
relates to MDEV-7219 SQL_CALC_FOUND_ROWS yields wrong result Closed

 Description   

Hi!

I'v tested the following query:

mysql> select version();
+-------------------------+
| version()               |
+-------------------------+
| 10.0.6-MariaDB-1~wheezy |
+-------------------------+
1 row in set (0.00 sec)
 
mysql>
 
mysql> select SQL_CALC_FOUND_ROWS a.alkid from testa a,testb b where a.alkid=b.alkid and a.csoportid=3 and b.nev like'%4000%'order by a.partnumber asc limit 0,20;select found_rows();
+-------+
| alkid |
+-------+
| 33445 |
| 34060 |
| 35587 |
| 34089 |
| 34088 |
| 32390 |
| 34097 |
| 35763 |
| 14846 |
+-------+
9 rows in set (0.01 sec)
 
+--------------+
| found_rows() |
+--------------+
|          887 |
+--------------+
1 row in set (0.00 sec)
 
mysql>

The found rows result should be 9, not 887.

I attached the database dump.



 Comments   
Comment by Elena Stepanova [ 2014-01-28 ]

Smaller test case:

DROP TABLE IF EXISTS testa;
CREATE TABLE testa (
  alkid INT NOT NULL AUTO_INCREMENT,
  csoportid tinyint(3) DEFAULT NULL,
  PRIMARY KEY (alkid)
) ENGINE=MyISAM;
 
INSERT INTO testa VALUES (10,3),(11,2),(12,3);
 
DROP TABLE IF EXISTS testb;
CREATE TABLE testb (alkid INT PRIMARY KEY) ENGINE=MyISAM;
 
INSERT INTO `testb` VALUES (11),(12),(13);
 
select a.alkid from testa a,testb b where a.alkid=b.alkid and a.csoportid=3 order by a.alkid;
select found_rows();
 
DROP TABLE testa, testb;

Actual result:

select a.alkid from testa a,testb b where a.alkid=b.alkid and a.csoportid=3 order by a.alkid;
alkid
12
select found_rows();
found_rows()
2

With so few rows, the test case shows the problem only on MyISAM tables. With somewhat more rows, same happens with InnoDB/XtraDB as well.
Not reproducible on 5.5.
Not reproducible on MySQL 5.6.

Comment by Serg G. Brester [ 2014-05-08 ]

New "test case" example was added to MDEV-4711, what proofs that this is not completely fixed.
See comment 49501

Generated at Thu Feb 08 07:05:13 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.