mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-30 04:26:45 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			551 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			551 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ##############################################################
 | |
| # Author: Nikolay
 | |
| # Date: 2006-04-01
 | |
| # Purpose: Specific Blob and Varchar testing using disk tables.
 | |
| ##############################################################
 | |
| #    Create Stored procedures that use disk based tables.
 | |
| #    Create function that operate on disk based tables.
 | |
| #    Create triggers that operate on disk based tables.
 | |
| #    Create views that operate on disk based tables.
 | |
| #    Try to create FK constraints on disk based tables.
 | |
| #    Create and use disk based table that use auto inc.
 | |
| #    Create test that use transaction (commit, rollback)
 | |
| #    Create large disk base table, do random queries, check cache hits, 
 | |
| #    do same query 10 times check cache hits.
 | |
| #    Create test that uses COUNT(), SUM(), MAX(), MIN(), 
 | |
| #    NOW(), USER(), ... other built in #    SQL functions
 | |
| #    Create test that uses locks.
 | |
| #    Create test using truncate.
 | |
| ##############################################################
 | |
| # Author: Jonathan
 | |
| # Date: 2006-08-28
 | |
| # Change: Remove all the create and drop LFG and TS except
 | |
| #         The first create and the last drop to make test 
 | |
| #         run faster. 
 | |
| #         In addition, renamed test to be to a name that 
 | |
| #         gives a better idea of what the test is about
 | |
| ########################################################### 
 | |
| -- source include/have_ndb.inc
 | |
| 
 | |
| --disable_warnings
 | |
| DROP TABLE IF EXISTS test.t1;
 | |
| DROP TABLE IF EXISTS test.t2;
 | |
| DROP TABLE IF EXISTS test.t3;
 | |
| --enable_warnings
 | |
| 
 | |
| #### Copy data from table in one table space to table in ###
 | |
| #### different table space. ####
 | |
| --echo *****
 | |
| --echo **** Copy data from table in one table space to table 
 | |
| --echo **** in different table space
 | |
| --echo *****
 | |
| 
 | |
|  CREATE LOGFILE GROUP lg
 | |
|  ADD UNDOFILE './lg_group/undofile.dat'
 | |
|  INITIAL_SIZE 16M
 | |
|  UNDO_BUFFER_SIZE = 1M
 | |
|  ENGINE=NDB;
 | |
| 
 | |
|  CREATE TABLESPACE ts1
 | |
|  ADD DATAFILE './table_space1/datafile.dat'
 | |
|  USE LOGFILE GROUP lg
 | |
|  INITIAL_SIZE 25M
 | |
|  ENGINE NDB;
 | |
| 
 | |
|  CREATE TABLESPACE ts2
 | |
|  ADD DATAFILE './table_space2/datafile.dat'
 | |
|  USE LOGFILE GROUP lg
 | |
|  INITIAL_SIZE 20M
 | |
|  ENGINE NDB;
 | |
| 
 | |
|  CREATE TABLE test.t1 (a1 int NOT NULL PRIMARY KEY, a2 VARCHAR(256), a3 BLOB) 
 | |
|  TABLESPACE ts1 STORAGE DISK  ENGINE=NDB;
 | |
|  CREATE TABLE test.t2 (a1 int NOT NULL PRIMARY KEY, a2 VARCHAR(256), a3 BLOB) 
 | |
|  TABLESPACE ts2 STORAGE DISK  ENGINE=NDB;
 | |
|  
 | |
|  SHOW CREATE TABLE test.t1;
 | |
|  SHOW CREATE TABLE test.t2;
 | |
|  
 | |
|  INSERT INTO test.t1 VALUES (1,'111111','aaaaaaaa');
 | |
|  INSERT INTO test.t1 VALUES (2,'222222','bbbbbbbb');
 | |
|  SELECT * FROM test.t1 ORDER BY a1;
 | |
|  INSERT INTO test.t2(a1,a2,a3) SELECT * FROM test.t1;  
 | |
|  SELECT * FROM test.t2 ORDER BY a1;
 | |
|  
 | |
|  DROP TABLE test.t1, test.t2;
 | |
| 
 | |
