mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Move reset of insert_values to ensure it's done also during error conditions
This fixed a failure of insert_update.test on some platforms
This commit is contained in:
@ -86,6 +86,7 @@ void init_thr_alarm(uint max_alarms)
|
||||
{
|
||||
struct sigaction sact;
|
||||
sact.sa_flags = 0;
|
||||
bzero((char*) &sact, sizeof(sact));
|
||||
sact.sa_handler = thread_alarm;
|
||||
sigaction(THR_CLIENT_ALARM, &sact, (struct sigaction*) 0);
|
||||
}
|
||||
|
@ -981,8 +981,7 @@ get_mm_parts(PARAM *param, COND *cond_func, Field *field,
|
||||
SEL_TREE *tree2= get_mm_parts(param, cond_func,
|
||||
field, Item_func::GT_FUNC,
|
||||
value, cmp_type);
|
||||
if (!tree2)
|
||||
DBUG_RETURN(0);
|
||||
/* tree_or() will return 0 if tree2 is 0 */
|
||||
tree= tree_or(param,tree,tree2);
|
||||
}
|
||||
DBUG_RETURN(tree);
|
||||
|
@ -979,6 +979,7 @@ TABLE *open_table(THD *thd,const char *db,const char *table_name,
|
||||
if (table->timestamp_field)
|
||||
table->timestamp_field_type= table->timestamp_field->get_auto_set_type();
|
||||
DBUG_ASSERT(table->key_read == 0);
|
||||
DBUG_ASSERT(table->insert_values == 0);
|
||||
DBUG_RETURN(table);
|
||||
}
|
||||
|
||||
|
@ -516,6 +516,10 @@ abort:
|
||||
ON DUPLICATE KEY ...
|
||||
we should be able to refer to sum1 in the ON DUPLICATE KEY part
|
||||
|
||||
WARNING
|
||||
You MUST set table->insert_values to 0 after calling this function
|
||||
before releasing the table object.
|
||||
|
||||
RETURN VALUE
|
||||
0 OK
|
||||
-1 error (message is not sent to user)
|
||||
|
@ -2891,12 +2891,12 @@ unsent_create_error:
|
||||
/* revert changes for SP */
|
||||
lex->select_lex.resolve_mode= SELECT_LEX::INSERT_MODE;
|
||||
delete result;
|
||||
insert_table->insert_values= 0;
|
||||
if (thd->net.report_error)
|
||||
res= -1;
|
||||
}
|
||||
else
|
||||
res= -1;
|
||||
insert_table->insert_values= 0; // Set by mysql_prepare_insert()
|
||||
first_local_table->next= tables;
|
||||
lex->select_lex.table_list.first= (byte*) first_local_table;
|
||||
break;
|
||||
|
Reference in New Issue
Block a user