diff options
author | Michael Widenius <monty@askmonty.org> | 2013-05-11 15:55:11 +0300 |
---|---|---|
committer | Michael Widenius <monty@askmonty.org> | 2013-05-11 15:55:11 +0300 |
commit | 4e9bf37f1f70ddc0c901760e4302dd4040a2730c (patch) | |
tree | 34b9f02762cc4ff5db11a0562d4ddb4e95843052 /.bzrignore | |
parent | 80c0891588dd8aef2a0e08864b00067ffd9de5ce (diff) | |
download | mariadb-git-4e9bf37f1f70ddc0c901760e4302dd4040a2730c.tar.gz |
MDEV-4280: Assertion `empty_size == empty_size_on_page' failure in ma_blockrec.c or ER_NOT_KEYFILE on query with DISTINCT and GROUP BY
This could happen when using Aria for internal temporary files (default case) and using DISTINCT.
_ma_scan_restore_block_record() didn't work correctly if there was rows inserted, updated or deleted on the handler
between calls to _ma_scan_remember_block_record() and _ma_scan_restore_block_record().
The effect was that some DISTINCT queries that used remove_dup_with_compare() could fail.
.bzrignore:
Ignore sql_yacc.hh
mysql-test/suite/maria/r/distinct.result:
Test case for MDEV-4280
mysql-test/suite/maria/t/distinct.test:
Test case for MDEV-4280
mysql-test/t/mysql.test:
Fixed test suite (we could get error -1 in some cases)
sql/sql_select.cc:
Break loop if restart_rnd_next() gives an error
storage/maria/ha_maria.cc:
scan_restore_pos() can return disk fault error.
storage/maria/ma_blockrec.c:
_ma_scan_remember_block_record() did incorrectly update scan.dir instead of scan_save.dir .
_ma_scan_restore_block_record() didn't work correctly if there was rows inserted,updated or deleted on the handler
between calls to _ma_scan_remember_block_record() and _ma_scan_restore_block_record().
Fixed by adding counters for row changes and reading the current scan page if changes had been made.
storage/maria/ma_blockrec.h:
scan_restore_pos() can return disk fault error.
storage/maria/ma_delete.c:
Increment row_changes
storage/maria/ma_scan.c:
scan_restore_pos() can return disk fault error.
storage/maria/ma_update.c:
Increment row_changes
storage/maria/ma_write.c:
Increment row_changes
storage/maria/maria_def.h:
scan_restore_pos() can return disk fault error.
Diffstat (limited to '.bzrignore')
-rw-r--r-- | .bzrignore | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/.bzrignore b/.bzrignore index 84ebe547912..5d89804d637 100644 --- a/.bzrignore +++ b/.bzrignore @@ -1957,3 +1957,4 @@ CPackSourceConfig.cmake win/nmake_cache.txt *.manifest *.resource.txt +sql/sql_yacc.hh |