diff options
author | Monty <monty@mariadb.org> | 2018-01-01 19:39:59 +0200 |
---|---|---|
committer | Monty <monty@mariadb.org> | 2018-01-01 19:39:59 +0200 |
commit | fbab79c9b8a58b90292e900cf46ab6d6632ebb68 (patch) | |
tree | 49738ad2561489954fa0973d82be10fafbf42e0b /sql/sql_prepare.cc | |
parent | afbb72b3b6988f4c5242d46588754517724b2950 (diff) | |
parent | aed2050e40cb332d54e8d40eb7242309b962c4e1 (diff) | |
download | mariadb-git-fbab79c9b8a58b90292e900cf46ab6d6632ebb68.tar.gz |
Merge remote-tracking branch 'origin/10.2' into bb-10.2-ext
Conflicts:
cmake/make_dist.cmake.in
mysql-test/r/func_json.result
mysql-test/r/ps.result
mysql-test/t/func_json.test
mysql-test/t/ps.test
sql/item_cmpfunc.h
Diffstat (limited to 'sql/sql_prepare.cc')
-rw-r--r-- | sql/sql_prepare.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc index 5932fe136d7..a2eb2d8d2de 100644 --- a/sql/sql_prepare.cc +++ b/sql/sql_prepare.cc @@ -4732,7 +4732,19 @@ bool Prepared_statement::execute(String *expanded_query, bool open_cursor) if (error == 0 && this->lex->sql_command == SQLCOM_CALL) { if (is_sql_prepare()) + { + /* + Here we have the diagnostics area status already set to DA_OK. + sent_out_parameters() can raise errors when assigning OUT parameters: + DECLARE a DATETIME; + EXECUTE IMMEDIATE 'CALL p1(?)' USING a; + when the procedure p1 assigns a DATETIME-incompatible value (e.g. 10) + to the out parameter. Allow to overwrite status (to DA_ERROR). + */ + thd->get_stmt_da()->set_overwrite_status(true); thd->protocol_text.send_out_parameters(&this->lex->param_list); + thd->get_stmt_da()->set_overwrite_status(false); + } else thd->protocol->send_out_parameters(&this->lex->param_list); } |