1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

BUG#19307: CSV engine can cause crashes in partitioned tables (due to its conversion of NULLs to 0)

This commit is contained in:
mikael@c-0409e253.1238-1-64736c10.cust.bredbandsbolaget.se
2006-06-13 14:36:23 -04:00
parent 2e6b51579b
commit 59c0034061
5 changed files with 26 additions and 7 deletions

View File

@ -1,5 +1,10 @@
drop table if exists t1;
create table t1 (a int)
engine = csv
partition by list (a)
(partition p0 values in (null));
ERROR HY000: CSV handler cannot be used in partitioned tables
create table t1 (a int)
partition by key(a)
(partition p0 engine = MEMORY);
drop table t1;

View File

@ -9,6 +9,17 @@
drop table if exists t1;
--enable_warnings
#
# Bug 19307: CSV engine crashes
#
--error ER_PARTITION_MERGE_ERROR
create table t1 (a int)
engine = csv
partition by list (a)
(partition p0 values in (null));
#
#
create table t1 (a int)
partition by key(a)
(partition p0 engine = MEMORY);
@ -1077,4 +1088,5 @@ OPTIMIZE TABLE t1;
drop table t1;
--echo End of 5.1 tests

View File

@ -442,9 +442,11 @@ bool partition_info::check_engine_mix(handlerton **engine_array, uint no_parts)
DBUG_RETURN(TRUE);
}
} while (++i < no_parts);
if (engine_array[0] == &myisammrg_hton)
if (engine_array[0] == &myisammrg_hton ||
engine_array[0] == &tina_hton)
{
my_error(ER_PARTITION_MERGE_ERROR, MYF(0));
my_error(ER_PARTITION_MERGE_ERROR, MYF(0),
engine_array[0] == &myisammrg_hton ? "MyISAM Merge" : "CSV");
DBUG_RETURN(TRUE);
}
DBUG_RETURN(FALSE);

View File

@ -5849,5 +5849,5 @@ ER_EVENT_MODIFY_QUEUE_ERROR
ER_EVENT_SET_VAR_ERROR
eng "Error during starting/stopping of the scheduler. Error code %u"
ER_PARTITION_MERGE_ERROR
eng "MyISAM Merge handler cannot be used in partitioned tables"
swe "MyISAM Merge kan inte an<61>ndas i en partitionerad tabell"
eng "%s handler cannot be used in partitioned tables"
swe "%s kan inte anv<EFBFBD>ndas i en partitionerad tabell"

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2005 MySQL AB
/* Copyright (C) 2005, 2006 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -238,8 +238,8 @@ bool partition_default_handling(TABLE *table, partition_info *part_info,
check_reorganise_list()
new_part_info New partition info
old_part_info Old partition info
list_part_names The list of partition names that will go away and can be reused in the
new table.
list_part_names The list of partition names that will go away and
can be reused in the new table.
RETURN VALUES
TRUE Inacceptable name conflict detected.