summaryrefslogtreecommitdiff
path: root/sql/sql_truncate.cc
diff options
context:
space:
mode:
authorkevg <claprix@yandex.ru>2016-12-23 17:05:57 +0300
committerAleksey Midenkov <midenok@gmail.com>2017-05-05 20:36:24 +0300
commitc9e4ac4b7221ab58097ce16e91eb1b885f2a3485 (patch)
tree383f3101b7dd19810ccfca6a4ba1227adebfbd3d /sql/sql_truncate.cc
parent4c37011582b4581bb122293ba30a6956b573483c (diff)
downloadmariadb-git-c9e4ac4b7221ab58097ce16e91eb1b885f2a3485.tar.gz
0.6: truncate history feature [closes #96]
Diffstat (limited to 'sql/sql_truncate.cc')
-rw-r--r--sql/sql_truncate.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/sql/sql_truncate.cc b/sql/sql_truncate.cc
index daa295d768e..4faad5b4711 100644
--- a/sql/sql_truncate.cc
+++ b/sql/sql_truncate.cc
@@ -26,7 +26,8 @@
#include "sql_truncate.h"
#include "wsrep_mysqld.h"
#include "sql_show.h" //append_identifier()
-
+#include "sql_select.h"
+#include "sql_delete.h"
/**
Append a list of field names to a string.
@@ -480,7 +481,6 @@ bool Sql_cmd_truncate_table::truncate_table(THD *thd, TABLE_LIST *table_ref)
DBUG_RETURN(error);
}
-
/**
Execute a TRUNCATE statement at runtime.
@@ -495,6 +495,11 @@ bool Sql_cmd_truncate_table::execute(THD *thd)
TABLE_LIST *first_table= thd->lex->select_lex.table_list.first;
DBUG_ENTER("Sql_cmd_truncate_table::execute");
+ bool truncate_history= thd->lex->current_select->vers_conditions.type !=
+ FOR_SYSTEM_TIME_UNSPECIFIED;
+ if (truncate_history)
+ DBUG_RETURN(mysql_delete(thd, first_table, NULL, NULL, -1, 0, NULL));
+
if (check_one_table_access(thd, DROP_ACL, first_table))
DBUG_RETURN(res);