mirror of
https://github.com/zebrajr/server.git
synced 2025-12-06 12:20:40 +01:00
Exclude just added row
This commit is contained in:
parent
a8b2adad64
commit
2fbb3462be
|
|
@ -246,6 +246,10 @@ int TABLE::delete_row()
|
|||
|
||||
store_record(this, record[1]);
|
||||
vers_update_end();
|
||||
Field *row_start= vers_start_field();
|
||||
/* Don't create history for records inserted in same query */
|
||||
if (0 == row_start->cmp(row_start->ptr, vers_end_field()->ptr) >= 0)
|
||||
return file->ha_delete_row(record[1]);
|
||||
return file->ha_update_row(record[1], record[0]);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -613,8 +613,25 @@ struct upd_node_t{
|
|||
void make_versioned_delete(const trx_t* trx)
|
||||
{
|
||||
update->n_fields = 0;
|
||||
is_delete = VERSIONED_DELETE;
|
||||
make_versioned_helper(trx, table->vers_end);
|
||||
const dfield_t* dfield_start = dtuple_get_nth_field(
|
||||
row, table->vers_start);
|
||||
const dfield_t* dfield_end = dtuple_get_nth_field(
|
||||
row, table->vers_end);
|
||||
if (0 == cmp_data_data(dfield_get_type(dfield_start)->mtype,
|
||||
dfield_get_type(dfield_start)->prtype,
|
||||
static_cast<const byte*>(
|
||||
dfield_get_data(dfield_start)),
|
||||
dfield_get_len(dfield_start),
|
||||
static_cast<const byte*>(
|
||||
dfield_get_data(dfield_end)),
|
||||
dfield_get_len(dfield_end))) {
|
||||
|
||||
is_delete = PLAIN_DELETE;
|
||||
}
|
||||
else {
|
||||
is_delete = VERSIONED_DELETE;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user