Fix for bug #32676: insert delayed crash with wrong column and function specified
Problem: using wrong local lock type value in the mysql_insert() results in a crash. Fix: use a proper value.
This commit is contained in:
parent
51ca3235b8
commit
5adf16e288
@ -255,3 +255,8 @@ CREATE TABLE t2(c1 INT) ENGINE=MERGE UNION=(t1);
|
|||||||
INSERT DELAYED INTO t2 VALUES(1);
|
INSERT DELAYED INTO t2 VALUES(1);
|
||||||
ERROR HY000: Table storage engine for 't2' doesn't have this option
|
ERROR HY000: Table storage engine for 't2' doesn't have this option
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
INSERT DELAYED INTO t1 SET b= b();
|
||||||
|
ERROR 42S22: Unknown column 'b' in 'field list'
|
||||||
|
DROP TABLE t1;
|
||||||
|
End of 5.0 tests
|
||||||
|
@ -252,3 +252,12 @@ CREATE TABLE t2(c1 INT) ENGINE=MERGE UNION=(t1);
|
|||||||
INSERT DELAYED INTO t2 VALUES(1);
|
INSERT DELAYED INTO t2 VALUES(1);
|
||||||
DROP TABLE t1, t2;
|
DROP TABLE t1, t2;
|
||||||
|
|
||||||
|
#
|
||||||
|
# Bug #32676: insert delayed crash with wrong column and function specified
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT);
|
||||||
|
--error ER_BAD_FIELD_ERROR
|
||||||
|
INSERT DELAYED INTO t1 SET b= b();
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo End of 5.0 tests
|
||||||
|
@ -585,7 +585,7 @@ bool mysql_insert(THD *thd,TABLE_LIST *table_list,
|
|||||||
bool log_on= (thd->options & OPTION_BIN_LOG) ||
|
bool log_on= (thd->options & OPTION_BIN_LOG) ||
|
||||||
(!(thd->security_ctx->master_access & SUPER_ACL));
|
(!(thd->security_ctx->master_access & SUPER_ACL));
|
||||||
#endif
|
#endif
|
||||||
thr_lock_type lock_type = table_list->lock_type;
|
thr_lock_type lock_type;
|
||||||
Item *unused_conds= 0;
|
Item *unused_conds= 0;
|
||||||
DBUG_ENTER("mysql_insert");
|
DBUG_ENTER("mysql_insert");
|
||||||
|
|
||||||
@ -620,6 +620,7 @@ bool mysql_insert(THD *thd,TABLE_LIST *table_list,
|
|||||||
if (open_and_lock_tables(thd, table_list))
|
if (open_and_lock_tables(thd, table_list))
|
||||||
DBUG_RETURN(TRUE);
|
DBUG_RETURN(TRUE);
|
||||||
}
|
}
|
||||||
|
lock_type= table_list->lock_type;
|
||||||
|
|
||||||
thd->proc_info="init";
|
thd->proc_info="init";
|
||||||
thd->used_tables=0;
|
thd->used_tables=0;
|
||||||
@ -637,7 +638,6 @@ bool mysql_insert(THD *thd,TABLE_LIST *table_list,
|
|||||||
|
|
||||||
/* mysql_prepare_insert set table_list->table if it was not set */
|
/* mysql_prepare_insert set table_list->table if it was not set */
|
||||||
table= table_list->table;
|
table= table_list->table;
|
||||||
lock_type= table_list->lock_type;
|
|
||||||
|
|
||||||
context= &thd->lex->select_lex.context;
|
context= &thd->lex->select_lex.context;
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user