|  # populate BLOB field with large data
 | |
| 
 | |
| set @vc1 = repeat('a', 200);
 | |
| set @vc2 = repeat('b', 500);
 | |
| set @vc3 = repeat('c', 1000);
 | |
| set @vc4 = repeat('d', 4000);
 | |
| 
 | |
| # x0 size 256
 | |
| set @x0 = '01234567012345670123456701234567';
 | |
| set @x0 = concat(@x0,@x0,@x0,@x0,@x0,@x0,@x0,@x0);
 | |
| 
 | |
| # b1 length 2000+256
 | |
| set @b1 = 'b1';
 | |
| set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1);
 | |
| set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1);
 | |
| set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1);
 | |
| set @b1 = concat(@b1,@x0);
 | |
| # d1 length 3000
 | |
| set @d1 = 'dd1';
 | |
| set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1);
 | |
| set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1);
 | |
| set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1);
 | |
| 
 | |
| # b2 length 20000
 | |
| set @b2 = 'b2';
 | |
| set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
 | |
| set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
 | |
| set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
 | |
| set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
 | |
| # d2 length 30000
 | |
| set @d2 = 'dd2';
 | |
| set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
 | |
| set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
 | |
| set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
 | |
| set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
 | |
| 
 | |
| select length(@x0),length(@b1),length(@d1) from dual;
 | |
| select length(@x0),length(@b2),length(@d2) from dual;
 | |
| 
 | |
|  CREATE TABLE test.t1 (a1 int NOT NULL PRIMARY KEY, a2 VARCHAR(5000), a3 BLOB) 
 | |
|  TABLESPACE ts1 STORAGE DISK  ENGINE=NDB;
 | |
|  CREATE TABLE test.t2 (a1 int NOT NULL PRIMARY KEY, a2 VARCHAR(5000), a3 BLOB) 
 | |
|  TABLESPACE ts2 STORAGE DISK  ENGINE=NDB;
 | |
|  
 | |
|  SHOW CREATE TABLE test.t1;
 | |
|  SHOW CREATE TABLE test.t2;
 | |
|  
 | |
|  INSERT INTO test.t1 VALUES (1,@vc1,@d1);
 | |
|  INSERT INTO test.t1 VALUES (2,@vc2,@b1);
 | |
|  INSERT INTO test.t1 VALUES (3,@vc3,@d2);
 | |
|  INSERT INTO test.t1 VALUES (4,@vc4,@b2);
 | |
| 
 | |
|  SELECT a1,length(a2),substr(a2,180,2),length(a3),substr(a3,1+3*900,3)
 | |
|  FROM test.t1 WHERE a1=1;
 | |
|  SELECT a1,length(a2),substr(a2,480,2),length(a3),substr(a3,1+2*900,3)
 | |
|  FROM test.t1 where a1=2;
 | |
|  
 | |
|  INSERT INTO test.t2(a1,a2,a3) SELECT * FROM test.t1;  
 | |
|  SELECT a1,length(a2),substr(a2,180,2),length(a3),substr(a3,1+3*900,3)
 | |
|  FROM test.t2 WHERE a1=1;
 | |
|  SELECT a1,length(a2),substr(a2,480,2),length(a3),substr(a3,1+2*900,3)
 | |
|  FROM test.t2 where a1=2;
 | |
| 
 | |
|  
 | |
|  DROP TABLE test.t1, test.t2;
 | |
| 
 | |
| #### Insert, Update, Delete from NDB table with BLOB fields ####
 | |
| --echo *****
 | |
| --echo **** Insert, Update, Delete from NDB table with BLOB fields
 | |
| --echo *****
 | |
| 
 | |
| set @vc1 = repeat('a', 200);
 | |
| set @vc2 = repeat('b', 500);
 | |
| set @vc3 = repeat('c', 1000);
 | |
| set @vc4 = repeat('d', 4000);
 | |
| set @vc5 = repeat('d', 5000);
 | |
| 
 | |
| set @bb1 = repeat('1', 2000);
 | |
| set @bb2 = repeat('2', 5000);
 | |
| set @bb3 = repeat('3', 10000);
 | |
