mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Bug#48525: trigger changes "Column 'id' cannot be null" behaviour
CHECK_FIELD_IGNORE was treated as CHECK_FIELD_ERROR_FOR_NULL; UPDATE...SET...NULL on NOT NULL fields behaved differently after a trigger. Now distinguishes between IGNORE and ERROR_FOR_NULL and save/restores check-field options.
This commit is contained in:
@ -3100,6 +3100,7 @@ void THD::reset_sub_statement_state(Sub_statement_state *backup,
|
||||
}
|
||||
#endif
|
||||
|
||||
backup->count_cuted_fields= count_cuted_fields;
|
||||
backup->options= options;
|
||||
backup->in_sub_stmt= in_sub_stmt;
|
||||
backup->enable_slow_log= enable_slow_log;
|
||||
@ -3137,6 +3138,7 @@ void THD::reset_sub_statement_state(Sub_statement_state *backup,
|
||||
|
||||
void THD::restore_sub_statement_state(Sub_statement_state *backup)
|
||||
{
|
||||
DBUG_ENTER("THD::restore_sub_statement_state");
|
||||
#ifndef EMBEDDED_LIBRARY
|
||||
/* BUG#33029, if we are replicating from a buggy master, restore
|
||||
auto_inc_intervals_forced so that the top statement can use the
|
||||
@ -3163,6 +3165,7 @@ void THD::restore_sub_statement_state(Sub_statement_state *backup)
|
||||
/* ha_release_savepoint() never returns error. */
|
||||
(void)ha_release_savepoint(this, sv);
|
||||
}
|
||||
count_cuted_fields= backup->count_cuted_fields;
|
||||
transaction.savepoints= backup->savepoints;
|
||||
options= backup->options;
|
||||
in_sub_stmt= backup->in_sub_stmt;
|
||||
@ -3192,6 +3195,7 @@ void THD::restore_sub_statement_state(Sub_statement_state *backup)
|
||||
*/
|
||||
examined_row_count+= backup->examined_row_count;
|
||||
cuted_fields+= backup->cuted_fields;
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user