mirror of
				https://github.com/MariaDB/server.git
				synced 2025-10-30 04:26:45 +03:00 
			
		
		
		
	New test cases for generic apply status table rpl_ndb_dd_advance.test: Updated test case to not run sooo long show_binlog_using_logname.inc, tpcb_disk_data.inc: New support file rpl_ndb_dd_advance.result: Updated result tpcb.inc: New support file for Updated test case to not run sooo long mysql-test/t/rpl_ndb_dd_advance.test: Updated test case to not run sooo long mysql-test/include/tpcb.inc: New support file for Updated test case to not run sooo long mysql-test/r/rpl_ndb_dd_advance.result: Updated result mysql-test/t/rpl_ndb_mix_innodb.test: New test cases for generic apply status table mysql-test/t/rpl_ndb_stm_innodb.test: New test cases for generic apply status table mysql-test/extra/rpl_tests/rpl_ndb_apply_status.test: New test cases for generic apply status table mysql-test/t/rpl_ndb_stm_innodb-master.opt: New test cases for generic apply status table mysql-test/t/rpl_ndb_mix_innodb-master.opt: New test cases for generic apply status table mysql-test/include/tpcb_disk_data.inc: New support file mysql-test/include/show_binlog_using_logname.inc: New support file mysql-test/r/rpl_ndb_stm_innodb.result: New test cases for generic apply status table mysql-test/r/rpl_ndb_mix_innodb.result: New test cases for generic apply status table
		
			
				
	
	
		
			167 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			167 lines
		
	
	
		
			4.8 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
| ##################################################
 | |
| # Author: Jeb
 | |
| # Date:   2007/05
 | |
| # Purpose: To create a tpcb database using Disk Data, 
 | |
| #          tables and stored procedures to load the database
 | |
| #          and run transactions against the DB
 | |
| ##################################################
 | |
| --disable_warnings
 | |
| DROP DATABASE IF EXISTS tpcb;
 | |
| --enable_warnings
 | |
| CREATE DATABASE tpcb;
 | |
| 
 | |
| --echo
 | |
| eval CREATE TABLE tpcb.account
 | |
|                   (id INT, bid INT, balance DECIMAL(10,2),
 | |
|                    filler CHAR(255), PRIMARY KEY(id))
 | |
|                    TABLESPACE $table_space STORAGE DISK
 | |
|                    ENGINE=$engine_type;
 | |
| --echo
 | |
| eval CREATE TABLE tpcb.branch
 | |
|                   (bid INT, balance DECIMAL(10,2), filler VARCHAR(255),
 | |
|                    PRIMARY KEY(bid))TABLESPACE $table_space STORAGE DISK
 | |
|                    ENGINE=$engine_type;
 | |
| --echo
 | |
| eval CREATE TABLE tpcb.teller
 | |
|                   (tid INT, balance DECIMAL(10,2), filler VARCHAR(255),
 | |
|                    PRIMARY KEY(tid)) TABLESPACE $table_space STORAGE DISK
 | |
|                    ENGINE=$engine_type;
 | |
| 
 | |
| --echo
 | |
| eval CREATE TABLE tpcb.history
 | |
|                   (id MEDIUMINT NOT NULL AUTO_INCREMENT,aid INT,
 | |
|                    tid INT, bid INT,  amount DECIMAL(10,2),
 | |
|                    tdate DATETIME, teller CHAR(20), uuidf LONGBLOB,
 | |
|                    filler CHAR(80),PRIMARY KEY (id))
 | |
|                    TABLESPACE $table_space STORAGE DISK
 | |
|                    ENGINE=$engine_type;
 | |
| 
 | |
| --echo
 | |
| --echo --- Create stored procedures & functions ---
 | |
| --echo
 | |
| 
 | |
| --disable_query_log
 | |
| delimiter |;
 | |
| CREATE PROCEDURE tpcb.load()
 | |
| BEGIN
 | |
|   DECLARE acct INT DEFAULT 100;
 | |
|   DECLARE brch INT DEFAULT 10;
 | |
|   DECLARE tell INT DEFAULT 100;
 | |
|   DECLARE tmp INT DEFAULT 10;
 | |
|   WHILE brch > 0 DO
 | |
|     SET tmp = 100;
 | |
|     WHILE tmp > 0 DO
 | |
|      INSERT INTO tpcb.account VALUES (acct, brch, 0.0, "FRESH ACCOUNT");
 | |
|      SET acct = acct - 1;
 | |
|      SET tmp = tmp -1;
 | |
|     END WHILE;
 | |
|     INSERT INTO tpcb.branch VALUES (brch, 0.0, "FRESH BRANCH");
 | |
|     SET brch = brch - 1;
 | |
|   END WHILE;
 | |
|   WHILE tell > 0 DO
 | |
|    INSERT INTO tpcb.teller VALUES (tell, 0.0, "FRESH TELLER");
 | |
|    SET tell = tell - 1;
 | |
|   END WHILE;
 | |
| END|
 | |
| 
 | |
