summaryrefslogtreecommitdiff
path: root/sql/sql_delete.cc
diff options
context:
space:
mode:
authorkevg <claprix@yandex.ru>2017-01-12 13:51:12 +0300
committerAleksey Midenkov <midenok@gmail.com>2017-05-05 20:36:25 +0300
commite069de7d9da69dd0aed3147a493402cbdeca2c12 (patch)
tree2f986694b83054dca66c8d57ec22e3c5ebd86f53 /sql/sql_delete.cc
parent3a64d55aede6db2b3d520e7fbc17e70cfeb8916e (diff)
downloadmariadb-git-e069de7d9da69dd0aed3147a493402cbdeca2c12.tar.gz
SQL: TRUNCATE FOR SYSTEM_TIME BEFORE [closes #111]
Diffstat (limited to 'sql/sql_delete.cc')
-rw-r--r--sql/sql_delete.cc15
1 files changed, 10 insertions, 5 deletions
diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc
index 5d62b54b297..7d59d5164e1 100644
--- a/sql/sql_delete.cc
+++ b/sql/sql_delete.cc
@@ -283,11 +283,16 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds,
DBUG_RETURN(TRUE);
// trx_sees() in InnoDB reads sys_trx_start
- if (!table->versioned_by_sql() &&
- (select_lex->vers_conditions.type == FOR_SYSTEM_TIME_BETWEEN ||
- select_lex->vers_conditions.type == FOR_SYSTEM_TIME_FROM_TO))
- {
- bitmap_set_bit(table->read_set, table->vers_start_field()->field_index);
+ if (!table->versioned_by_sql()) {
+ if (select_lex->vers_conditions.type == FOR_SYSTEM_TIME_BETWEEN ||
+ select_lex->vers_conditions.type == FOR_SYSTEM_TIME_FROM_TO)
+ {
+ bitmap_set_bit(table->read_set, table->vers_start_field()->field_index);
+ }
+ else if (select_lex->vers_conditions.type == FOR_SYSTEM_TIME_BEFORE)
+ {
+ bitmap_set_bit(table->read_set, table->vers_end_field()->field_index);
+ }
}
}