| set @bb4 = repeat('4', 40000);
 | |
| set @bb5 = repeat('5', 50000);
 | |
| 
 | |
| select length(@vc1),length(@vc2),length(@vc3),length(@vc4),length(@vc5) 
 | |
| from dual;
 | |
| select length(@bb1),length(@bb2),length(@bb3),length(@bb4),length(@bb5) 
 | |
| from dual;
 | |
| 
 | |
|  CREATE TABLE test.t1 (a1 int NOT NULL PRIMARY KEY, a2 VARCHAR(5000), a3 BLOB) 
 | |
|  TABLESPACE ts1 STORAGE DISK  ENGINE=NDB;
 | |
| # CREATE TABLE test.t2 (a1 int NOT NULL, a2 VARCHAR(5000), a3 BLOB) 
 | |
| # TABLESPACE ts2 STORAGE DISK  ENGINE=NDB;
 | |
|  
 | |
|  INSERT INTO test.t1 VALUES (1,@vc1,@bb1);
 | |
|  INSERT INTO test.t1 VALUES (2,@vc2,@bb2);
 | |
|  INSERT INTO test.t1 VALUES (3,@vc3,@bb3);
 | |
|  INSERT INTO test.t1 VALUES (4,@vc4,@bb4);
 | |
|  INSERT INTO test.t1 VALUES (5,@vc5,@bb5);
 | |
| 
 | |
|  UPDATE test.t1 SET a2=@vc5, a3=@bb5 WHERE a1=1;
 | |
|  SELECT a1,length(a2),substr(a2,4998,2),length(a3),substr(a3,49997,3)
 | |
|  FROM test.t1 WHERE a1=1;
 | |
| 
 | |
|  UPDATE test.t1 SET a2=@vc4, a3=@bb4 WHERE a1=2;
 | |
|  SELECT a1,length(a2),substr(a2,3998,2),length(a3),substr(a3,39997,3)
 | |
|  FROM test.t1 WHERE a1=2;
 | |
| 
 | |
|  UPDATE test.t1 SET a2=@vc2, a3=@bb2 WHERE a1=3;
 | |
|  SELECT a1,length(a2),substr(a2,498,2),length(a3),substr(a3,3997,3)
 | |
|  FROM test.t1 WHERE a1=3;
 | |
| 
 | |
|  UPDATE test.t1 SET a2=@vc3, a3=@bb3 WHERE a1=4;
 | |
|  SELECT a1,length(a2),substr(a2,998,2),length(a3),substr(a3,9997,3)
 | |
|  FROM test.t1 WHERE a1=4;
 | |
| 
 | |
|  UPDATE test.t1 SET a2=@vc1, a3=@bb1 WHERE a1=5;
 | |
|  SELECT a1,length(a2),substr(a2,198,2),length(a3),substr(a3,1997,3)
 | |
|  FROM test.t1 WHERE a1=5;
 | |
|  
 | |
|  DELETE FROM test.t1 where a1=5;
 | |
|  SELECT count(*) from test.t1; 
 | |
|  DELETE FROM test.t1 where a1=4;
 | |
|  SELECT count(*) from test.t1; 
 | |
|  DELETE FROM test.t1 where a1=3;
 | |
|  SELECT count(*) from test.t1; 
 | |
|  DELETE FROM test.t1 where a1=2;
 | |
|  SELECT count(*) from test.t1; 
 | |
|  DELETE FROM test.t1 where a1=1;
 | |
|  SELECT count(*) from test.t1; 
 | |
| 
 | |
|  DROP TABLE test.t1;
 | |
| 
 | |
| ##### Create Stored procedures that use disk based tables #####
 | |
| --echo *****
 | |
| --echo **** Create Stored procedures that use disk based tables
 | |
| --echo *****
 | |
| 
 | |
| delimiter //;
 | |
|  CREATE TABLE test.t1 (a1 int NOT NULL PRIMARY KEY, a2 VARCHAR(256), a3 BLOB)
 | |
|  TABLESPACE ts1 STORAGE DISK  ENGINE=NDB//
 | |
|  CREATE PROCEDURE test.sp1()
 | |
|  BEGIN
 | |
