File tree Expand file tree Collapse file tree 3 files changed +6
-11
lines changed Expand file tree Collapse file tree 3 files changed +6
-11
lines changed Original file line number Diff line number Diff line change @@ -9171,14 +9171,11 @@ ha_innobase::update_row(
9171
9171
m_prebuilt->upd_node->is_delete = NO_DELETE;
9172
9172
9173
9173
{
9174
- const bool vers_set_fields
9175
- = m_prebuilt->versioned_write
9174
+ const bool vers_set_fields = m_prebuilt->versioned_write
9176
9175
&& m_prebuilt->upd_node->update->affects_versioned();
9177
- const bool vers_ins_row
9178
- = vers_set_fields
9176
+ const bool vers_ins_row = vers_set_fields
9179
9177
&& (table->s->vtmd
9180
- || thd_sql_command(m_user_thd)
9181
- != SQLCOM_ALTER_TABLE);
9178
+ || thd_sql_command(m_user_thd) != SQLCOM_ALTER_TABLE);
9182
9179
9183
9180
if (vers_set_fields && !vers_ins_row)
9184
9181
m_prebuilt->upd_node->is_delete = VERSIONED_DELETE;
Original file line number Diff line number Diff line change @@ -464,6 +464,7 @@ struct upd_t{
464
464
virtual column update now */
465
465
ulint n_fields; /* !< number of update fields */
466
466
upd_field_t * fields; /* !< array of update fields */
467
+ byte vers_sys_value[8 ]; /* !< buffer for updating system fields */
467
468
468
469
/* * Append an update field to the end of array
469
470
@param[in] field an update field */
Original file line number Diff line number Diff line change @@ -2004,7 +2004,6 @@ row_update_for_mysql(row_prebuilt_t* prebuilt)
2004
2004
ut_ad (!prebuilt->versioned_write || node->table ->versioned ());
2005
2005
2006
2006
bool vers_set_fields = prebuilt->versioned_write
2007
- && node->table ->versioned ()
2008
2007
&& (node->is_delete ? node->is_delete == VERSIONED_DELETE
2009
2008
: node->update ->affects_versioned ());
2010
2009
run_again:
@@ -2038,11 +2037,9 @@ row_update_for_mysql(row_prebuilt_t* prebuilt)
2038
2037
ufield->orig_len = 0 ;
2039
2038
ufield->exp = NULL ;
2040
2039
2041
- static const ulint fsize = sizeof (trx_id_t );
2042
- byte* buf = static_cast <byte*>(mem_heap_alloc (node->update ->heap , fsize));
2043
- mach_write_to_8 (buf, trx->id );
2040
+ mach_write_to_8 (node->update ->vers_sys_value , trx->id );
2044
2041
dfield_t * dfield = &ufield->new_val ;
2045
- dfield_set_data (dfield, buf, fsize );
2042
+ dfield_set_data (dfield, node-> update -> vers_sys_value , 8 );
2046
2043
dict_col_copy_type (col, &dfield->type );
2047
2044
2048
2045
uvect->n_fields ++;
You can’t perform that action at this time.
0 commit comments