diff options
author | Sergei Golubchik <serg@mariadb.org> | 2019-06-11 17:51:09 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2019-06-11 18:42:45 +0200 |
commit | 27fcdb161c8bb1fd21d2706ba17a3326f8221b9c (patch) | |
tree | 5003d227d2e178d156867ea1b47ae1cc56748893 /sql/handler.cc | |
parent | bb70d41932a23669dedf108d1af8581a3e7813d8 (diff) | |
download | mariadb-git-bb-10.4-MDEV-16249.tar.gz |
MDEV-16249 CHECKSUM TABLE for a spider table is not parallel and saves all data in memory in the spider head by default (#1328)bb-10.4-MDEV-16249
followup for be5c432a42e
ha_partition::calculate_checksum() has to invoke calculate_checksum()
for partitions unconditionally, not under (HA_HAS_OLD_CHECKSUM | HA_HAS_NEW_CHECKSUM).
Because the server uses ::info() to ask for a live checksum, while
calculate_checksum() must, precisely, calculate it the slow way,
also for tables that don't have the live checksum at all.
Also, fix the compilation on Windows (ha_checksum/ulonglong type mix).
Diffstat (limited to 'sql/handler.cc')
-rw-r--r-- | sql/handler.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sql/handler.cc b/sql/handler.cc index 908d49d861a..dfb5c69e675 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -5054,7 +5054,7 @@ int handler::calculate_checksum() return HA_ERR_ABORTED_BY_USER; ha_checksum row_crc= 0; - error= table->file->ha_rnd_next(table->record[0]); + error= ha_rnd_next(table->record[0]); if (error) break; @@ -5108,7 +5108,7 @@ int handler::calculate_checksum() stats.checksum+= row_crc; } - table->file->ha_rnd_end(); + ha_rnd_end(); return error == HA_ERR_END_OF_FILE ? 0 : error; } |