diff options
author | unknown <malff/marcsql@weblab.(none)> | 2007-03-06 10:33:10 -0700 |
---|---|---|
committer | unknown <malff/marcsql@weblab.(none)> | 2007-03-06 10:33:10 -0700 |
commit | 0708859ba8a7490cf3f4ba73c667105d2a6edbd7 (patch) | |
tree | 89e46d1e53cc7db75cbfc56e2cadc40161bebc1e /sql/sql_class.cc | |
parent | c155c66da65e3d19b2baec7d141648dfd9b55f52 (diff) | |
parent | 266a7fff520eb2253226158df236865f2ad16ffe (diff) | |
download | mariadb-git-0708859ba8a7490cf3f4ba73c667105d2a6edbd7.tar.gz |
Merge weblab.(none):/home/marcsql/TREE/mysql-5.0-8407_b
into weblab.(none):/home/marcsql/TREE/mysql-5.1-8407-merge
mysql-test/r/information_schema_db.result:
Auto merged
mysql-test/r/view.result:
Auto merged
mysql-test/t/sp.test:
Auto merged
sql/lock.cc:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sp_head.cc:
Auto merged
sql/sp_head.h:
Auto merged
sql/sql_base.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_update.cc:
Auto merged
sql/table.cc:
Auto merged
sql/table.h:
Auto merged
Diffstat (limited to 'sql/sql_class.cc')
-rw-r--r-- | sql/sql_class.cc | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 6673ed1ddf0..cdb75e763b6 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -309,6 +309,38 @@ THD::THD() substitute_null_with_insert_id = FALSE; thr_lock_info_init(&lock_info); /* safety: will be reset after start */ thr_lock_owner_init(&main_lock_id, &lock_info); + + m_internal_handler= NULL; +} + + +void THD::push_internal_handler(Internal_error_handler *handler) +{ + /* + TODO: The current implementation is limited to 1 handler at a time only. + THD and sp_rcontext need to be modified to use a common handler stack. + */ + DBUG_ASSERT(m_internal_handler == NULL); + m_internal_handler= handler; +} + + +bool THD::handle_error(uint sql_errno, + MYSQL_ERROR::enum_warning_level level) +{ + if (m_internal_handler) + { + return m_internal_handler->handle_error(sql_errno, level, this); + } + + return FALSE; // 'FALSE', as per coding style +} + + +void THD::pop_internal_handler() +{ + DBUG_ASSERT(m_internal_handler != NULL); + m_internal_handler= NULL; } |