Commit 8204f690 authored by unknown's avatar unknown

Bug #13323

Select count(*) returned 2 on empty table where handler
used exact count


mysql-test/r/partition.result:
  New test case for Bug #13323
mysql-test/t/partition.test:
  New test case for Bug #13323
sql/ha_partition.cc:
  Fix for Bug #13323
parent a5b52c45
...@@ -5,6 +5,9 @@ b int not null, ...@@ -5,6 +5,9 @@ b int not null,
c int not null, c int not null,
primary key(a,b)) primary key(a,b))
partition by key (a); partition by key (a);
select count(*) from t1;
count(*)
0
drop table t1; drop table t1;
CREATE TABLE t1 ( CREATE TABLE t1 (
a int not null, a int not null,
......
...@@ -18,6 +18,11 @@ c int not null, ...@@ -18,6 +18,11 @@ c int not null,
primary key(a,b)) primary key(a,b))
partition by key (a); partition by key (a);
#
# Bug 13323: Select count(*) on empty table returns 2
#
select count(*) from t1;
drop table t1; drop table t1;
# #
# Partition by key no partition, list of fields # Partition by key no partition, list of fields
......
...@@ -81,6 +81,9 @@ static handlerton partition_hton = { ...@@ -81,6 +81,9 @@ static handlerton partition_hton = {
NULL, /* recover */ NULL, /* recover */
NULL, /* commit_by_xid */ NULL, /* commit_by_xid */
NULL, /* rollback_by_xid */ NULL, /* rollback_by_xid */
NULL,
NULL,
NULL,
HTON_NO_FLAGS HTON_NO_FLAGS
}; };
...@@ -2305,9 +2308,13 @@ void ha_partition::info(uint flag) ...@@ -2305,9 +2308,13 @@ void ha_partition::info(uint flag)
if (file->check_time > check_time) if (file->check_time > check_time)
check_time= file->check_time; check_time= file->check_time;
} while (*(++file_array)); } while (*(++file_array));
if (records < 2) if (records < 2 &&
m_table_flags & HA_NOT_EXACT_COUNT)
records= 2; records= 2;
mean_rec_length= (ulong) (data_file_length / records); if (records > 0)
mean_rec_length= (ulong) (data_file_length / records);
else
mean_rec_length= 1; //? What should we set here
} }
if (flag & HA_STATUS_CONST) if (flag & HA_STATUS_CONST)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment