polardbxengine/mysql-test/suite/ndb/t/ndb_load.test

103 lines
2.2 KiB
Plaintext

-- source include/have_ndb.inc
#
# Basic test for different types of loading data
#
# should give duplicate key
CREATE TABLE t1 (word CHAR(20) NOT NULL PRIMARY KEY) ENGINE=NDB;
--error 1022
LOAD DATA INFILE '../../../std_data/words.dat' INTO TABLE t1 ;
DROP TABLE t1;
# now without a primary key we should be ok
CREATE TABLE t1 (word CHAR(20) NOT NULL) ENGINE=NDB;
LOAD DATA INFILE '../../../std_data/words.dat' INTO TABLE t1 ;
SELECT * FROM t1 ORDER BY word;
DROP TABLE t1;
# End of 4.1 tests
--echo Test single statement load from MyISAM table with and
--echo without ndb_use_transactions
--echo (Bug#43236)
--echo ndb_use_transactions = 0 should allow bulk inserts to
--echo succeed by automatically splitting into smaller
--echo transactions.
CREATE TABLE t1 (a int) engine=MyIsam;
show tables;
DELIMITER %;
CREATE PROCEDURE bulkinsert (in num int)
BEGIN
set @total= num;
repeat
insert into t1 values (@total);
set @total= @total -1;
until @total = 0 end repeat;
end %
DELIMITER ;%
--echo Insert 15000 rows which should exceed default number
--echo of concurrent operations (include/default_ndbd.cnf)
--echo when trying to move over to ndb.
CALL bulkinsert(15000);
show tables;
SELECT COUNT(*) FROM t1;
SET ndb_use_transactions= 1;
CREATE TABLE t2 (a int) engine=Ndb;
--echo Will fail with too many concurrent operations error
--error 1297
INSERT INTO t2 SELECT * FROM t1;
SELECT COUNT(*) FROM t2;
SET ndb_use_transactions= 0;
--echo Should pass as insert is split
--echo into multiple transactions
INSERT INTO t2 SELECT * FROM t1;
SELECT COUNT(*) FROM t2;
DROP PROCEDURE bulkinsert;
DROP TABLE t2;
--echo Now check bulk insert using create .. as select.
SHOW VARIABLES LIKE 'default_storage_engine';
# Change default_storage_engine to NDB
SET default_storage_engine="ndb";
--disable_warnings
CREATE TABLE t2 AS SELECT * FROM t1;
--enable_warnings
SELECT COUNT(*) FROM t2;
DROP TABLE t2;
# Reset default_storage_engine to InnoDB
SET default_storage_engine="InnoDB";
--echo Now check Alter table to Ndb
ALTER TABLE t1 ENGINE= Ndb;
SELECT COUNT(*) FROM t1;
--echo Now check Alter table within Ndb
ALTER TABLE t1 ADD COLUMN extra int default 6;
SELECT COUNT(*) FROM t1;
DROP TABLE t1;