| CREATE FUNCTION tpcb.account_id () RETURNS INT
 | |
| BEGIN
 | |
|   DECLARE num INT;
 | |
|   DECLARE ran INT;
 | |
|   SELECT RAND() * 10 INTO ran;
 | |
|   IF (ran < 5)
 | |
|    THEN
 | |
|      SELECT RAND() * 10 INTO num;
 | |
|    ELSE
 | |
|      SELECT RAND() * 100 INTO num;
 | |
|    END IF;
 | |
|    IF (num < 1)
 | |
|     THEN
 | |
|      RETURN 1;
 | |
|    END IF;
 | |
|   RETURN  num;
 | |
| END|
 | |
| 
 | |
| CREATE FUNCTION tpcb.teller_id () RETURNS INT
 | |
| BEGIN
 | |
|   DECLARE num INT;
 | |
|   DECLARE ran INT;
 | |
|   SELECT RAND() * 10 INTO ran;
 | |
|   IF (ran < 5)
 | |
|    THEN
 | |
|      SELECT RAND() * 10 INTO num;
 | |
|    ELSE
 | |
|      SELECT RAND() * 100 INTO num;
 | |
|    END IF;
 | |
|    IF (num < 1)
 | |
|     THEN
 | |
|       RETURN 1;
 | |
|    END IF;
 | |
|    RETURN  num;
 | |
| END|
 | |
| 
 | |
| CREATE PROCEDURE tpcb.trans(in format varchar(3))
 | |
| BEGIN
 | |
|   DECLARE acct INT DEFAULT 0;
 | |
|   DECLARE brch INT DEFAULT 0;
 | |
|   DECLARE tell INT DEFAULT 0;
 | |
|   DECLARE bal  DECIMAL(10,2) DEFAULT 0.0;
 | |
|   DECLARE amount DECIMAL(10,2) DEFAULT 1.00;
 | |
|   DECLARE test INT DEFAULT 0;
 | |
|   DECLARE bbal DECIMAL(10,2) DEFAULT 0.0;
 | |
|   DECLARE tbal DECIMAL(10,2) DEFAULT 0.0;
 | |
|   DECLARE local_uuid VARCHAR(255);
 | |
|   DECLARE local_user VARCHAR(255);
 | |
|   DECLARE local_time TIMESTAMP;
 | |
| 
 | |
|   SELECT RAND() * 10 INTO test;
 | |
|   SELECT tpcb.account_id() INTO acct;
 | |
|   SELECT tpcb.teller_id() INTO tell;
 | |
| 
 | |
|   SELECT account.balance INTO bal FROM tpcb.account WHERE id = acct;
 | |
|   SELECT account.bid INTO brch FROM tpcb.account WHERE id = acct;
 | |
|   SELECT teller.balance INTO tbal FROM tpcb.teller WHERE tid = tell;
 | |
|   SELECT branch.balance INTO bbal FROM tpcb.branch WHERE bid = brch;
 | |
| 
 | |
|   IF (test < 5)
 | |
|    THEN
 | |
|      SET bal = bal + amount;
 | |
|      SET bbal = bbal + amount;
 | |
|      SET tbal = tbal + amount;
 | |
|      UPDATE tpcb.account SET balance = bal, filler = 'account updated'
 | |
|      WHERE id = acct;
 | |
|      UPDATE tpcb.branch SET balance = bbal, filler = 'branch updated'
 | |
|      WHERE bid = brch;
 | |
|      UPDATE tpcb.teller SET balance = tbal, filler = 'teller updated'
 | |
|      WHERE tid = tell;
 | |
|    ELSE
 | |
|      SET bal = bal - amount;
 | |
|      SET bbal = bbal - amount;
 | |
|      SET tbal = tbal - amount;
 | |
|      UPDATE tpcb.account SET balance = bal, filler = 'account updated'
 | |
|      WHERE id = acct;
 | |
|      UPDATE tpcb.branch SET balance = bbal, filler = 'branch updated'
 | |
|      WHERE bid = brch;
 | |
|      UPDATE tpcb.teller SET balance = tbal, filler = 'teller updated'
 | |
|      WHERE tid = tell;
 | |
|   END IF;
 | |
| 
 | |
|   IF (format = 'SBR')
 | |
|   THEN
 | |
|     SET local_uuid=UUID();
 | |
|     SET local_user=USER();
 | |
|     SET local_time= NOW();
 | |
|     INSERT INTO tpcb.history VALUES(NULL,acct,tell,brch,amount, local_time,local_user,
 | |
|                              local_uuid,'completed trans');
 | |
|   ELSE
 | |
|     INSERT INTO tpcb.history VALUES(NULL,acct,tell,brch,amount, NOW(), USER(),
 | |
|                              UUID(),'completed trans');
 | |
|   END IF;
 | |
| END|
 | |
| delimiter ;|
 | |
| --enable_query_log
 | |
| --echo
 | |
| --echo *** Stored Procedures Created ***
 | |
| --echo
 | |
| 
 |