diff options
author | unknown <malff/marcsql@weblab.(none)> | 2006-10-19 11:39:51 -0700 |
---|---|---|
committer | unknown <malff/marcsql@weblab.(none)> | 2006-10-19 11:39:51 -0700 |
commit | 5bd58f3e00ad7e7430c8d728f94209dce4c1a4e4 (patch) | |
tree | 997ff98a25d591733b1ee8e0a441ad58f17eaaaa /sql/sp_head.cc | |
parent | de304106ca659f3d74c75e75ee02bc01d7d5d0a1 (diff) | |
download | mariadb-git-5bd58f3e00ad7e7430c8d728f94209dce4c1a4e4.tar.gz |
Bug#20028 (Function with select return no data)
This patch reverts a change introduced by Bug 6951, which incorrectly
set thd->abort_on_warning for stored procedures.
As per internal discussions about the SQL_MODE=TRADITIONAL,
the correct behavior is to *not* abort on warnings even inside an INSERT/UPDATE
trigger.
Tests for Stored Procedures, Stored Functions, Triggers involving SQL_MODE
have been included or revised, to reflect the intended behavior.
(reposting approved patch, to work around source control issues, no review needed)
mysql-test/include/sp-vars.inc:
Tests for SQL_MODE='TRADITIONAL'
mysql-test/r/sp-vars.result:
Tests for SQL_MODE='TRADITIONAL'
mysql-test/r/sp.result:
Tests for SQL_MODE='TRADITIONAL'
mysql-test/r/trigger.result:
Tests for SQL_MODE='TRADITIONAL'
mysql-test/t/sp-vars.test:
Tests for SQL_MODE='TRADITIONAL'
mysql-test/t/sp.test:
Tests for SQL_MODE='TRADITIONAL'
mysql-test/t/trigger.test:
Tests for SQL_MODE='TRADITIONAL'
sql/sp_head.cc:
For SQL_MODE='TRADITIONAL',
thd->abort_on_warning should be set only when assigning a *column*
Diffstat (limited to 'sql/sp_head.cc')
-rw-r--r-- | sql/sp_head.cc | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/sql/sp_head.cc b/sql/sp_head.cc index 9761de625be..a06bfe28a6f 100644 --- a/sql/sp_head.cc +++ b/sql/sp_head.cc @@ -991,8 +991,7 @@ sp_head::execute(THD *thd) save_sql_mode= thd->variables.sql_mode; thd->variables.sql_mode= m_sql_mode; save_abort_on_warning= thd->abort_on_warning; - thd->abort_on_warning= - (m_sql_mode & (MODE_STRICT_TRANS_TABLES | MODE_STRICT_ALL_TABLES)); + thd->abort_on_warning= 0; /* It is also more efficient to save/restore current thd->lex once when |