MDEV-5421 Assertion `! is_set()' fails on INSERT IGNORE when a table has no partition for a value
make print_no_partition_found() to respect MYF(errflag) mysql-test/suite/parts/t/insert_ignore-5421.test: mdev:5421
This commit is contained in:
parent
8d2fba9331
commit
0cdf1573b6
9
mysql-test/suite/parts/r/insert_ignore-5421.result
Normal file
9
mysql-test/suite/parts/r/insert_ignore-5421.result
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
CREATE TABLE t1 (i INT) ENGINE=MyISAM
|
||||||
|
PARTITION BY RANGE (i) (
|
||||||
|
PARTITION p00 VALUES LESS THAN (1),
|
||||||
|
PARTITION p01 VALUES LESS THAN (2)
|
||||||
|
);
|
||||||
|
INSERT IGNORE INTO t1 VALUES (3);
|
||||||
|
Warnings:
|
||||||
|
Warning 1526 Table has no partition for value 3
|
||||||
|
DROP TABLE t1;
|
12
mysql-test/suite/parts/t/insert_ignore-5421.test
Normal file
12
mysql-test/suite/parts/t/insert_ignore-5421.test
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#
|
||||||
|
# MDEV-5421 Assertion `! is_set()' fails on INSERT IGNORE when a table has no partition for a value
|
||||||
|
#
|
||||||
|
|
||||||
|
--source include/have_partition.inc
|
||||||
|
CREATE TABLE t1 (i INT) ENGINE=MyISAM
|
||||||
|
PARTITION BY RANGE (i) (
|
||||||
|
PARTITION p00 VALUES LESS THAN (1),
|
||||||
|
PARTITION p01 VALUES LESS THAN (2)
|
||||||
|
);
|
||||||
|
INSERT IGNORE INTO t1 VALUES (3);
|
||||||
|
DROP TABLE t1;
|
@ -7207,7 +7207,7 @@ void ha_partition::print_error(int error, myf errflag)
|
|||||||
{
|
{
|
||||||
if (!(thd->lex->alter_info.flags & ALTER_TRUNCATE_PARTITION))
|
if (!(thd->lex->alter_info.flags & ALTER_TRUNCATE_PARTITION))
|
||||||
{
|
{
|
||||||
m_part_info->print_no_partition_found(table);
|
m_part_info->print_no_partition_found(table, errflag);
|
||||||
DBUG_VOID_RETURN;
|
DBUG_VOID_RETURN;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1330,7 +1330,7 @@ end:
|
|||||||
RETURN VALUES
|
RETURN VALUES
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void partition_info::print_no_partition_found(TABLE *table_arg)
|
void partition_info::print_no_partition_found(TABLE *table_arg, myf errflag)
|
||||||
{
|
{
|
||||||
char buf[100];
|
char buf[100];
|
||||||
char *buf_ptr= (char*)&buf;
|
char *buf_ptr= (char*)&buf;
|
||||||
@ -1344,7 +1344,7 @@ void partition_info::print_no_partition_found(TABLE *table_arg)
|
|||||||
SELECT_ACL, &table_list, TRUE))
|
SELECT_ACL, &table_list, TRUE))
|
||||||
{
|
{
|
||||||
my_message(ER_NO_PARTITION_FOR_GIVEN_VALUE,
|
my_message(ER_NO_PARTITION_FOR_GIVEN_VALUE,
|
||||||
ER(ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT), MYF(0));
|
ER(ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT), errflag);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1360,7 +1360,7 @@ void partition_info::print_no_partition_found(TABLE *table_arg)
|
|||||||
part_expr->unsigned_flag ? 10 : -10);
|
part_expr->unsigned_flag ? 10 : -10);
|
||||||
dbug_tmp_restore_column_map(table_arg->read_set, old_map);
|
dbug_tmp_restore_column_map(table_arg->read_set, old_map);
|
||||||
}
|
}
|
||||||
my_error(ER_NO_PARTITION_FOR_GIVEN_VALUE, MYF(0), buf_ptr);
|
my_error(ER_NO_PARTITION_FOR_GIVEN_VALUE, errflag, buf_ptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -288,7 +288,7 @@ public:
|
|||||||
bool check_partition_info(THD *thd, handlerton **eng_type,
|
bool check_partition_info(THD *thd, handlerton **eng_type,
|
||||||
handler *file, HA_CREATE_INFO *info,
|
handler *file, HA_CREATE_INFO *info,
|
||||||
bool check_partition_function);
|
bool check_partition_function);
|
||||||
void print_no_partition_found(TABLE *table);
|
void print_no_partition_found(TABLE *table, myf errflag);
|
||||||
void print_debug(const char *str, uint*);
|
void print_debug(const char *str, uint*);
|
||||||
Item* get_column_item(Item *item, Field *field);
|
Item* get_column_item(Item *item, Field *field);
|
||||||
int fix_partition_values(THD *thd,
|
int fix_partition_values(THD *thd,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user