Loading mysql-test/r/ndb_truncate.result +16 −7 Original line number Diff line number Diff line 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; mysql-test/t/ndb_truncate.test +14 −9 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; select * from t1 order by a limit 2; truncate table t1; select count(*) from t1; truncate table t2; insert into t1 values(NULL,1,1),(NULL,2,2); select count(*) from t2; select * from t1 order by a; drop table t2; drop table t1; # End of 4.1 tests sql/ha_ndbcluster.cc +6 −0 Original line number Diff line number Diff line Loading @@ -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) { /* Loading sql/handler.h +1 −2 Original line number Diff line number Diff line Loading @@ -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 Loading
mysql-test/r/ndb_truncate.result +16 −7 Original line number Diff line number Diff line 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;
mysql-test/t/ndb_truncate.test +14 −9 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; select * from t1 order by a limit 2; truncate table t1; select count(*) from t1; truncate table t2; insert into t1 values(NULL,1,1),(NULL,2,2); select count(*) from t2; select * from t1 order by a; drop table t2; drop table t1; # End of 4.1 tests
sql/ha_ndbcluster.cc +6 −0 Original line number Diff line number Diff line Loading @@ -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) { /* Loading
sql/handler.h +1 −2 Original line number Diff line number Diff line Loading @@ -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