mirror of
https://github.com/MariaDB/server.git
synced 2025-01-23 15:24:16 +01:00
Merge chilla.local:/home/mydev/mysql-5.1-ateam
into chilla.local:/home/mydev/mysql-5.1-axmrg
This commit is contained in:
commit
d6623f58ca
5 changed files with 67 additions and 1 deletions
19
mysql-test/r/archive-big.result
Normal file
19
mysql-test/r/archive-big.result
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
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` (
|
||||||
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;
|
||||||
|
|
25
mysql-test/t/archive-big.test
Normal file
25
mysql-test/t/archive-big.test
Normal file
File diff suppressed because one or more lines are too long
|
@ -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)
|
||||||
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)
|
||||||
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)
|
||||||
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;
|
||||||
|
|
Loading…
Add table
Reference in a new issue