|  INSERT INTO test.t1 values (1,'111111','aaaaaaaa');
 | |
|  END//
 | |
| delimiter ;//
 | |
| 
 | |
|  CALL test.sp1();
 | |
|  SELECT * FROM test.t1;
 | |
| 
 | |
| delimiter //;
 | |
|  CREATE PROCEDURE test.sp2(n INT, vc VARCHAR(256), blb BLOB)
 | |
|  BEGIN
 | |
|  UPDATE test.t1 SET a2=vc, a3=blb where a1=n;
 | |
|  END//
 | |
| delimiter ;//
 | |
| 
 | |
|  CALL test.sp2(1,'222222','bbbbbbbb');
 | |
|  SELECT * FROM test.t1;
 | |
| 
 | |
|  DELETE FROM test.t1;
 | |
|  DROP PROCEDURE test.sp1;
 | |
|  DROP PROCEDURE test.sp2;
 | |
|  DROP TABLE test.t1;
 | |
| 
 | |
| 
 | |
| #### Create function that operate on disk based tables ####
 | |
| --echo *****
 | |
| --echo ***** Create function that operate on disk based tables
 | |
| --echo *****
 | |
| 
 | |
|  CREATE TABLE test.t1 (a1 int NOT NULL PRIMARY KEY, a2 VARCHAR(256), a3 BLOB)
 | |
|  TABLESPACE ts1 STORAGE DISK  ENGINE=NDB;
 | |
|  let $1=100;
 | |
|  disable_query_log;
 | |
|  while ($1)
 | |
|  {
 | |
|   eval insert into test.t1 values($1, "aaaaa$1", "bbbbb$1");
 | |
|   dec $1;
 | |
|  }
 | |
|  enable_query_log;
 | |
| 
 | |
|  delimiter //;
 | |
|  CREATE FUNCTION test.fn1(n INT) RETURNS INT
 | |
|  BEGIN
 | |
|  DECLARE v INT;
 | |
|  SELECT a1 INTO v FROM test.t1 WHERE a1=n;
 | |
|  RETURN v;
 | |
|  END//
 | |
|  delimiter ;//
 | |
| 
 | |
| delimiter //;
 | |
|  CREATE FUNCTION test.fn2(n INT, blb BLOB) RETURNS BLOB
 | |
|  BEGIN
 | |
|  DECLARE vv BLOB;
 | |
|  UPDATE test.t1 SET a3=blb where a1=n;
 | |
|  SELECT a3 INTO vv FROM test.t1 WHERE a1=n;
 | |
|  RETURN vv;
 | |
|  END//
 | |
|  delimiter ;//
 | |
| 
 | |
|  SELECT test.fn1(10) FROM DUAL;
 | |
|  SELECT test.fn2(50, 'new BLOB content') FROM DUAL;
 | |
| 
 | |
|  DELETE FROM test.t1;
 | |
|  DROP FUNCTION test.fn1;
 | |
|  DROP FUNCTION test.fn2;
 | |
|  DROP TABLE test.t1;
 | |
| 
 | |
| #### Create triggers that operate on disk based tables ####
 | |
| --echo *****
 | |
| --echo ***** Create triggers that operate on disk based tables
 | |
| --echo *****
 | |
| 
 | |
|  CREATE TABLE test.t1 (a1 int NOT NULL PRIMARY KEY, a2 VARCHAR(256), a3 BLOB)
 | |
|  TABLESPACE ts1 STORAGE DISK  ENGINE=NDB;
 | |
|  
 | |
|  delimiter //;
 | |
|  CREATE TRIGGER test.trg1 BEFORE INSERT ON test.t1 FOR EACH ROW 
 | |
|  BEGIN 
 | |
|   if isnull(new.a2) then
 | |
|     set new.a2:= 'trg1 works on a2 field';
 | |
|   end if;
 | |
|   if isnull(new.a3) then
 | |
|     set new.a3:= 'trg1 works on a3 field';
 | |
|   end if;
 | |
|  end//
 | |
|  insert into test.t1 (a1) values (1)//
 | |
|  insert into test.t1 (a1,a2) values (2, 'ccccccc')//
 | |
