1SET @start_global_value = @@global.max_error_count;
2SELECT @start_global_value;
3@start_global_value
464
5SET @start_session_value = @@session.max_error_count;
6SELECT @start_session_value;
7@start_session_value
864
9drop database if exists demo;
10create database demo;
11use demo;
12create procedure proc_1()
13begin
14declare exit handler for sqlexception
15resignal sqlstate '45000' set message_text='Oops in proc_1';
16call proc_2();
17end
18$$
19create procedure proc_2()
20begin
21declare exit handler for sqlexception
22resignal sqlstate '45000' set message_text='Oops in proc_2';
23call proc_3();
24end
25$$
26create procedure proc_3()
27begin
28declare exit handler for sqlexception
29resignal sqlstate '45000' set message_text='Oops in proc_3';
30call proc_4();
31end
32$$
33create procedure proc_4()
34begin
35declare exit handler for sqlexception
36resignal sqlstate '45000' set message_text='Oops in proc_4';
37call proc_5();
38end
39$$
40create procedure proc_5()
41begin
42declare exit handler for sqlexception
43resignal sqlstate '45000' set message_text='Oops in proc_5';
44call proc_6();
45end
46$$
47create procedure proc_6()
48begin
49declare exit handler for sqlexception
50resignal sqlstate '45000' set message_text='Oops in proc_6';
51call proc_7();
52end
53$$
54create procedure proc_7()
55begin
56declare exit handler for sqlexception
57resignal sqlstate '45000' set message_text='Oops in proc_7';
58call proc_8();
59end
60$$
61create procedure proc_8()
62begin
63declare exit handler for sqlexception
64resignal sqlstate '45000' set message_text='Oops in proc_8';
65call proc_9();
66end
67$$
68create procedure proc_9()
69begin
70declare exit handler for sqlexception
71resignal sqlstate '45000' set message_text='Oops in proc_9';
72## Do something that fails, to see how errors are reported
73drop table oops_it_is_not_here;
74end
75$$
76call proc_1();
77ERROR 45000: Oops in proc_1
78show warnings;
79Level	Code	Message
80Error	1051	Unknown table 'demo.oops_it_is_not_here'
81Error	1644	Oops in proc_9
82Note	4094	At line 4 in demo.proc_9
83Error	1644	Oops in proc_8
84Note	4094	At line 4 in demo.proc_8
85Error	1644	Oops in proc_7
86Note	4094	At line 4 in demo.proc_7
87Error	1644	Oops in proc_6
88Note	4094	At line 4 in demo.proc_6
89Error	1644	Oops in proc_5
90Note	4094	At line 4 in demo.proc_5
91Error	1644	Oops in proc_4
92Note	4094	At line 4 in demo.proc_4
93Error	1644	Oops in proc_3
94Note	4094	At line 4 in demo.proc_3
95Error	1644	Oops in proc_2
96Note	4094	At line 4 in demo.proc_2
97Error	1644	Oops in proc_1
98Note	4094	At line 4 in demo.proc_1
99SET @@session.max_error_count = 5;
100SELECT @@session.max_error_count;
101@@session.max_error_count
1025
103call proc_1();
104ERROR 45000: Oops in proc_1
105show warnings;
106Level	Code	Message
107Note	4094	At line 4 in demo.proc_3
108Error	1644	Oops in proc_2
109Note	4094	At line 4 in demo.proc_2
110Error	1644	Oops in proc_1
111Note	4094	At line 4 in demo.proc_1
112SET @@session.max_error_count = 7;
113SELECT @@session.max_error_count;
114@@session.max_error_count
1157
116call proc_1();
117ERROR 45000: Oops in proc_1
118show warnings;
119Level	Code	Message
120Note	4094	At line 4 in demo.proc_4
121Error	1644	Oops in proc_3
122Note	4094	At line 4 in demo.proc_3
123Error	1644	Oops in proc_2
124Note	4094	At line 4 in demo.proc_2
125Error	1644	Oops in proc_1
126Note	4094	At line 4 in demo.proc_1
127SET @@session.max_error_count = 9;
128SELECT @@session.max_error_count;
129@@session.max_error_count
1309
131call proc_1();
132ERROR 45000: Oops in proc_1
133show warnings;
134Level	Code	Message
135Note	4094	At line 4 in demo.proc_5
136Error	1644	Oops in proc_4
137Note	4094	At line 4 in demo.proc_4
138Error	1644	Oops in proc_3
139Note	4094	At line 4 in demo.proc_3
140Error	1644	Oops in proc_2
141Note	4094	At line 4 in demo.proc_2
142Error	1644	Oops in proc_1
143Note	4094	At line 4 in demo.proc_1
144drop database demo;
145SET @@global.max_error_count = @start_global_value;
146SELECT @@global.max_error_count;
147@@global.max_error_count
14864
149SET @@session.max_error_count = @start_session_value;
150SELECT @@session.max_error_count;
151@@session.max_error_count
15264
153