mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03:00
BUG#19307: CSV engine can cause crashes in partitioned tables (due to its conversion of NULLs to 0)
mysql-test/r/partition.result: New test case mysql-test/t/partition.test: New test case sql/partition_info.cc: Disable CSV engine for partitioned tables sql/share/errmsg.txt: Update error message for more flexibility sql/sql_partition.cc: Editing fixes
This commit is contained in:
@@ -1,5 +1,10 @@
|
|||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
create table t1 (a int)
|
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 by key(a)
|
||||||
(partition p0 engine = MEMORY);
|
(partition p0 engine = MEMORY);
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
@@ -9,6 +9,17 @@
|
|||||||
drop table if exists t1;
|
drop table if exists t1;
|
||||||
--enable_warnings
|
--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)
|
create table t1 (a int)
|
||||||
partition by key(a)
|
partition by key(a)
|
||||||
(partition p0 engine = MEMORY);
|
(partition p0 engine = MEMORY);
|
||||||
@@ -1077,4 +1088,5 @@ OPTIMIZE TABLE t1;
|
|||||||
|
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
|
||||||
--echo End of 5.1 tests
|
--echo End of 5.1 tests
|
||||||
|
@@ -442,9 +442,11 @@ bool partition_info::check_engine_mix(handlerton **engine_array, uint no_parts)
|
|||||||
DBUG_RETURN(TRUE);
|
DBUG_RETURN(TRUE);
|
||||||
}
|
}
|
||||||
} while (++i < no_parts);
|
} 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(TRUE);
|
||||||
}
|
}
|
||||||
DBUG_RETURN(FALSE);
|
DBUG_RETURN(FALSE);
|
||||||
|
@@ -5849,5 +5849,5 @@ ER_EVENT_MODIFY_QUEUE_ERROR
|
|||||||
ER_EVENT_SET_VAR_ERROR
|
ER_EVENT_SET_VAR_ERROR
|
||||||
eng "Error during starting/stopping of the scheduler. Error code %u"
|
eng "Error during starting/stopping of the scheduler. Error code %u"
|
||||||
ER_PARTITION_MERGE_ERROR
|
ER_PARTITION_MERGE_ERROR
|
||||||
eng "MyISAM Merge handler cannot be used in partitioned tables"
|
eng "%s handler cannot be used in partitioned tables"
|
||||||
swe "MyISAM Merge kan inte an<61>ndas i en partitionerad tabell"
|
swe "%s kan inte anv<EFBFBD>ndas i en partitionerad tabell"
|
||||||
|
@@ -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
|
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
|
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()
|
check_reorganise_list()
|
||||||
new_part_info New partition info
|
new_part_info New partition info
|
||||||
old_part_info Old 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
|
list_part_names The list of partition names that will go away and
|
||||||
new table.
|
can be reused in the new table.
|
||||||
|
|
||||||
RETURN VALUES
|
RETURN VALUES
|
||||||
TRUE Inacceptable name conflict detected.
|
TRUE Inacceptable name conflict detected.
|
||||||
|
Reference in New Issue
Block a user