|  select * from test.t1 order by a1//
 | |
|  delimiter ;//
 | |
|  
 | |
|  DELETE FROM test.t1;
 | |
|  DROP TRIGGER test.trg1;
 | |
|  DROP TABLE test.t1;
 | |
| 
 | |
| #### Create, update views that operate on disk based tables ####
 | |
| --echo *****
 | |
| --echo ***** Create, update views that operate on disk based tables
 | |
| --echo *****
 | |
| 
 | |
| 
 | |
|  CREATE TABLE test.t1 (a1 int NOT NULL PRIMARY KEY, a2 VARCHAR(256), a3 BLOB)
 | |
|  TABLESPACE ts1 STORAGE DISK  ENGINE=NDB;
 | |
|  let $1=10;
 | |
|  disable_query_log;
 | |
|  while ($1)
 | |
|  {
 | |
|   eval insert into test.t1 values($1, "aaaaa$1", "bbbbb$1");
 | |
|   dec $1;
 | |
|  }
 | |
|  enable_query_log; 
 | |
|  CREATE VIEW test.v1 AS SELECT * FROM test.t1;
 | |
|  SELECT * FROM test.v1 order by a1;
 | |
|  CHECK TABLE test.v1, test.t1;
 | |
| 
 | |
|  UPDATE test.v1 SET a2='zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz' WHERE a1=5;
 | |
|  SELECT * FROM test.v1 order by a1;
 | |
| 
 | |
|  DROP VIEW test.v1;
 | |
|  DELETE FROM test.t1;
 | |
|  DROP TABLE test.t1;
 | |
| 
 | |
| #### Create and use disk based table that use auto inc ####
 | |
| --echo *****
 | |
| --echo ***** Create and use disk based table that use auto inc
 | |
| --echo *****
 | |
| 
 | |
|  CREATE TABLE test.t1 (a1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
 | |
|                        a2 VARCHAR(256), a3 BLOB) 
 | |
|                        TABLESPACE ts1 STORAGE DISK  ENGINE=NDB;
 | |
|  let $1=10;
 | |
|  disable_query_log;
 | |
|  while ($1)
 | |
|  {
 | |
|   eval insert into test.t1 values(NULL, "aaaaa$1", "bbbbb$1");
 | |
|   dec $1;
 | |
|  }
 | |
|  enable_query_log; 
 | |
|  SELECT * FROM test.t1 ORDER BY a1;
 | |
|  DELETE FROM test.t1;
 | |
|  DROP TABLE test.t1;
 | |
| 
 | |
| 
 | |
| #### Create test that use transaction (commit, rollback) ####
 | |
| --echo *****
 | |
| --echo ***** Create test that use transaction (commit, rollback)
 | |
| --echo *****
 | |
| 
 | |
|  SET AUTOCOMMIT=0;
 | |
|  CREATE TABLE test.t1 (a1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
 | |
|                        a2 VARCHAR(256), a3 BLOB) 
 | |
|                        TABLESPACE ts1 STORAGE DISK  ENGINE=NDB;
 | |
| 
 | |
|  INSERT INTO test.t1 VALUES(NULL, "aaaaa1", "bbbbb1");
 | |
|  COMMIT; 
 | |
|  SELECT * FROM test.t1 ORDER BY a1;
 | |
|  INSERT INTO test.t1 VALUES(NULL, "aaaaa2", "bbbbb2");
 | |
|  ROLLBACK; 
 | |
|  SELECT * FROM test.t1 ORDER BY a1;
 | |
| 
 | |
|  DELETE FROM test.t1;
 | |
|  DROP TABLE test.t1;
 | |
|  SET AUTOCOMMIT=1;
 | |
| 
 | |
| # Now do the same thing with START TRANSACTION without using AUTOCOMMIT.
 | |
| 
 | |
|  CREATE TABLE test.t1 (a1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
 | |
|                        a2 VARCHAR(256), a3 BLOB) 
 | |
|                        TABLESPACE ts1 STORAGE DISK  ENGINE=NDB;
 | |
| 
 | |
|  START TRANSACTION;
 | |
|  INSERT INTO test.t1 VALUES(NULL, "aaaaa1", "bbbbb1");
 | |
