diff options
author | kevg <claprix@yandex.ru> | 2017-01-12 13:51:12 +0300 |
---|---|---|
committer | Aleksey Midenkov <midenok@gmail.com> | 2017-05-05 20:36:25 +0300 |
commit | e069de7d9da69dd0aed3147a493402cbdeca2c12 (patch) | |
tree | 2f986694b83054dca66c8d57ec22e3c5ebd86f53 /sql/sql_delete.cc | |
parent | 3a64d55aede6db2b3d520e7fbc17e70cfeb8916e (diff) | |
download | mariadb-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.cc | 15 |
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); + } } } |