Commit 92d6bd72 authored by Marko Mäkelä's avatar Marko Mäkelä Committed by Aleksey Midenkov

Minor InnoDB cleanup (follow-up to #337)

parent 5bf14f93
...@@ -9167,9 +9167,6 @@ ha_innobase::update_row( ...@@ -9167,9 +9167,6 @@ ha_innobase::update_row(
DB_FORCED_ABORT, 0, m_user_thd)); DB_FORCED_ABORT, 0, m_user_thd));
} }
/* This is not a delete */
m_prebuilt->upd_node->is_delete = NO_DELETE;
{ {
const bool vers_set_fields = m_prebuilt->versioned_write const bool vers_set_fields = m_prebuilt->versioned_write
&& m_prebuilt->upd_node->update->affects_versioned(); && m_prebuilt->upd_node->update->affects_versioned();
...@@ -9177,8 +9174,11 @@ ha_innobase::update_row( ...@@ -9177,8 +9174,11 @@ ha_innobase::update_row(
&& (table->s->vtmd && (table->s->vtmd
|| thd_sql_command(m_user_thd) != SQLCOM_ALTER_TABLE); || thd_sql_command(m_user_thd) != SQLCOM_ALTER_TABLE);
if (vers_set_fields && !vers_ins_row) /* This is not a delete */
m_prebuilt->upd_node->is_delete = VERSIONED_DELETE; m_prebuilt->upd_node->is_delete
= vers_set_fields && !vers_ins_row
? VERSIONED_DELETE
: NO_DELETE;
innobase_srv_conc_enter_innodb(m_prebuilt); innobase_srv_conc_enter_innodb(m_prebuilt);
...@@ -9301,12 +9301,10 @@ ha_innobase::delete_row( ...@@ -9301,12 +9301,10 @@ ha_innobase::delete_row(
} }
/* This is a delete */ /* This is a delete */
m_prebuilt->upd_node->is_delete
if (table->versioned_write() && table->vers_end_field()->is_max()) { = table->versioned_write() && table->vers_end_field()->is_max()
m_prebuilt->upd_node->is_delete = VERSIONED_DELETE; ? VERSIONED_DELETE
} else { : PLAIN_DELETE;
m_prebuilt->upd_node->is_delete = PLAIN_DELETE;
}
innobase_srv_conc_enter_innodb(m_prebuilt); innobase_srv_conc_enter_innodb(m_prebuilt);
......
...@@ -860,16 +860,16 @@ struct row_prebuilt_t { ...@@ -860,16 +860,16 @@ struct row_prebuilt_t {
/** The MySQL table object */ /** The MySQL table object */
TABLE* m_mysql_table; TABLE* m_mysql_table;
/** Get template by column number */ /** Get template by dict_table_t::cols[] number */
const mysql_row_templ_t* get_template_by_col(ulint col) const const mysql_row_templ_t* get_template_by_col(ulint col) const
{ {
ut_a(col < n_template); ut_ad(col < n_template);
ut_a(mysql_template); ut_ad(mysql_template);
for (int i = col; i < n_template; ++i) for (int i = col; i < n_template; ++i) {
{ const mysql_row_templ_t* templ = &mysql_template[i];
const mysql_row_templ_t* templ = mysql_template + i; if (!templ->is_virtual && templ->col_no == col) {
if (!templ->is_virtual && templ->col_no == col)
return templ; return templ;
}
} }
return NULL; return NULL;
} }
......
...@@ -1518,7 +1518,8 @@ row_insert_for_mysql( ...@@ -1518,7 +1518,8 @@ row_insert_for_mysql(
/* Return back modified fields into mysql_rec, so that /* Return back modified fields into mysql_rec, so that
upper logic may benefit from it (f.ex. 'on duplicate key'). */ upper logic may benefit from it (f.ex. 'on duplicate key'). */
const mysql_row_templ_t* t = prebuilt->get_template_by_col(table->vers_end); const mysql_row_templ_t* t = prebuilt->get_template_by_col(table->vers_end);
ut_ad(t && t->mysql_col_len == 8); ut_ad(t);
ut_ad(t->mysql_col_len == 8);
if (ins_mode == ROW_INS_HISTORICAL) { if (ins_mode == ROW_INS_HISTORICAL) {
set_tuple_col_8(node->row, table->vers_end, trx->id, node->vers_end_buf); set_tuple_col_8(node->row, table->vers_end, trx->id, node->vers_end_buf);
...@@ -1527,7 +1528,8 @@ row_insert_for_mysql( ...@@ -1527,7 +1528,8 @@ row_insert_for_mysql(
set_tuple_col_8(node->row, table->vers_end, TRX_ID_MAX, node->vers_end_buf); set_tuple_col_8(node->row, table->vers_end, TRX_ID_MAX, node->vers_end_buf);
int8store(&mysql_rec[t->mysql_col_offset], TRX_ID_MAX); int8store(&mysql_rec[t->mysql_col_offset], TRX_ID_MAX);
t = prebuilt->get_template_by_col(table->vers_start); t = prebuilt->get_template_by_col(table->vers_start);
ut_ad(t && t->mysql_col_len == 8); ut_ad(t);
ut_ad(t->mysql_col_len == 8);
set_tuple_col_8(node->row, table->vers_start, trx->id, node->vers_start_buf); set_tuple_col_8(node->row, table->vers_start, trx->id, node->vers_start_buf);
int8store(&mysql_rec[t->mysql_col_offset], trx->id); int8store(&mysql_rec[t->mysql_col_offset], trx->id);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment