MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
digest_execution.inc
1 --echo ####################################
2 --echo # EXECUTION
3 --echo ####################################
4 
5 # -----------------------------------
6 # SQL Queries to test normalizations.
7 # -----------------------------------
8 SELECT 1 FROM t1;
9 SELECT 1 FROM `t1`;
10 SELECT 1,2 FROM t1;
11 SELECT 1, 2, 3, 4 FROM t1;
12 SELECT 1 FROM t2;
13 SELECT 1,2 FROM t2;
14 SELECT 1, 2, 3, 4 FROM t2;
15 
16 # (NUM) => (#)
17 INSERT INTO t1 VALUES (1);
18 INSERT INTO t2 VALUES (1);
19 
20 # (NUM,NUM) => (#,#)
21 INSERT INTO t3 VALUES (1, 2);
22 INSERT INTO t4 VALUES (1, 2);
23 # (NUM,NUM,NUM) => (#,#)
24 INSERT INTO t5 VALUES (1, 2, 3);
25 
26 # (NUM),(NUM) => (#),(#)
27 INSERT INTO t1 VALUES (1), (2), (3);
28 # (NUM),(NUM),(NUM) => (#),(#)
29 INSERT INTO t1 VALUES (1), (2), (3), (4);
30 
31 # (NUM,NUM),(NUM,NUM) => (#,#),(#,#)
32 INSERT INTO t3 VALUES (1, 2), (3, 4), (5, 6);
33 # (NUM,NUM,NUM),(NUM,NUM,NUM),(NUM,NUM,NUM) => (#,#),(#,#)
34 INSERT INTO t5 VALUES (1, 2, 3), (4, 5, 6), (7, 8, 9);
35 
36 # -----------------------------------------------------------------------
37 # Test case to handle NULL. If alone, not normalized otherwise normalized.
38 # -----------------------------------------------------------------------
39 INSERT INTO t1 VALUES (NULL);
40 INSERT INTO t3 VALUES (NULL,NULL);
41 INSERT INTO t3 VALUES (1,NULL);
42 INSERT INTO t3 VALUES (NULL,1);
43 INSERT INTO t6 VALUES (NULL, NULL, NULL, NULL);
44 INSERT INTO t6 VALUES (1, NULL, NULL, NULL);
45 INSERT INTO t6 VALUES (NULL, 2, NULL, NULL);
46 INSERT INTO t6 VALUES (1, 2, 3, NULL);
47 INSERT INTO t6 VALUES (1, 2, NULL, 4);
48 
49 # -----------------------------------------------------------------------
50 # Test case for handling spaces in statement.
51 # -----------------------------------------------------------------------
52 
53 SELECT 1 + 1;
54 
55 # -----------------------------------------------------------------------
56 # Test case for handling comments.
57 # -----------------------------------------------------------------------
58 
59 # comment starting with "--"
60 # TODO : SELECT 1; -- This comment continues to the end of line
61 # comment starting from "#"
62 SELECT 1; # This comment continues to the end of line
63 
64 # Inline comment
65 SELECT 1 /* This is an inline comment */ + 1;
66 
67 # Multiple line comments
68  SELECT 1+
69  /*
70  this is a
71  multiple-line comment
72  */
73  1;
74 
75 # -----------------------------------------------------------------------
76 # Tests to show how the digest behaves with tokens that can have multiple
77 # names (such as DATABASE = "DATABASE" or "SCHEMA", SUBSTRING, STD_SYM,
78 # VARIANCE_SYM ... )
79 # -----------------------------------------------------------------------
80 
81 --disable_warnings
82 CREATE SCHEMA statements_digest_temp;
83 DROP SCHEMA statements_digest_temp;
84 CREATE DATABASE statements_digest_temp;
85 DROP DATABASE statements_digest_temp;
86 # TODO : add more
87 --enable_warnings
88 
89 # -----------------------------------------------------------------------
90 # Test case to show stats for statements giving ERRORS/WARNINGS, are also
91 # captured.
92 # -----------------------------------------------------------------------
93 --ERROR ER_NO_SUCH_TABLE
94 SELECT 1 FROM no_such_table;
95 CREATE TABLE dup_table (c char(4));
96 --ERROR ER_TABLE_EXISTS_ERROR
97 CREATE TABLE dup_table (c char(4));
98 DROP TABLE dup_table;
99 INSERT INTO t11 VALUES("MySQL");
100 
101 # -----------------------------------------------------------------------
102 # Tests to show sub-statements for following statements are not
103 # instrumented.
104 # - Prepared Statements
105 # - Stored Procedures/Functions.
106 # - Table Triggers
107 # -----------------------------------------------------------------------
108 PREPARE stmt FROM "SELECT * FROM t12";
109 EXECUTE stmt;
110 EXECUTE stmt;
111 DEALLOCATE PREPARE stmt;
112 
113 DELIMITER //;
114 CREATE PROCEDURE p1() BEGIN SELECT * FROM t12; END//
115 DELIMITER ;//
116 CALL p1();
117 CALL p1();
118 DROP PROCEDURE p1;
119 
120 DELIMITER //;
121 CREATE FUNCTION `func`(a INT, b INT) RETURNS int(11) RETURN a+b //
122 DELIMITER ;//
123 select func(3,4);
124 select func(13,42);
125 DROP FUNCTION func;
126 
127 CREATE TRIGGER trg BEFORE INSERT ON t12 FOR EACH ROW SET @a:=1;
128 INSERT INTO t12 VALUES ("abc");
129 INSERT INTO t12 VALUES ("def");
130 DROP TRIGGER trg;