Loading mysql-test/r/select_found.result +17 −0 Original line number Diff line number Diff line Loading @@ -206,3 +206,20 @@ WHERE ( r = 1 AND a IN ( 1, 2 ) AND ( u = 'w' OR u LIKE 'w/%' ) ) OR ( r = 1 AND a IN ( 3 ) AND ( u = 'w/U' OR u LIKE 'w/U/%' ) ) OR ( r = 1 AND a IN ( 1, 2, 3 ) AND ( u = 'w' ) ); drop table t1; CREATE TABLE t1 (a VARCHAR(16), UNIQUE(a)); INSERT INTO t1 VALUES ('1'), ('2'), ('3'); SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a = '2' LIMIT 0, 1; a 2 SELECT FOUND_ROWS(); FOUND_ROWS() 1 DROP TABLE t1; CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES (0), (0), (1), (2); SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a = 0 GROUP BY a HAVING a > 10; a SELECT FOUND_ROWS(); FOUND_ROWS() 0 DROP TABLE t1; mysql-test/t/select_found.test +19 −0 Original line number Diff line number Diff line Loading @@ -127,3 +127,22 @@ WHERE ( r = 1 AND a IN ( 1, 2 ) AND ( u = 'w' OR u LIKE 'w/%' ) ) OR ( r = 1 AND a IN ( 1, 2, 3 ) AND ( u = 'w' ) ); drop table t1; # # Bug #3738: we have a ref key # CREATE TABLE t1 (a VARCHAR(16), UNIQUE(a)); INSERT INTO t1 VALUES ('1'), ('2'), ('3'); SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a = '2' LIMIT 0, 1; SELECT FOUND_ROWS(); DROP TABLE t1; # # Bug #3845: group by, having and empty result # CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES (0), (0), (1), (2); SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a = 0 GROUP BY a HAVING a > 10; SELECT FOUND_ROWS(); DROP TABLE t1; sql/sql_select.cc +4 −2 Original line number Diff line number Diff line Loading @@ -5348,7 +5348,8 @@ end_send(JOIN *join, JOIN_TAB *join_tab __attribute__((unused)), if ((join->tables == 1) && !join->tmp_table && !join->sort_and_group && !join->send_group_parts && !join->having && !jt->select_cond && !(jt->select && jt->select->quick) && !(jt->table->file->table_flags() & HA_NOT_EXACT_COUNT)) !(jt->table->file->table_flags() & HA_NOT_EXACT_COUNT) && (jt->ref.key < 0)) { /* Join over all rows in table; Return number of found rows */ TABLE *table=jt->table; Loading Loading @@ -5429,6 +5430,7 @@ end_send_group(JOIN *join, JOIN_TAB *join_tab __attribute__((unused)), DBUG_RETURN(-1); /* purecov: inspected */ if (end_of_records) { if (!error) join->send_records++; DBUG_RETURN(0); } Loading Loading
mysql-test/r/select_found.result +17 −0 Original line number Diff line number Diff line Loading @@ -206,3 +206,20 @@ WHERE ( r = 1 AND a IN ( 1, 2 ) AND ( u = 'w' OR u LIKE 'w/%' ) ) OR ( r = 1 AND a IN ( 3 ) AND ( u = 'w/U' OR u LIKE 'w/U/%' ) ) OR ( r = 1 AND a IN ( 1, 2, 3 ) AND ( u = 'w' ) ); drop table t1; CREATE TABLE t1 (a VARCHAR(16), UNIQUE(a)); INSERT INTO t1 VALUES ('1'), ('2'), ('3'); SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a = '2' LIMIT 0, 1; a 2 SELECT FOUND_ROWS(); FOUND_ROWS() 1 DROP TABLE t1; CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES (0), (0), (1), (2); SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a = 0 GROUP BY a HAVING a > 10; a SELECT FOUND_ROWS(); FOUND_ROWS() 0 DROP TABLE t1;
mysql-test/t/select_found.test +19 −0 Original line number Diff line number Diff line Loading @@ -127,3 +127,22 @@ WHERE ( r = 1 AND a IN ( 1, 2 ) AND ( u = 'w' OR u LIKE 'w/%' ) ) OR ( r = 1 AND a IN ( 1, 2, 3 ) AND ( u = 'w' ) ); drop table t1; # # Bug #3738: we have a ref key # CREATE TABLE t1 (a VARCHAR(16), UNIQUE(a)); INSERT INTO t1 VALUES ('1'), ('2'), ('3'); SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a = '2' LIMIT 0, 1; SELECT FOUND_ROWS(); DROP TABLE t1; # # Bug #3845: group by, having and empty result # CREATE TABLE t1 (a INT); INSERT INTO t1 VALUES (0), (0), (1), (2); SELECT SQL_CALC_FOUND_ROWS * FROM t1 WHERE a = 0 GROUP BY a HAVING a > 10; SELECT FOUND_ROWS(); DROP TABLE t1;
sql/sql_select.cc +4 −2 Original line number Diff line number Diff line Loading @@ -5348,7 +5348,8 @@ end_send(JOIN *join, JOIN_TAB *join_tab __attribute__((unused)), if ((join->tables == 1) && !join->tmp_table && !join->sort_and_group && !join->send_group_parts && !join->having && !jt->select_cond && !(jt->select && jt->select->quick) && !(jt->table->file->table_flags() & HA_NOT_EXACT_COUNT)) !(jt->table->file->table_flags() & HA_NOT_EXACT_COUNT) && (jt->ref.key < 0)) { /* Join over all rows in table; Return number of found rows */ TABLE *table=jt->table; Loading Loading @@ -5429,6 +5430,7 @@ end_send_group(JOIN *join, JOIN_TAB *join_tab __attribute__((unused)), DBUG_RETURN(-1); /* purecov: inspected */ if (end_of_records) { if (!error) join->send_records++; DBUG_RETURN(0); } Loading