|  COMMIT;
 | |
|  SELECT * FROM test.t1 ORDER BY a1;
 | |
| 
 | |
|  START TRANSACTION;
 | |
|  INSERT INTO test.t1 VALUES(NULL, "aaaaa2", "bbbbb2");
 | |
|  ROLLBACK; 
 | |
|  SELECT * FROM test.t1 ORDER BY a1;
 | |
| 
 | |
|  DELETE FROM test.t1;
 | |
|  DROP TABLE test.t1;
 | |
| 
 | |
| #### Create test that uses locks ####
 | |
| --echo *****
 | |
| --echo ***** Create test that uses locks
 | |
| --echo *****
 | |
| 
 | |
|  connect (con1,localhost,root,,);
 | |
|  connect (con2,localhost,root,,);
 | |
| 
 | |
| # connection con1;
 | |
| --disable_warnings
 | |
|  drop table if exists test.t1;
 | |
|  CREATE TABLE test.t1 (a1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
 | |
|                        a2 VARCHAR(256), a3 BLOB) 
 | |
|                        TABLESPACE ts1 STORAGE DISK  ENGINE=NDB;
 | |
| --enable_warnings
 | |
| 
 | |
|  LOCK TABLES test.t1 write;
 | |
|  INSERT INTO test.t1 VALUES(NULL, "aaaaa1", "bbbbb1");
 | |
|  INSERT INTO test.t1 VALUES(NULL, "aaaaa2", "bbbbb2");
 | |
|  SELECT * FROM test.t1 ORDER BY a1;
 | |
|  
 | |
|  connection con2;
 | |
|  SELECT * FROM test.t1 ORDER BY a1;
 | |
|  INSERT INTO test.t1 VALUES(NULL, "aaaaa3", "bbbbb3");  
 | |
|  
 | |
|  connection con1;
 | |
|  UNLOCK TABLES;
 | |
| 
 | |
|  connection con2;
 | |
|  INSERT INTO test.t1 VALUES(NULL, "aaaaa3", "bbbbb3"); 
 | |
|  SELECT * FROM test.t1 ORDER BY a1;
 | |
|  DELETE FROM test.t1;
 | |
|  DROP TABLE test.t1;
 | |
| 
 | |
|  #connection defualt;
 | |
| 
 | |
| #### Create large disk base table, do random queries, check cache hits ####
 | |
| --echo *****
 | |
| --echo ***** Create large disk base table, do random queries, check cache hits
 | |
| --echo *****
 | |
| 
 | |
| set @vc1 = repeat('a', 200);
 | |
| SELECT @vc1 FROM DUAL; 
 | |
| set @vc2 = repeat('b', 500);
 | |
| set @vc3 = repeat('b', 998);
 | |
| 
 | |
| # x0 size 256
 | |
| set @x0 = '01234567012345670123456701234567';
 | |
| set @x0 = concat(@x0,@x0,@x0,@x0,@x0,@x0,@x0,@x0);
 | |
| 
 | |
| # b1 length 2000+256 (blob part aligned)
 | |
| set @b1 = 'b1';
 | |
| set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1);
 | |
| set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1);
 | |
| set @b1 = concat(@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1,@b1);
 | |
| set @b1 = concat(@b1,@x0);
 | |
| # d1 length 3000
 | |
| set @d1 = 'dd1';
 | |
| set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1);
 | |
| set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1);
 | |
| set @d1 = concat(@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1,@d1);
 | |
| 
 | |
| # b2 length 20000
 | |
| set @b2 = 'b2';
 | |
| set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
 | |
| set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
 | |
| set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
 | |
| set @b2 = concat(@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2,@b2);
 | |
| # d2 length 30000
 | |
| set @d2 = 'dd2';
 | |
| set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
 | |
| set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
 | |
| set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
 | |
| set @d2 = concat(@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2,@d2);
 | |
| 
 | |
| select length(@x0),length(@b1),length(@d1) from dual;
 | |
| select length(@x0),length(@b2),length(@d2) from dual;
 | |
| 
 | |
