diff options
author | unknown <tsmith@quadxeon.mysql.com> | 2007-03-07 06:54:35 +0100 |
---|---|---|
committer | unknown <tsmith@quadxeon.mysql.com> | 2007-03-07 06:54:35 +0100 |
commit | a966b0b71c82cb43d2bf6905a57ee2f3e9894cfa (patch) | |
tree | 62e24f3fd3fa6f0d0f71638998ab4294d187c651 /sql/sql_class.cc | |
parent | 31fc397c4c8a7a24f4a9d30059c96f2e4bb78524 (diff) | |
parent | f7414b28971e89bb7a8df03835b5ab250c8e24ee (diff) | |
download | mariadb-git-a966b0b71c82cb43d2bf6905a57ee2f3e9894cfa.tar.gz |
Merge tsmith@bk-internal.mysql.com:/home/bk/mysql-5.0-runtime
into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/mrg0306/50
mysql-test/mysql-test-run.pl:
Auto merged
mysql-test/r/sp.result:
Auto merged
mysql-test/t/sp.test:
Auto merged
sql/item_cmpfunc.cc:
Auto merged
sql/item_cmpfunc.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/sql_class.cc:
Auto merged
sql/sql_class.h:
Auto merged
sql/sql_parse.cc:
Auto merged
Diffstat (limited to 'sql/sql_class.cc')
-rw-r--r-- | sql/sql_class.cc | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 2246f65d0e5..4dfb9570e42 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -277,6 +277,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; } @@ -321,6 +353,7 @@ void THD::init(void) void THD::init_for_queries() { + set_time(); ha_enable_transaction(this,TRUE); reset_root_defaults(mem_root, variables.query_alloc_block_size, |