Commit a75eedfe authored by unknown's avatar unknown

Merge mysqldev@production:/data0/mysqldev/my/mysql-5.1-release

into  synthia.local:/home/mydev/mysql-5.1-axmrg
parents 8f9547ca 99f37d84
...@@ -360,6 +360,10 @@ sub mtr_report_stats ($) { ...@@ -360,6 +360,10 @@ sub mtr_report_stats ($) {
/skip-name-resolve mode/ or /skip-name-resolve mode/ or
/slave SQL thread aborted/ or /slave SQL thread aborted/ or
/Slave: .*Duplicate entry/ or /Slave: .*Duplicate entry/ or
# Special case for Bug #26402 in show_check.test
# Question marks are not valid file name parts
# on Windows platforms. Ignore this error message.
/\QCan't find file: '.\test\????????.frm'\E/ or
# Special case, made as specific as possible, for: # Special case, made as specific as possible, for:
# Bug #28436: Incorrect position in SHOW BINLOG EVENTS causes # Bug #28436: Incorrect position in SHOW BINLOG EVENTS causes
# server coredump # server coredump
......
CREATE TABLE t1(a BLOB) ENGINE=ARCHIVE;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
INSERT INTO t1 SELECT * FROM t1;
DROP TABLE t1;
...@@ -5261,3 +5261,11 @@ CREATE TABLE `bug21328` ( ...@@ -5261,3 +5261,11 @@ CREATE TABLE `bug21328` (
insert into bug21328 values (1,NULL,NULL); insert into bug21328 values (1,NULL,NULL);
alter table bug21328 engine=myisam; alter table bug21328 engine=myisam;
drop table bug21328; drop table bug21328;
create table t1(a blob, b int) engine=csv;
insert into t1 values('a', 1);
flush tables;
update t1 set b=2;
select * from t1;
a b
a 2
drop table t1;
This diff is collapsed.
...@@ -1674,3 +1674,14 @@ CREATE TABLE `bug21328` ( ...@@ -1674,3 +1674,14 @@ CREATE TABLE `bug21328` (
insert into bug21328 values (1,NULL,NULL); insert into bug21328 values (1,NULL,NULL);
alter table bug21328 engine=myisam; alter table bug21328 engine=myisam;
drop table bug21328; drop table bug21328;
#
# BUG#28971 - ALTER TABLE followed by UPDATE for a CSV table make server
# crash
#
create table t1(a blob, b int) engine=csv;
insert into t1 values('a', 1);
flush tables;
update t1 set b=2;
select * from t1;
drop table t1;
...@@ -590,6 +590,7 @@ int ha_tina::find_current_row(uchar *buf) ...@@ -590,6 +590,7 @@ int ha_tina::find_current_row(uchar *buf)
int eoln_len; int eoln_len;
my_bitmap_map *org_bitmap; my_bitmap_map *org_bitmap;
int error; int error;
bool read_all;
DBUG_ENTER("ha_tina::find_current_row"); DBUG_ENTER("ha_tina::find_current_row");
/* /*
...@@ -601,6 +602,8 @@ int ha_tina::find_current_row(uchar *buf) ...@@ -601,6 +602,8 @@ int ha_tina::find_current_row(uchar *buf)
local_saved_data_file_length, &eoln_len)) == 0) local_saved_data_file_length, &eoln_len)) == 0)
DBUG_RETURN(HA_ERR_END_OF_FILE); DBUG_RETURN(HA_ERR_END_OF_FILE);
/* We must read all columns in case a table is opened for update */
read_all= !bitmap_is_clear_all(table->write_set);
/* Avoid asserts in ::store() for columns that are not going to be updated */ /* Avoid asserts in ::store() for columns that are not going to be updated */
org_bitmap= dbug_tmp_use_all_columns(table, table->write_set); org_bitmap= dbug_tmp_use_all_columns(table, table->write_set);
error= HA_ERR_CRASHED_ON_USAGE; error= HA_ERR_CRASHED_ON_USAGE;
...@@ -678,7 +681,7 @@ int ha_tina::find_current_row(uchar *buf) ...@@ -678,7 +681,7 @@ int ha_tina::find_current_row(uchar *buf)
goto err; goto err;
} }
if (bitmap_is_set(table->read_set, (*field)->field_index)) if (read_all || bitmap_is_set(table->read_set, (*field)->field_index))
(*field)->store(buffer.ptr(), buffer.length(), buffer.charset()); (*field)->store(buffer.ptr(), buffer.length(), buffer.charset());
} }
next_position= end_offset + eoln_len; next_position= end_offset + eoln_len;
......
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