|  CREATE TABLE test.t1 (a1 int NOT NULL PRIMARY KEY, a2 VARCHAR(1000), a3 BLOB)
 | |
|  TABLESPACE ts1 STORAGE DISK  ENGINE=NDB;
 | |
|  
 | |
|  INSERT INTO test.t1 values(1,@vc1,@d1);
 | |
|  INSERT INTO test.t1 values(2,@vc2,@d2);
 | |
|  explain SELECT * from test.t1 WHERE a1 = 1;
 | |
| 
 | |
|  SELECT a1,length(a2),substr(a2,1+2*900,2),length(a3),substr(a3,1+3*900,3)
 | |
|  FROM test.t1 WHERE a1=1 ORDER BY a1;
 | |
|  SELECT a1,length(a2),substr(a2,1+2*9000,2),length(a3),substr(a3,1+3*9000,3)
 | |
|  FROM test.t1 where a1=2 ORDER BY a1;
 | |
| 
 | |
|  UPDATE test.t1 set a2=@vc2,a3=@d2 where a1=1;
 | |
|  UPDATE test.t1 set a2=@vc1,a3=@d1 where a1=2;
 | |
| 
 | |
|  SELECT a1,length(a2),substr(a2,1+2*9000,2),length(a3),substr(a3,1+3*9000,3)
 | |
|  FROM test.t1 where a1=1;
 | |
|  SELECT a1,length(a2),substr(a2,1+2*900,2),length(a3),substr(a3,1+3*900,3)
 | |
|  FROM test.t1 where a1=2;
 | |
| 
 | |
|  #SHOW VARIABLES LIKE 'have_query_cache';
 | |
|  #SHOW STATUS LIKE 'Qcache%';
 | |
| 
 | |
|  DELETE FROM test.t1;
 | |
|  DROP TABLE test.t1;
 | |
| 
 | |
| #### Create test that uses COUNT(), SUM(), MAX(), ####
 | |
| ##### MIN(), NOW(), USER(), TRUNCATE ####
 | |
| --echo *****
 | |
| --echo ***** Create test that uses COUNT(), SUM(), MAX(), MIN(), NOW(), 
 | |
| --echo ***** USER(), TRUNCATE
 | |
| --echo *****
 | |
| 
 | |
|  CREATE TABLE test.t1 (a1 int NOT NULL PRIMARY KEY, a2 VARCHAR(256),
 | |
|                        a3 BLOB, a4 DATE, a5 CHAR(250))
 | |
|  TABLESPACE ts1 STORAGE DISK  ENGINE=NDB;
 | |
|  let $1=100;
 | |
|  disable_query_log;
 | |
|  while ($1)
 | |
|  {
 | |
|   eval insert into test.t1 values($1, "aaaaaaaaaaaaaaaa$1", 
 | |
|             "bbbbbbbbbbbbbbbbbb$1", '2006-06-20' , USER());
 | |
|   dec $1;
 | |
|  }
 | |
|  enable_query_log;
 | |
| 
 | |
|  SELECT COUNT(*) from test.t1;
 | |
|  SELECT SUM(a1) from test.t1;
 | |
|  SELECT MIN(a1) from test.t1;
 | |
|  SELECT MAX(a1) from test.t1;
 | |
|  SELECT a5 from test.t1 where a1=50;
 | |
| 
 | |
| 
 | |
|  SELECT * from test.t1 order by a1;
 | |
| 
 | |
|  DROP TABLE test.t1;
 | |
| 
 | |
|  ALTER TABLESPACE ts1
 | |
|  DROP DATAFILE './table_space1/datafile.dat'
 | |
|  ENGINE=NDB;
 | |
|  DROP TABLESPACE ts1 ENGINE=NDB;
 | |
| 
 | |
|  ALTER TABLESPACE ts2
 | |
|  DROP DATAFILE './table_space2/datafile.dat'
 | |
|  ENGINE=NDB;
 | |
|  DROP TABLESPACE ts2 ENGINE=NDB;
 | |
| 
 | |
|  DROP LOGFILE GROUP lg
 | |
|  ENGINE=NDB;
 | |
| 
 | |
| 
 | |
| #End 5.1 test case
 | |
| 
 |