mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 12:02:42 +01:00
Bug #18864 TRUNCATE TABLE doesn't reset AUTO_INCREMENT value on ndb table
This commit is contained in:
parent
445e828785
commit
22e3b0c66f
4 changed files with 37 additions and 18 deletions
|
@ -1,14 +1,23 @@
|
|||
DROP TABLE IF EXISTS t2;
|
||||
CREATE TABLE t2 (
|
||||
a bigint unsigned NOT NULL PRIMARY KEY,
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
CREATE TABLE t1 (
|
||||
a bigint unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
b int unsigned not null,
|
||||
c int unsigned
|
||||
) engine=ndbcluster;
|
||||
select count(*) from t2;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
5000
|
||||
truncate table t2;
|
||||
select count(*) from t2;
|
||||
select * from t1 order by a limit 2;
|
||||
a b c
|
||||
1 509 2500
|
||||
2 510 7
|
||||
truncate table t1;
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
0
|
||||
drop table t2;
|
||||
insert into t1 values(NULL,1,1),(NULL,2,2);
|
||||
select * from t1 order by a;
|
||||
a b c
|
||||
1 1 1
|
||||
2 2 2
|
||||
drop table t1;
|
||||
|
|
|
@ -2,12 +2,11 @@
|
|||
-- source include/not_embedded.inc
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t2;
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
--enable_warnings
|
||||
|
||||
|
||||
CREATE TABLE t2 (
|
||||
a bigint unsigned NOT NULL PRIMARY KEY,
|
||||
CREATE TABLE t1 (
|
||||
a bigint unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
b int unsigned not null,
|
||||
c int unsigned
|
||||
) engine=ndbcluster;
|
||||
|
@ -20,17 +19,23 @@ let $1=500;
|
|||
disable_query_log;
|
||||
while ($1)
|
||||
{
|
||||
eval insert into t2 values($1*10, $1+9, 5*$1), ($1*10+1, $1+10, 7),($1*10+2, $1+10, 7*$1), ($1*10+3, $1+10, 10+$1), ($1*10+4, $1+10, 70*$1), ($1*10+5, $1+10, 7), ($1*10+6, $1+10, 9), ($1*10+7, $1+299, 899), ($1*10+8, $1+10, 12), ($1*10+9, $1+10, 14*$1);
|
||||
eval insert into t1 values(NULL, $1+9, 5*$1), (NULL, $1+10, 7),(NULL, $1+10, 7*$1), (NULL, $1+10, 10+$1), (NULL, $1+10, 70*$1), (NULL, $1+10, 7), (NULL, $1+10, 9), (NULL, $1+299, 899), (NULL, $1+10, 12), (NULL, $1+10, 14*$1);
|
||||
dec $1;
|
||||
}
|
||||
enable_query_log;
|
||||
|
||||
select count(*) from t2;
|
||||
select count(*) from t1;
|
||||
|
||||
truncate table t2;
|
||||
select * from t1 order by a limit 2;
|
||||
|
||||
select count(*) from t2;
|
||||
truncate table t1;
|
||||
|
||||
drop table t2;
|
||||
select count(*) from t1;
|
||||
|
||||
insert into t1 values(NULL,1,1),(NULL,2,2);
|
||||
|
||||
select * from t1 order by a;
|
||||
|
||||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
|
|
@ -3767,6 +3767,12 @@ int ha_ndbcluster::create(const char *name,
|
|||
set_dbname(name2);
|
||||
set_tabname(name2);
|
||||
|
||||
if (current_thd->lex->sql_command == SQLCOM_TRUNCATE)
|
||||
{
|
||||
DBUG_PRINT("info", ("Dropping and re-creating table for TRUNCATE"));
|
||||
if ((my_errno= delete_table(name)))
|
||||
DBUG_RETURN(my_errno);
|
||||
}
|
||||
if (create_from_engine)
|
||||
{
|
||||
/*
|
||||
|
|
|
@ -533,8 +533,7 @@ extern TYPELIB myisam_stats_method_typelib;
|
|||
#define ha_supports_generate(T) (T != DB_TYPE_INNODB && \
|
||||
T != DB_TYPE_BERKELEY_DB && \
|
||||
T != DB_TYPE_ARCHIVE_DB && \
|
||||
T != DB_TYPE_FEDERATED_DB && \
|
||||
T != DB_TYPE_NDBCLUSTER)
|
||||
T != DB_TYPE_FEDERATED_DB)
|
||||
|
||||
bool ha_caching_allowed(THD* thd, char* table_key,
|
||||
uint key_length, uint8 cache_type);
|
||||
|
|
Loading…
Reference in a new issue