mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 13:02:28 +01:00
Merge fix for BUG49628 to mysql-5.1-bugteam.
This commit is contained in:
commit
c977a00b48
3 changed files with 34 additions and 0 deletions
|
@ -2313,4 +2313,17 @@ CHECK TABLE t1;
|
|||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# BUG#49628 - corrupt table after legal SQL, LONGTEXT column
|
||||
#
|
||||
CREATE TABLE t1(a INT, b LONGTEXT, UNIQUE(a));
|
||||
REPLACE INTO t1 VALUES
|
||||
(1, REPEAT('a', 129015)),(1, NULL),
|
||||
(2, NULL),(3, NULL),(4, NULL),(5, NULL),(6, NULL),(7, NULL),
|
||||
(1, REPEAT('b', 129016)),(1, NULL),
|
||||
(1, REPEAT('c', 129015)),(1, REPEAT('d', 129015));
|
||||
CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -1563,5 +1563,18 @@ SET myisam_sort_buffer_size=@@global.myisam_sort_buffer_size;
|
|||
CHECK TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # BUG#49628 - corrupt table after legal SQL, LONGTEXT column
|
||||
--echo #
|
||||
CREATE TABLE t1(a INT, b LONGTEXT, UNIQUE(a));
|
||||
REPLACE INTO t1 VALUES
|
||||
(1, REPEAT('a', 129015)),(1, NULL),
|
||||
(2, NULL),(3, NULL),(4, NULL),(5, NULL),(6, NULL),(7, NULL),
|
||||
(1, REPEAT('b', 129016)),(1, NULL),
|
||||
(1, REPEAT('c', 129015)),(1, REPEAT('d', 129015));
|
||||
CHECK TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
||||
|
|
|
@ -933,8 +933,16 @@ static int update_dynamic_record(MI_INFO *info, my_off_t filepos, uchar *record,
|
|||
}
|
||||
|
||||
if (block_info.next_filepos != HA_OFFSET_ERROR)
|
||||
{
|
||||
/*
|
||||
delete_dynamic_record() may change data file position.
|
||||
IO cache must be notified as it may still have cached
|
||||
data, which has to be flushed later.
|
||||
*/
|
||||
info->rec_cache.seek_not_done= 1;
|
||||
if (delete_dynamic_record(info,block_info.next_filepos,1))
|
||||
goto err;
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
err:
|
||||
DBUG_RETURN(1);
|
||||
|
|
Loading…
Reference in a new issue