Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
d7e3120d
Commit
d7e3120d
authored
May 22, 2017
by
halfspawn
Committed by
Alexander Barkov
May 29, 2017
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
SP stack trace
parent
8b68263a
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
84 additions
and
22 deletions
+84
-22
mysql-test/r/commit_1innodb.result
mysql-test/r/commit_1innodb.result
+1
-0
mysql-test/r/get_diagnostics.result
mysql-test/r/get_diagnostics.result
+5
-1
mysql-test/r/signal.result
mysql-test/r/signal.result
+17
-0
mysql-test/r/signal_demo3.result
mysql-test/r/signal_demo3.result
+21
-12
mysql-test/r/sp-error.result
mysql-test/r/sp-error.result
+2
-0
mysql-test/r/sp.result
mysql-test/r/sp.result
+1
-0
mysql-test/r/warnings.result
mysql-test/r/warnings.result
+1
-0
mysql-test/suite/rpl/r/rpl_slave_grp_exec.result
mysql-test/suite/rpl/r/rpl_slave_grp_exec.result
+1
-0
mysql-test/suite/rpl/r/rpl_sp.result
mysql-test/suite/rpl/r/rpl_sp.result
+2
-0
mysql-test/suite/rpl/t/rpl_slave_grp_exec.test
mysql-test/suite/rpl/t/rpl_slave_grp_exec.test
+1
-0
mysql-test/t/get_diagnostics.test
mysql-test/t/get_diagnostics.test
+1
-0
sql/share/errmsg-utf8.txt
sql/share/errmsg-utf8.txt
+2
-0
sql/sp_head.cc
sql/sp_head.cc
+9
-2
sql/sp_head.h
sql/sp_head.h
+1
-0
sql/sql_parse.cc
sql/sql_parse.cc
+9
-3
sql/sql_signal.cc
sql/sql_signal.cc
+10
-4
No files found.
mysql-test/r/commit_1innodb.result
View file @
d7e3120d
...
...
@@ -230,6 +230,7 @@ insert into t2 (a) values (1023);
do (f2(23));
Warnings:
Error 1062 Duplicate entry '23' for key 'a'
Note 4070 At line 4 in test.f2
select * from t2;
a
1023
...
...
mysql-test/r/get_diagnostics.result
View file @
d7e3120d
...
...
@@ -587,6 +587,10 @@ DROP PROCEDURE p1;
# The same statement information item can be used multiple times.
SHOW WARNINGS;
Level Code Message
Error 54321 MESSAGE_TEXT text
Note 4070 At line 16 in test.p1
CREATE PROCEDURE p1()
BEGIN
DECLARE var INT;
...
...
@@ -595,7 +599,7 @@ SELECT var, @var;
END|
CALL p1();
var @var
1 1
2 2
DROP PROCEDURE p1;
# Setting TABLE_NAME is currently not implemented.
...
...
mysql-test/r/signal.result
View file @
d7e3120d
...
...
@@ -1715,6 +1715,7 @@ show warnings $$
Level Code Message
Warning 1012 Raising a warning
Error 5555 RESIGNAL to not found
Note 4070 At line 9 in test.test_resignal
drop procedure test_resignal $$
create procedure test_resignal()
begin
...
...
@@ -1739,6 +1740,7 @@ show warnings $$
Level Code Message
Warning 1012 Raising a warning
Error 5555 RESIGNAL to error
Note 4070 At line 9 in test.test_resignal
drop procedure test_resignal $$
create procedure test_resignal()
begin
...
...
@@ -1787,6 +1789,7 @@ show warnings $$
Level Code Message
Error 1012 Raising a not found
Error 5555 RESIGNAL to not found
Note 4070 At line 9 in test.test_resignal
drop procedure test_resignal $$
create procedure test_resignal()
begin
...
...
@@ -1811,6 +1814,7 @@ show warnings $$
Level Code Message
Error 1012 Raising a not found
Error 5555 RESIGNAL to error
Note 4070 At line 9 in test.test_resignal
drop procedure test_resignal $$
create procedure test_resignal()
begin
...
...
@@ -1859,6 +1863,7 @@ show warnings $$
Level Code Message
Error 1012 Raising an error
Error 5555 RESIGNAL to not found
Note 4070 At line 9 in test.test_resignal
drop procedure test_resignal $$
create procedure test_resignal()
begin
...
...
@@ -1883,6 +1888,7 @@ show warnings $$
Level Code Message
Error 1012 Raising an error
Error 5555 RESIGNAL to error
Note 4070 At line 9 in test.test_resignal
drop procedure test_resignal $$
create procedure test_resignal()
begin
...
...
@@ -1925,6 +1931,7 @@ show warnings $$
Level Code Message
Warning 1264 Out of range value for column 'a' at row 1
Error 5555 RESIGNAL to a not found
Note 4070 At line 8 in test.test_resignal
drop procedure test_resignal $$
create procedure test_resignal()
begin
...
...
@@ -1946,6 +1953,7 @@ show warnings $$
Level Code Message
Warning 1264 Out of range value for column 'a' at row 1
Error 5555 RESIGNAL to an error
Note 4070 At line 8 in test.test_resignal
drop procedure test_resignal $$
create procedure test_resignal()
begin
...
...
@@ -1996,6 +2004,7 @@ show warnings $$
Level Code Message
Error 1329 No data - zero rows fetched, selected, or processed
Error 5555 RESIGNAL to a not found
Note 4070 At line 10 in test.test_resignal
drop procedure test_resignal $$
create procedure test_resignal()
begin
...
...
@@ -2021,6 +2030,7 @@ show warnings $$
Level Code Message
Error 1329 No data - zero rows fetched, selected, or processed
Error 5555 RESIGNAL to an error
Note 4070 At line 10 in test.test_resignal
drop procedure test_resignal $$
create procedure test_resignal()
begin
...
...
@@ -2063,6 +2073,7 @@ show warnings $$
Level Code Message
Error 1051 Unknown table 'test.no_such_table'
Error 5555 RESIGNAL to a not found
Note 4070 At line 8 in test.test_resignal
drop procedure test_resignal $$
create procedure test_resignal()
begin
...
...
@@ -2084,6 +2095,7 @@ show warnings $$
Level Code Message
Error 1051 Unknown table 'test.no_such_table'
Error 5555 RESIGNAL to an error
Note 4070 At line 8 in test.test_resignal
drop procedure test_resignal $$
#
# More complex cases
...
...
@@ -2130,6 +2142,7 @@ ERROR 42000: Hi, I am a useless error message
show warnings $$
Level Code Message
Error 9999 Hi, I am a useless error message
Note 4070 At line 7 in test.peter_p2
drop procedure peter_p1 $$
drop procedure peter_p2 $$
CREATE PROCEDURE peter_p1 ()
...
...
@@ -2185,13 +2198,16 @@ Level Code Message
Error 1231 Variable 'sql_mode' can't be set to the value of 'NULL'
Error 1232 Variable 'sql_mode' can't be set to the value of 'NULL'
Error 9999 Variable 'sql_mode' can't be set to the value of 'NULL'
Note 4070 At line 8 in test.peter_p1
ERROR 42000: Hi, I am a useless error message
show warnings $$
Level Code Message
Error 1231 Variable 'sql_mode' can't be set to the value of 'NULL'
Error 1232 Variable 'sql_mode' can't be set to the value of 'NULL'
Error 9999 Variable 'sql_mode' can't be set to the value of 'NULL'
Note 4070 At line 8 in test.peter_p1
Error 9999 Hi, I am a useless error message
Note 4070 At line 10 in test.peter_p2
drop procedure peter_p1 $$
drop procedure peter_p2 $$
drop procedure if exists peter_p3 $$
...
...
@@ -2209,6 +2225,7 @@ show warnings $$
Level Code Message
Error 1 Original
Error 2 Original
Note 4070 At line 4 in test.peter_p3
drop procedure peter_p3 $$
drop table t_warn;
drop table t_cursor;
...
...
mysql-test/r/signal_demo3.result
View file @
d7e3120d
...
...
@@ -79,14 +79,23 @@ show warnings;
Level Code Message
Error 1051 Unknown table 'demo.oops_it_is_not_here'
Error 1644 Oops in proc_9
Note 4070 At line 4 in demo.proc_9
Error 1644 Oops in proc_8
Note 4070 At line 4 in demo.proc_8
Error 1644 Oops in proc_7
Note 4070 At line 4 in demo.proc_7
Error 1644 Oops in proc_6
Note 4070 At line 4 in demo.proc_6
Error 1644 Oops in proc_5
Note 4070 At line 4 in demo.proc_5
Error 1644 Oops in proc_4
Note 4070 At line 4 in demo.proc_4
Error 1644 Oops in proc_3
Note 4070 At line 4 in demo.proc_3
Error 1644 Oops in proc_2
Note 4070 At line 4 in demo.proc_2
Error 1644 Oops in proc_1
Note 4070 At line 4 in demo.proc_1
SET @@session.max_error_count = 5;
SELECT @@session.max_error_count;
@@session.max_error_count
...
...
@@ -95,11 +104,11 @@ call proc_1();
ERROR 45000: Oops in proc_1
show warnings;
Level Code Message
Error 1644 Oops in proc_5
Error 1644 Oops in proc_4
Error 1644 Oops in proc_3
Note 4070 At line 4 in demo.proc_3
Error 1644 Oops in proc_2
Note 4070 At line 4 in demo.proc_2
Error 1644 Oops in proc_1
Note 4070 At line 4 in demo.proc_1
SET @@session.max_error_count = 7;
SELECT @@session.max_error_count;
@@session.max_error_count
...
...
@@ -108,13 +117,13 @@ call proc_1();
ERROR 45000: Oops in proc_1
show warnings;
Level Code Message
Error 1644 Oops in proc_7
Error 1644 Oops in proc_6
Error 1644 Oops in proc_5
Error 1644 Oops in proc_4
Note 4070 At line 4 in demo.proc_4
Error 1644 Oops in proc_3
Note 4070 At line 4 in demo.proc_3
Error 1644 Oops in proc_2
Note 4070 At line 4 in demo.proc_2
Error 1644 Oops in proc_1
Note 4070 At line 4 in demo.proc_1
SET @@session.max_error_count = 9;
SELECT @@session.max_error_count;
@@session.max_error_count
...
...
@@ -123,15 +132,15 @@ call proc_1();
ERROR 45000: Oops in proc_1
show warnings;
Level Code Message
Error 1644 Oops in proc_9
Error 1644 Oops in proc_8
Error 1644 Oops in proc_7
Error 1644 Oops in proc_6
Error 1644 Oops in proc_5
Note 4070 At line 4 in demo.proc_5
Error 1644 Oops in proc_4
Note 4070 At line 4 in demo.proc_4
Error 1644 Oops in proc_3
Note 4070 At line 4 in demo.proc_3
Error 1644 Oops in proc_2
Note 4070 At line 4 in demo.proc_2
Error 1644 Oops in proc_1
Note 4070 At line 4 in demo.proc_1
drop database demo;
SET @@global.max_error_count = @start_global_value;
SELECT @@global.max_error_count;
...
...
mysql-test/r/sp-error.result
View file @
d7e3120d
...
...
@@ -1990,6 +1990,8 @@ Warning 1264 Out of range value for column 'a' at row 1
Note 1292 Truncated incorrect INTEGER value: '222222 '
Warning 1264 Out of range value for column 'b' at row 1
Error 1048 Column 'c' cannot be null
Note 4070 At line 6 in test.t1_bi
Note 4070 At line 2 in test.p1
DROP TABLE t1;
DROP TABLE t2;
...
...
mysql-test/r/sp.result
View file @
d7e3120d
...
...
@@ -7823,6 +7823,7 @@ ERROR 23000: Duplicate entry '2' for key 'PRIMARY'
show warnings;
Level Code Message
Error 1062 Duplicate entry '2' for key 'PRIMARY'
Note 4070 At line 5 in test.p1
select * from t1;
id
1
...
...
mysql-test/r/warnings.result
View file @
d7e3120d
...
...
@@ -353,6 +353,7 @@ ERROR 23000: Duplicate entry '11' for key 'a'
SHOW WARNINGS;
Level Code Message
Note 4070 At line 4 in test.f1
Error 1062 Duplicate entry '11' for key 'a'
DROP TABLE t1;
...
...
mysql-test/suite/rpl/r/rpl_slave_grp_exec.result
View file @
d7e3120d
...
...
@@ -35,6 +35,7 @@ a b
1 ZZ
connection slave;
call mtr.add_suppression("Slave SQL.*Table .test.t3. doesn.t exist.* error.* 1146");
call mtr.add_suppression("At line *");
include/wait_for_slave_sql_error.inc [errno=1146]
SHOW TABLES LIKE 't%';
Tables_in_test (t%)
...
...
mysql-test/suite/rpl/r/rpl_sp.result
View file @
d7e3120d
...
...
@@ -128,6 +128,7 @@ show warnings;
Level Code Message
Error 1062 Duplicate entry '20' for key 'a'
Warning 1196 Some non-transactional changed tables couldn't be rolled back
Note 4070 At line 4 in mysqltest1.foo4
select * from t2;
a
20
...
...
@@ -290,6 +291,7 @@ end|
do fn1(100);
Warnings:
Error 1062 Duplicate entry '100' for key 'a'
Note 4070 At line 3 in mysqltest1.fn1
Warning 1196 Some non-transactional changed tables couldn't be rolled back
select fn1(20);
ERROR 23000: Duplicate entry '20' for key 'a'
...
...
mysql-test/suite/rpl/t/rpl_slave_grp_exec.test
View file @
d7e3120d
...
...
@@ -64,6 +64,7 @@ SELECT * FROM t3 ORDER BY a;
--
connection
slave
# 1146 = ER_NO_SUCH_TABLE
call
mtr
.
add_suppression
(
"Slave SQL.*Table .test.t3. doesn.t exist.* error.* 1146"
);
call
mtr
.
add_suppression
(
"At line *"
);
--
let
$slave_sql_errno
=
1146
--
source
include
/
wait_for_slave_sql_error
.
inc
SHOW
TABLES
LIKE
't%'
;
...
...
mysql-test/t/get_diagnostics.test
View file @
d7e3120d
...
...
@@ -631,6 +631,7 @@ DROP PROCEDURE p1;
--
echo
# The same statement information item can be used multiple times.
--
echo
SHOW
WARNINGS
;
DELIMITER
|
;
CREATE
PROCEDURE
p1
()
BEGIN
...
...
sql/share/errmsg-utf8.txt
View file @
d7e3120d
...
...
@@ -7488,3 +7488,5 @@ ER_UNKNOWN_VIEW 42S02
eng "Unknown VIEW: '%-.300s'"
ER_WRONG_INSERT_INTO_SEQUENCE
eng "Wrong INSERT into a SEQUENCE. One can only do single table INSERT into a squence object (like with mysqldump). If you want to change the SEQUENCE, use ALTER SEQUENCE instead."
ER_SP_STACK_TRACE
eng "At line %u in %s"
sql/sp_head.cc
View file @
d7e3120d
...
...
@@ -1178,11 +1178,10 @@ sp_head::execute(THD *thd, bool merge_da_on_success)
/* Discard the initial part of executing routines. */
thd
->
profiling
.
discard_current_query
();
#endif
sp_instr
*
i
;
DEBUG_SYNC
(
thd
,
"sp_head_execute_before_loop"
);
do
{
sp_instr
*
i
;
#if defined(ENABLED_PROFILING)
/*
Treat each "instr" of a routine as discrete unit that could be profiled.
...
...
@@ -1342,6 +1341,13 @@ sp_head::execute(THD *thd, bool merge_da_on_success)
da
->
opt_clear_warning_info
(
thd
->
query_id
);
da
->
copy_sql_conditions_from_wi
(
thd
,
&
sp_wi
);
da
->
remove_marked_sql_conditions
();
if
(
i
!=
NULL
)
push_warning_printf
(
thd
,
Sql_condition
::
WARN_LEVEL_NOTE
,
ER_SP_STACK_TRACE
,
ER_THD
(
thd
,
ER_SP_STACK_TRACE
),
i
->
m_lineno
,
m_qname
.
str
!=
NULL
?
m_qname
.
str
:
"anonymous block"
);
}
}
...
...
@@ -2770,6 +2776,7 @@ int sp_head::add_instr(sp_instr *instr)
entire stored procedure, as their life span is equal.
*/
instr
->
mem_root
=
&
main_mem_root
;
instr
->
m_lineno
=
m_thd
->
m_parser_state
->
m_lip
.
yylineno
;
return
insert_dynamic
(
&
m_instr
,
(
uchar
*
)
&
instr
);
}
...
...
sql/sp_head.h
View file @
d7e3120d
...
...
@@ -888,6 +888,7 @@ class sp_instr :public Query_arena, public Sql_alloc
uint
marked
;
uint
m_ip
;
///< My index
sp_pcontext
*
m_ctx
;
///< My parse context
uint
m_lineno
;
/// Should give each a name or type code for debugging purposes?
sp_instr
(
uint
ip
,
sp_pcontext
*
ctx
)
...
...
sql/sql_parse.cc
View file @
d7e3120d
...
...
@@ -5790,9 +5790,15 @@ mysql_execute_command(THD *thd)
if
(
!
(
sp
=
sp_find_routine
(
thd
,
TYPE_ENUM_PROCEDURE
,
lex
->
spname
,
&
thd
->
sp_proc_cache
,
TRUE
)))
{
my_error
(
ER_SP_DOES_NOT_EXIST
,
MYF
(
0
),
"PROCEDURE"
,
ErrConvDQName
(
lex
->
spname
).
ptr
());
goto
error
;
/*
sp_find_routine can have issued an ER_SP_RECURSION_LIMIT error.
Send message ER_SP_DOES_NOT_EXIST only if procedure is not found in
cache.
*/
if
(
!
sp_cache_lookup
(
&
thd
->
sp_proc_cache
,
lex
->
spname
))
my_error
(
ER_SP_DOES_NOT_EXIST
,
MYF
(
0
),
"PROCEDURE"
,
ErrConvDQName
(
lex
->
spname
).
ptr
());
goto
error
;
}
else
{
...
...
sql/sql_signal.cc
View file @
d7e3120d
...
...
@@ -434,13 +434,19 @@ bool Sql_cmd_resignal::execute(THD *thd)
/* Check if the old condition still exists. */
if
(
da
->
has_sql_condition
(
signaled
->
message
,
strlen
(
signaled
->
message
)))
{
/* Make room for the new RESIGNAL condition. */
da
->
reserve_space
(
thd
,
1
);
/*
Make room for the new RESIGNAL condition and one for the stack trace
note.
*/
da
->
reserve_space
(
thd
,
2
);
}
else
{
/* Make room for old condition + the new RESIGNAL condition. */
da
->
reserve_space
(
thd
,
2
);
/*
Make room for old condition + the new RESIGNAL condition + the stack
trace note.
*/
da
->
reserve_space
(
thd
,
3
);
da
->
push_warning
(
thd
,
&
signaled_err
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment