mirror of
https://github.com/MariaDB/server.git
synced 2025-02-13 17:05:35 +01:00
![Elena Stepanova](/assets/img/avatar_default.png)
Result files updated according to bugfix for MySQL#55843 (Handled condition appears as not handled)
2942 lines
58 KiB
Text
2942 lines
58 KiB
Text
DROP TABLE IF EXISTS t1,t2,t3;
|
|
DROP PROCEDURE IF EXISTS sp1;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# CONTAINS SQL ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# NO SQL ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# READS SQL DATA ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# MODIFIES SQL DATA ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# CONTAINS SQL COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# NO SQL COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# READS SQL DATA COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# MODIFIES SQL DATA COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# CONTAINS SQL ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# NO SQL ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# READS SQL DATA ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# MODIFIES SQL DATA ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# CONTAINS SQL COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# NO SQL COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# READS SQL DATA COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# MODIFIES SQL DATA COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# SQL SECURITY INVOKER ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# CONTAINS SQL SQL SECURITY INVOKER ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# NO SQL SQL SECURITY INVOKER ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# READS SQL DATA SQL SECURITY INVOKER ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# MODIFIES SQL DATA SQL SECURITY INVOKER ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# SQL SECURITY INVOKER COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# CONTAINS SQL SQL SECURITY INVOKER COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# NO SQL SQL SECURITY INVOKER COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# READS SQL DATA SQL SECURITY INVOKER COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# MODIFIES SQL DATA SQL SECURITY INVOKER COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# SQL SECURITY INVOKER ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# CONTAINS SQL SQL SECURITY INVOKER ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# NO SQL SQL SECURITY INVOKER ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# READS SQL DATA SQL SECURITY INVOKER ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# MODIFIES SQL DATA SQL SECURITY INVOKER ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# SQL SECURITY INVOKER COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# CONTAINS SQL SQL SECURITY INVOKER COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# NO SQL SQL SECURITY INVOKER COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# READS SQL DATA SQL SECURITY INVOKER COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# MODIFIES SQL DATA SQL SECURITY INVOKER COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# SQL SECURITY DEFINER ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# CONTAINS SQL SQL SECURITY DEFINER ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# NO SQL SQL SECURITY DEFINER ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# READS SQL DATA SQL SECURITY DEFINER ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# MODIFIES SQL DATA SQL SECURITY DEFINER ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# SQL SECURITY DEFINER COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# CONTAINS SQL SQL SECURITY DEFINER COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# NO SQL SQL SECURITY DEFINER COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# READS SQL DATA SQL SECURITY DEFINER COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 #DET# MODIFIES SQL DATA SQL SECURITY DEFINER COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# SQL SECURITY DEFINER ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# CONTAINS SQL SQL SECURITY DEFINER ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# NO SQL SQL SECURITY DEFINER ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# READS SQL DATA SQL SECURITY DEFINER ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# MODIFIES SQL DATA SQL SECURITY DEFINER ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# SQL SECURITY DEFINER COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# CONTAINS SQL SQL SECURITY DEFINER COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# NO SQL SQL SECURITY DEFINER COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# READS SQL DATA SQL SECURITY DEFINER COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|
|
CREATE TABLE t1 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
CREATE TABLE t2 (i INTEGER NULL);
|
|
CREATE TABLE t3 (id INTEGER NOT NULL PRIMARY KEY, data INTEGER NULL);
|
|
INSERT INTO t1 VALUES(1,1),(2,1),(3,4),(4,5);
|
|
INSERT INTO t2 VALUES(1),(2),(3);
|
|
CREATE PROCEDURE sp1()
|
|
BEGIN
|
|
DECLARE done INT DEFAULT 0;
|
|
DECLARE a CHAR(16);
|
|
DECLARE b,c INT;
|
|
DECLARE cur1 CURSOR FOR SELECT id,data FROM t1;
|
|
DECLARE cur2 CURSOR FOR SELECT i FROM t2;
|
|
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
|
OPEN cur1;
|
|
OPEN cur2;
|
|
REPEAT
|
|
FETCH cur1 INTO a, b;
|
|
FETCH cur2 INTO c;
|
|
IF NOT done THEN
|
|
IF b < c THEN
|
|
INSERT INTO t3 VALUES (a,b);
|
|
ELSE
|
|
INSERT INTO t3 VALUES (a,c);
|
|
END IF;
|
|
END IF;
|
|
UNTIL done END REPEAT;
|
|
CLOSE cur1;
|
|
CLOSE cur2;
|
|
END//
|
|
ALTER PROCEDURE sp1 LANGUAGE SQL #DET# MODIFIES SQL DATA SQL SECURITY DEFINER COMMENT 'comment' ;
|
|
CALL sp1();
|
|
SELECT * FROM t1 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 4
|
|
4 5
|
|
SELECT * FROM t2 ORDER BY i;
|
|
i
|
|
1
|
|
2
|
|
3
|
|
SELECT * FROM t3 ORDER BY id;
|
|
id data
|
|
1 1
|
|
2 1
|
|
3 3
|
|
DROP PROCEDURE sp1;
|
|
DROP TABLE t1,t2,t3;
|