1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

SQL: disable truncate history on partitioned [fixes #399]

This commit is contained in:
Aleksey Midenkov
2017-12-14 19:11:02 +03:00
parent f96815fe97
commit ab5ec0f346
4 changed files with 30 additions and 0 deletions

View File

@ -34,4 +34,13 @@ select * from t for system_time all;
a a
11 11
22 22
### Issue #399, truncate partitioned table is now unimplemented
create or replace table t (a int)
with system versioning
engine myisam
partition by system_time (
partition p0 versioning,
partition pn as of current_timestamp);
truncate table t to system_time current_timestamp;
ERROR 42000: The used command is not allowed with this MariaDB version
drop table t; drop table t;

View File

@ -1 +1,2 @@
--versioning-hide=implicit --versioning-hide=implicit
--partition

View File

@ -28,4 +28,16 @@ select * from t for system_time all;
truncate table t to system_time timestamp now(6); truncate table t to system_time timestamp now(6);
select * from t for system_time all; select * from t for system_time all;
--echo ### Issue #399, truncate partitioned table is now unimplemented
create or replace table t (a int)
with system versioning
engine myisam
partition by system_time (
partition p0 versioning,
partition pn as of current_timestamp);
--error ER_NOT_ALLOWED_COMMAND
truncate table t to system_time current_timestamp;
drop table t; drop table t;

View File

@ -315,6 +315,14 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds,
TABLE *table= table_list->table; TABLE *table= table_list->table;
DBUG_ASSERT(table); DBUG_ASSERT(table);
#ifdef WITH_PARTITION_STORAGE_ENGINE
if (table->part_info)
{
my_error(ER_NOT_ALLOWED_COMMAND, MYF(0));
DBUG_RETURN(true);
}
#endif
DBUG_ASSERT(!conds); DBUG_ASSERT(!conds);
if (select_lex->vers_setup_conds(thd, table_list, &conds)) if (select_lex->vers_setup_conds(thd, table_list, &conds))
DBUG_RETURN(TRUE); DBUG_RETURN(TRUE);