103 lines
2.2 KiB
Plaintext
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;
|