forked from MariaDB/server
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test and result for insert...returning, alias, operator and virual co…
…l working
- Loading branch information
Showing
2 changed files
with
209 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,136 @@ | ||
drop table if exists t1; | ||
CREATE TABLE t1(id1 INT, id2 INT, val VARCHAR(1)); | ||
Table t1 created successfully. Fields: id1 INT, id2 INT, val VARCHAR(1); | ||
#Simple insert statement | ||
INSERT INTO t1 (id1, id2, val) VALUES (1, 2, 'a'); | ||
INSERT INTO t1 (id1, id2, val) VALUES (2, 3, 'b') RETURNING *; | ||
id1 id2 val | ||
2 3 b | ||
INSERT INTO t1 (id1, id2, val) VALUES (3, 4, 'c') RETURNING id1, val; | ||
id1 val | ||
3 c | ||
INSERT INTO t1 (id1, id2, val) VALUES (4, 5, 'd') RETURNING id1 AS id; | ||
id | ||
4 | ||
INSERT INTO t1 (id1, id2, val) VALUES (5, 6, 'e') RETURNING id1+id2 AS total; | ||
total | ||
11 | ||
INSERT INTO t1 (id1, id2, val) VALUES (6, 7, 'f') RETURNING id1 & id2; | ||
id1 & id2 | ||
6 | ||
INSERT INTO t1 (id1, id2, val) VALUES (7, 8, 'g') RETURNING id1 || id2; | ||
id1 || id2 | ||
1 | ||
SELECT * FROM t1; | ||
id1 id2 val | ||
1 2 a | ||
2 3 b | ||
3 4 c | ||
4 5 d | ||
5 6 e | ||
6 7 f | ||
7 8 g | ||
TRUNCATE TABLE t1; | ||
SELECT * FROM t1; | ||
id1 id2 val | ||
#multiple values in one insert statement | ||
INSERT INTO t1 VALUES (1, 2, 'a'),(2, 3, 'b'); | ||
INSERT INTO t1 VALUES (3, 4, 'c'),(4, 5, 'd') RETURNING *; | ||
id1 id2 val | ||
3 4 c | ||
4 5 d | ||
INSERT INTO t1 VALUES (5, 6, 'e'),(6, 7, 'f') RETURNING id2, val; | ||
id2 val | ||
6 e | ||
7 f | ||
INSERT INTO t1 VALUES (7, 8, 'g'),(8, 9, 'h') RETURNING id2 AS id; | ||
id | ||
8 | ||
9 | ||
INSERT INTO t1 VALUES (9, 10, 'i'),(10, 11, 'j') RETURNING id2+id1 as total; | ||
total | ||
19 | ||
21 | ||
INSERT INTO t1 VALUES (11, 12, 'k'),(12, 13, 'l') RETURNING id2 & id1; | ||
id2 & id1 | ||
8 | ||
12 | ||
INSERT INTO t1 VALUES (5, 6, 'e'),(2, 3, 'f') RETURNING id2 || id1; | ||
id2 || id1 | ||
1 | ||
1 | ||
SELECT * FROM t1; | ||
id1 id2 val | ||
1 2 a | ||
2 3 b | ||
3 4 c | ||
4 5 d | ||
5 6 e | ||
6 7 f | ||
7 8 g | ||
8 9 h | ||
9 10 i | ||
10 11 j | ||
11 12 k | ||
12 13 l | ||
5 6 e | ||
2 3 f | ||
TRUNCATE TABLE t1; | ||
# INSERT...ON DULPICATE KEY UPDATE | ||
CREATE TABLE ins_duplicate (id1 INT PRIMARY KEY, id2 INT, val VARCHAR(1)); | ||
INSERT INTO ins_duplicate VALUES (1,2,'a'); | ||
INSERT INTO ins_duplicate VALUES (2,3,'b') ON DUPLICATE KEY UPDATE val='b' RETURNING id1,val; | ||
id1 val | ||
2 b | ||
INSERT INTO ins_duplicate VALUES (2,4,'b') ON DUPLICATE KEY UPDATE val='c' RETURNING *; | ||
id1 id2 val | ||
2 4 b | ||
INSERT INTO ins_duplicate VALUES (2,5,'b') ON DUPLICATE KEY UPDATE val='d' RETURNING id1+id2 AS total; | ||
total | ||
7 | ||
INSERT INTO ins_duplicate VALUES (2,6,'b') ON DUPLICATE KEY UPDATE val='e' RETURNING id1 || id2; | ||
id1 || id2 | ||
1 | ||
INSERT INTO ins_duplicate VALUES (2,7,'b') ON DUPLICATE KEY UPDATE val='f' RETURNING id1 & id2; | ||
id1 & id2 | ||
2 | ||
INSERT INTO ins_duplicate VALUES (2,8,'b') ON DUPLICATE KEY UPDATE val='g' RETURNING id1 AS id; | ||
id | ||
2 | ||
SELECT * FROM ins_duplicate; | ||
id1 id2 val | ||
1 2 a | ||
2 3 g | ||
# INSERT...SET | ||
INSERT INTO t1 SET id1=1, id2=2, val='a'; | ||
INSERT INTO t1 SET id1=2, id2=3, val='b' RETURNING *; | ||
id1 id2 val | ||
2 3 b | ||
INSERT INTO t1 SET id1=3, id2=4, val='c' RETURNING val; | ||
val | ||
c | ||
INSERT INTO t1 SET id1=4, id2=5, val='d' RETURNING id1+id2 AS total; | ||
total | ||
9 | ||
INSERT INTO t1 SET id1=5, id2=6, val='e' RETURNING id1 & id2; | ||
id1 & id2 | ||
4 | ||
INSERT INTO t1 SET id1=6, id2=7, val='f' RETURNING id1 || id2; | ||
id1 || id2 | ||
1 | ||
INSERT INTO t1 SET id1=7, id2=8, val='g' RETURNING val as letter; | ||
letter | ||
g | ||
SELECT * FROM t1; | ||
id1 id2 val | ||
1 2 a | ||
2 3 b | ||
3 4 c | ||
4 5 d | ||
5 6 e | ||
6 7 f | ||
7 8 g | ||
Droping t1 and ins_duplicate | ||
DROP TABLE t1; | ||
DROP TABLE ins_duplicate; | ||
#End of test case |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
# | ||
# Test for INSERT...RETURNING | ||
# | ||
|
||
--disable_warnings | ||
drop table if exists t1; | ||
--enable_warnings | ||
|
||
CREATE TABLE t1(id1 INT, id2 INT, val VARCHAR(1)); | ||
--echo Table t1 created successfully. Fields: id1 INT, id2 INT, val VARCHAR(1); | ||
|
||
# | ||
#Simple insert statement | ||
# | ||
--echo #Simple insert statement | ||
INSERT INTO t1 (id1, id2, val) VALUES (1, 2, 'a'); | ||
INSERT INTO t1 (id1, id2, val) VALUES (2, 3, 'b') RETURNING *; | ||
INSERT INTO t1 (id1, id2, val) VALUES (3, 4, 'c') RETURNING id1, val; | ||
INSERT INTO t1 (id1, id2, val) VALUES (4, 5, 'd') RETURNING id1 AS id; | ||
INSERT INTO t1 (id1, id2, val) VALUES (5, 6, 'e') RETURNING id1+id2 AS total; | ||
INSERT INTO t1 (id1, id2, val) VALUES (6, 7, 'f') RETURNING id1 & id2; | ||
INSERT INTO t1 (id1, id2, val) VALUES (7, 8, 'g') RETURNING id1 || id2; | ||
SELECT * FROM t1; | ||
TRUNCATE TABLE t1; | ||
SELECT * FROM t1; | ||
|
||
# | ||
#multiple values in one insert statement | ||
# | ||
--echo #multiple values in one insert statement | ||
INSERT INTO t1 VALUES (1, 2, 'a'),(2, 3, 'b'); | ||
INSERT INTO t1 VALUES (3, 4, 'c'),(4, 5, 'd') RETURNING *; | ||
INSERT INTO t1 VALUES (5, 6, 'e'),(6, 7, 'f') RETURNING id2, val; | ||
INSERT INTO t1 VALUES (7, 8, 'g'),(8, 9, 'h') RETURNING id2 AS id; | ||
INSERT INTO t1 VALUES (9, 10, 'i'),(10, 11, 'j') RETURNING id2+id1 as total; | ||
INSERT INTO t1 VALUES (11, 12, 'k'),(12, 13, 'l') RETURNING id2 & id1; | ||
INSERT INTO t1 VALUES (5, 6, 'e'),(2, 3, 'f') RETURNING id2 || id1; | ||
SELECT * FROM t1; | ||
TRUNCATE TABLE t1; | ||
# | ||
#INSERT...ON DULPICATE KEY UPDATE | ||
# | ||
--echo # INSERT...ON DULPICATE KEY UPDATE | ||
CREATE TABLE ins_duplicate (id1 INT PRIMARY KEY, id2 INT, val VARCHAR(1)); | ||
INSERT INTO ins_duplicate VALUES (1,2,'a'); | ||
INSERT INTO ins_duplicate VALUES (2,3,'b') ON DUPLICATE KEY UPDATE val='b' RETURNING id1,val; | ||
INSERT INTO ins_duplicate VALUES (2,4,'b') ON DUPLICATE KEY UPDATE val='c' RETURNING *; | ||
INSERT INTO ins_duplicate VALUES (2,5,'b') ON DUPLICATE KEY UPDATE val='d' RETURNING id1+id2 AS total; | ||
INSERT INTO ins_duplicate VALUES (2,6,'b') ON DUPLICATE KEY UPDATE val='e' RETURNING id1 || id2; | ||
INSERT INTO ins_duplicate VALUES (2,7,'b') ON DUPLICATE KEY UPDATE val='f' RETURNING id1 & id2; | ||
INSERT INTO ins_duplicate VALUES (2,8,'b') ON DUPLICATE KEY UPDATE val='g' RETURNING id1 AS id; | ||
SELECT * FROM ins_duplicate; | ||
# | ||
# INSERT...SET | ||
# | ||
|
||
--echo # INSERT...SET | ||
INSERT INTO t1 SET id1=1, id2=2, val='a'; | ||
INSERT INTO t1 SET id1=2, id2=3, val='b' RETURNING *; | ||
INSERT INTO t1 SET id1=3, id2=4, val='c' RETURNING val; | ||
INSERT INTO t1 SET id1=4, id2=5, val='d' RETURNING id1+id2 AS total; | ||
INSERT INTO t1 SET id1=5, id2=6, val='e' RETURNING id1 & id2; | ||
INSERT INTO t1 SET id1=6, id2=7, val='f' RETURNING id1 || id2; | ||
INSERT INTO t1 SET id1=7, id2=8, val='g' RETURNING val as letter; | ||
SELECT * FROM t1; | ||
|
||
--echo Droping t1 and ins_duplicate | ||
DROP TABLE t1; | ||
DROP TABLE ins_duplicate; | ||
|
||
# | ||
--echo #End of test case | ||
# |