diff options
author | unknown <ram@gw.mysql.r18.ru> | 2004-05-28 15:01:16 +0500 |
---|---|---|
committer | unknown <ram@gw.mysql.r18.ru> | 2004-05-28 15:01:16 +0500 |
commit | 0cb0e7f5b9752e328d30d9704913f83508ef6161 (patch) | |
tree | 5f48561d37d69ca50e34a1c86a86666f1d7f4fa8 /sql/sql_select.cc | |
parent | a4237f3dd9975aa54b3cbab8efb61ee9a74f5442 (diff) | |
download | mariadb-git-0cb0e7f5b9752e328d30d9704913f83508ef6161.tar.gz |
a fix.
(Bug#3738: SQL_CALC_FOUND_ROWS ignores WHERE if LIMIT used,
Bug#3845: wrong FOUND_ROWS result)
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r-- | sql/sql_select.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc index b299e3af0b7..5b754186736 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -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; @@ -5429,7 +5430,8 @@ end_send_group(JOIN *join, JOIN_TAB *join_tab __attribute__((unused)), DBUG_RETURN(-1); /* purecov: inspected */ if (end_of_records) { - join->send_records++; + if (!error) + join->send_records++; DBUG_RETURN(0); } if (!error && |