diff options
author | Alexander Barkov <bar@mariadb.org> | 2016-10-13 18:19:58 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.org> | 2017-04-05 15:02:53 +0400 |
commit | 4d3818d30d97e6fbdb5130d73716401e883c7371 (patch) | |
tree | f2440171d9faa1c804b5df73f542c17e4a7e755b /sql/sql_error.cc | |
parent | 6010662cb328c10b1ef92c3ed43b2b3858c49863 (diff) | |
download | mariadb-git-4d3818d30d97e6fbdb5130d73716401e883c7371.tar.gz |
MDEV-11037 Diagnostics_area refactoring for user defined exceptions
Part 2:
Moving the part of Sql_condition that contain condition items
(such as m_class_origin, m_cursor_name, etc) into a separate
class Sql_condition_items. This allows to remove duplicate code in
different Sql_condition constructors.
Also, introducing new Sql_condition constructors and removing the method
Sql_condition::set(). All code sequences that called an Sql_condition
constructor followed by Sql_condition::set() are now replaced to
the new constructor calls. This gives light performance improvement,
as the relevant members are now initialized only one time.
Diffstat (limited to 'sql/sql_error.cc')
-rw-r--r-- | sql/sql_error.cc | 63 |
1 files changed, 1 insertions, 62 deletions
diff --git a/sql/sql_error.cc b/sql/sql_error.cc index a7de8a00009..2e9b1dabea4 100644 --- a/sql/sql_error.cc +++ b/sql/sql_error.cc @@ -172,64 +172,6 @@ This file contains the implementation of error and warnings related See WL#2111 (Stored Procedures: Implement GET DIAGNOSTICS) */ -Sql_condition::Sql_condition() - : Sql_alloc(), - m_class_origin((const char*) NULL, 0, & my_charset_utf8_bin), - m_subclass_origin((const char*) NULL, 0, & my_charset_utf8_bin), - m_constraint_catalog((const char*) NULL, 0, & my_charset_utf8_bin), - m_constraint_schema((const char*) NULL, 0, & my_charset_utf8_bin), - m_constraint_name((const char*) NULL, 0, & my_charset_utf8_bin), - m_catalog_name((const char*) NULL, 0, & my_charset_utf8_bin), - m_schema_name((const char*) NULL, 0, & my_charset_utf8_bin), - m_table_name((const char*) NULL, 0, & my_charset_utf8_bin), - m_column_name((const char*) NULL, 0, & my_charset_utf8_bin), - m_cursor_name((const char*) NULL, 0, & my_charset_utf8_bin), - m_message_text(), - m_mem_root(NULL) -{ -} - -void Sql_condition::init(MEM_ROOT *mem_root) -{ - DBUG_ASSERT(mem_root != NULL); - DBUG_ASSERT(m_mem_root == NULL); - m_mem_root= mem_root; -} - -void Sql_condition::clear() -{ - m_class_origin.length(0); - m_subclass_origin.length(0); - m_constraint_catalog.length(0); - m_constraint_schema.length(0); - m_constraint_name.length(0); - m_catalog_name.length(0); - m_schema_name.length(0); - m_table_name.length(0); - m_column_name.length(0); - m_cursor_name.length(0); - m_message_text.length(0); - m_sql_errno= 0; - m_level= Sql_condition::WARN_LEVEL_ERROR; -} - -Sql_condition::Sql_condition(MEM_ROOT *mem_root) - : Sql_alloc(), - m_class_origin((const char*) NULL, 0, & my_charset_utf8_bin), - m_subclass_origin((const char*) NULL, 0, & my_charset_utf8_bin), - m_constraint_catalog((const char*) NULL, 0, & my_charset_utf8_bin), - m_constraint_schema((const char*) NULL, 0, & my_charset_utf8_bin), - m_constraint_name((const char*) NULL, 0, & my_charset_utf8_bin), - m_catalog_name((const char*) NULL, 0, & my_charset_utf8_bin), - m_schema_name((const char*) NULL, 0, & my_charset_utf8_bin), - m_table_name((const char*) NULL, 0, & my_charset_utf8_bin), - m_column_name((const char*) NULL, 0, & my_charset_utf8_bin), - m_cursor_name((const char*) NULL, 0, & my_charset_utf8_bin), - m_message_text(), - m_mem_root(mem_root) -{ - DBUG_ASSERT(mem_root != NULL); -} static void copy_string(MEM_ROOT *mem_root, String* dst, const String* src) { @@ -715,12 +657,9 @@ Sql_condition *Warning_info::push_warning(THD *thd, if (m_allow_unlimited_warnings || m_warn_list.elements() < thd->variables.max_error_count) { - cond= new (& m_warn_root) Sql_condition(& m_warn_root); + cond= new (& m_warn_root) Sql_condition(& m_warn_root, value, msg); if (cond) - { - cond->set(value, msg); m_warn_list.push_back(cond); - } } m_warn_count[(uint) value->get_level()]++; } |