From: Alexander Nozdrin Date: June 10 2011 3:25pm Subject: bzr commit into mysql-trunk branch (alexander.nozdrin:3190) List-Archive: http://lists.mysql.com/commits/139082 Message-Id: <201106101525.p5AFPFQx030073@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6216605748484341831==" --===============6216605748484341831== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/alik/MySQL/bzr/00/bug55843/mysql-trunk-bug55843-02/ based on revid:alexander.nozdrin@stripped 3190 Alexander Nozdrin 2011-06-10 Rename get_warning_info() to get_stmt_wi() to - be consistent in names with get_stmt_da(); - reflect the fact that it's a Warning-info-area for the current statement; - have a shorter name; I.e.: - Diagnostics_area::get_warning_info() -> Diagnostics_area::get_stmt_wi() - THD::get_warning_info() -> THD::get_stmt_wi() modified: libmysqld/emb_qcache.cc libmysqld/lib_sql.cc sql/event_scheduler.cc sql/field.cc sql/ha_ndbcluster_binlog.cc sql/log_event.cc sql/protocol.cc sql/rpl_slave.cc sql/sp.cc sql/sp_head.cc sql/sql_admin.cc sql/sql_audit.h sql/sql_base.cc sql/sql_class.cc sql/sql_class.h sql/sql_error.cc sql/sql_error.h sql/sql_insert.cc sql/sql_load.cc sql/sql_parse.cc sql/sql_prepare.cc sql/sql_prepare.h sql/sql_select.cc sql/sql_show.cc sql/sql_signal.cc sql/sql_table.cc sql/sql_time.cc sql/sql_update.cc sql/sys_vars.cc === modified file 'libmysqld/emb_qcache.cc' --- a/libmysqld/emb_qcache.cc 2011-06-09 08:58:41 +0000 +++ b/libmysqld/emb_qcache.cc 2011-06-10 15:25:05 +0000 @@ -487,7 +487,7 @@ int emb_load_querycache_result(THD *thd, data->embedded_info->prev_ptr= prev_row; return_ok: net_send_eof(thd, thd->server_status, - thd->get_warning_info()->statement_warn_count()); + thd->get_stmt_wi()->statement_warn_count()); DBUG_RETURN(0); err: DBUG_RETURN(1); === modified file 'libmysqld/lib_sql.cc' --- a/libmysqld/lib_sql.cc 2011-06-09 08:58:41 +0000 +++ b/libmysqld/lib_sql.cc 2011-06-10 15:25:05 +0000 @@ -241,7 +241,7 @@ static my_bool emb_read_prepare_result(M stmt->stmt_id= thd->client_stmt_id; stmt->param_count= thd->client_param_count; stmt->field_count= 0; - mysql->warning_count= thd->get_warning_info()->statement_warn_count(); + mysql->warning_count= thd->get_stmt_wi()->statement_warn_count(); if (thd->first_data) { @@ -1047,7 +1047,7 @@ bool Protocol::send_result_set_metadata( if (flags & SEND_EOF) write_eof_packet(thd, thd->server_status, - thd->get_warning_info()->statement_warn_count()); + thd->get_stmt_wi()->statement_warn_count()); DBUG_RETURN(prepare_for_send(list->elements)); err: === modified file 'sql/event_scheduler.cc' --- a/sql/event_scheduler.cc 2011-06-09 08:58:41 +0000 +++ b/sql/event_scheduler.cc 2011-06-10 15:25:05 +0000 @@ -77,7 +77,7 @@ Event_worker_thread::print_warnings(THD { MYSQL_ERROR *err; DBUG_ENTER("evex_print_warnings"); - if (thd->get_warning_info()->is_empty()) + if (thd->get_stmt_wi()->is_empty()) DBUG_VOID_RETURN; char msg_buf[10 * STRING_BUFFER_USUAL_SIZE]; @@ -93,7 +93,7 @@ Event_worker_thread::print_warnings(THD prefix.append(et->name.str, et->name.length, system_charset_info); prefix.append("] ", 2); - List_iterator_fast it(thd->get_warning_info()->warn_list()); + List_iterator_fast it(thd->get_stmt_wi()->warn_list()); while ((err= it++)) { String err_msg(msg_buf, sizeof(msg_buf), system_charset_info); === modified file 'sql/field.cc' --- a/sql/field.cc 2011-06-09 08:58:41 +0000 +++ b/sql/field.cc 2011-06-10 15:25:05 +0000 @@ -1163,7 +1163,7 @@ int Field_num::check_int(const CHARSET_I ER_TRUNCATED_WRONG_VALUE_FOR_FIELD, ER(ER_TRUNCATED_WRONG_VALUE_FOR_FIELD), "integer", err.ptr(), field_name, - (ulong) table->in_use->get_warning_info()-> + (ulong) table->in_use->get_stmt_wi()-> current_row_for_warning()); return 1; } @@ -2649,7 +2649,7 @@ int Field_new_decimal::store(const char ER_TRUNCATED_WRONG_VALUE_FOR_FIELD, ER(ER_TRUNCATED_WRONG_VALUE_FOR_FIELD), "decimal", errmsg.ptr(), field_name, - (ulong) table->in_use->get_warning_info()-> + (ulong) table->in_use->get_stmt_wi()-> current_row_for_warning()); DBUG_RETURN(err); @@ -2670,7 +2670,7 @@ int Field_new_decimal::store(const char ER_TRUNCATED_WRONG_VALUE_FOR_FIELD, ER(ER_TRUNCATED_WRONG_VALUE_FOR_FIELD), "decimal", errmsg.ptr(), field_name, - (ulong) table->in_use->get_warning_info()-> + (ulong) table->in_use->get_stmt_wi()-> current_row_for_warning()); my_decimal_set_zero(&decimal_value); break; @@ -5233,7 +5233,7 @@ bool Field_time::get_date(MYSQL_TIME *lt push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_DATA_OUT_OF_RANGE, ER(ER_WARN_DATA_OUT_OF_RANGE), field_name, - thd->get_warning_info()->current_row_for_warning()); + thd->get_stmt_wi()->current_row_for_warning()); return 1; } return Field_time::get_time(ltime); @@ -6232,7 +6232,7 @@ check_string_copy_error(Field_str *field ER_TRUNCATED_WRONG_VALUE_FOR_FIELD, ER(ER_TRUNCATED_WRONG_VALUE_FOR_FIELD), "string", tmp, field->field_name, - thd->get_warning_info()->current_row_for_warning()); + thd->get_stmt_wi()->current_row_for_warning()); return TRUE; } @@ -10080,7 +10080,7 @@ Field::set_warning(MYSQL_ERROR::enum_war { thd->cuted_fields+= cuted_increment; push_warning_printf(thd, level, code, ER(code), field_name, - thd->get_warning_info()->current_row_for_warning()); + thd->get_stmt_wi()->current_row_for_warning()); return 0; } return level >= MYSQL_ERROR::WARN_LEVEL_WARN; === modified file 'sql/ha_ndbcluster_binlog.cc' --- a/sql/ha_ndbcluster_binlog.cc 2011-06-09 08:58:41 +0000 +++ b/sql/ha_ndbcluster_binlog.cc 2011-06-10 15:25:05 +0000 @@ -982,7 +982,7 @@ static void print_could_not_discover_err "my_errno: %d", schema->db, schema->name, schema->query, schema->node_id, my_errno); - List_iterator_fast it(thd->get_warning_info()->warn_list()); + List_iterator_fast it(thd->get_stmt_wi()->warn_list()); MYSQL_ERROR *err; while ((err= it++)) sql_print_warning("NDB Binlog: (%d)%s", err->get_sql_errno(), === modified file 'sql/log_event.cc' --- a/sql/log_event.cc 2011-06-09 08:58:41 +0000 +++ b/sql/log_event.cc 2011-06-10 15:25:05 +0000 @@ -208,7 +208,7 @@ static void inline slave_rows_error_repo char buff[MAX_SLAVE_ERRMSG], *slider; const char *buff_end= buff + sizeof(buff); uint len; - List_iterator_fast it(thd->get_warning_info()->warn_list()); + List_iterator_fast it(thd->get_stmt_wi()->warn_list()); MYSQL_ERROR *err; buff[0]= 0; @@ -5300,7 +5300,7 @@ int Load_log_event::do_apply_event(NET* { thd->set_time((time_t)when); thd->set_query_id(next_query_id()); - thd->get_warning_info()->opt_clear_warning_info(thd->query_id); + thd->get_stmt_wi()->opt_clear_warning_info(thd->query_id); TABLE_LIST tables; char table_buf[NAME_LEN + 1]; === modified file 'sql/protocol.cc' --- a/sql/protocol.cc 2011-06-09 08:58:41 +0000 +++ b/sql/protocol.cc 2011-06-10 15:25:05 +0000 @@ -802,7 +802,7 @@ bool Protocol::send_result_set_metadata( Send no warning information, as it will be sent at statement end. */ if (write_eof_packet(thd, &thd->net, thd->server_status, - thd->get_warning_info()->statement_warn_count())) + thd->get_stmt_wi()->statement_warn_count())) DBUG_RETURN(1); } DBUG_RETURN(prepare_for_send(list->elements)); === modified file 'sql/rpl_slave.cc' --- a/sql/rpl_slave.cc 2011-06-09 08:58:41 +0000 +++ b/sql/rpl_slave.cc 2011-06-10 15:25:05 +0000 @@ -3747,7 +3747,7 @@ log '%s' at position %s, relay log '%s' } /* Print any warnings issued */ - List_iterator_fast it(thd->get_warning_info()->warn_list()); + List_iterator_fast it(thd->get_stmt_wi()->warn_list()); MYSQL_ERROR *err; /* Added controlled slave thread cancel for replication === modified file 'sql/sp.cc' --- a/sql/sp.cc 2011-06-09 08:58:41 +0000 +++ b/sql/sp.cc 2011-06-10 15:25:05 +0000 @@ -1727,7 +1727,7 @@ sp_exist_routines(THD *thd, TABLE_LIST * sp_find_routine(thd, TYPE_ENUM_FUNCTION, name, &thd->sp_func_cache, FALSE) != NULL; - thd->get_warning_info()->clear_warning_info(thd->query_id); + thd->get_stmt_wi()->clear_warning_info(thd->query_id); if (! sp_object_found) { my_error(ER_SP_DOES_NOT_EXIST, MYF(0), "FUNCTION or PROCEDURE", === modified file 'sql/sp_head.cc' --- a/sql/sp_head.cc 2011-06-10 07:58:11 +0000 +++ b/sql/sp_head.cc 2011-06-10 15:25:05 +0000 @@ -1146,9 +1146,9 @@ find_handler_after_execution(THD *thd, s MYSQL_ERROR::WARN_LEVEL_ERROR, thd->get_stmt_da()->message()); } - else if (thd->get_warning_info()->statement_warn_count()) + else if (thd->get_stmt_wi()->statement_warn_count()) { - List_iterator it(thd->get_warning_info()->warn_list()); + List_iterator it(thd->get_stmt_wi()->warn_list()); MYSQL_ERROR *err; while ((err= it++)) { @@ -1216,7 +1216,7 @@ sp_head::execute(THD *thd, bool merge_da Object_creation_ctx *saved_creation_ctx; Diagnostics_area *da= thd->get_stmt_da(); Warning_info *saved_warning_info; - Warning_info warning_info(thd->get_warning_info()->warn_id(), false); + Warning_info warning_info(thd->get_stmt_wi()->warn_id(), false); /* Just reporting a stack overrun error @@ -1287,8 +1287,8 @@ sp_head::execute(THD *thd, bool merge_da old_arena= thd->stmt_arena; /* Push a new warning information area. */ - warning_info.append_warning_info(thd, thd->get_warning_info()); - saved_warning_info= thd->get_warning_info(); + warning_info.append_warning_info(thd, thd->get_stmt_wi()); + saved_warning_info= thd->get_stmt_wi(); da->set_warning_info(&warning_info); /* @@ -1389,7 +1389,7 @@ sp_head::execute(THD *thd, bool merge_da } /* Reset number of warnings for this query. */ - thd->get_warning_info()->reset_for_next_command(); + thd->get_stmt_wi()->reset_for_next_command(); DBUG_PRINT("execute", ("Instruction %u", ip)); @@ -1497,7 +1497,7 @@ sp_head::execute(THD *thd, bool merge_da propagated to the caller in any case. */ if (err_status || merge_da_on_success) - saved_warning_info->merge_with_routine_info(thd, thd->get_warning_info()); + saved_warning_info->merge_with_routine_info(thd, thd->get_stmt_wi()); da->set_warning_info(saved_warning_info); done: === modified file 'sql/sql_admin.cc' --- a/sql/sql_admin.cc 2011-06-10 07:58:11 +0000 +++ b/sql/sql_admin.cc 2011-06-10 15:25:05 +0000 @@ -353,7 +353,7 @@ static bool mysql_admin_table(THD* thd, Diagnostics_area *da= thd->get_stmt_da(); Warning_info wi(thd->query_id, false); - Warning_info *wi_saved= thd->get_warning_info(); + Warning_info *wi_saved= thd->get_stmt_wi(); da->set_warning_info(&wi); @@ -480,7 +480,7 @@ static bool mysql_admin_table(THD* thd, if (!table->table) { DBUG_PRINT("admin", ("open table failed")); - if (thd->get_warning_info()->is_empty()) + if (thd->get_stmt_wi()->is_empty()) push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN, ER_CHECK_NO_SUCH_TABLE, ER(ER_CHECK_NO_SUCH_TABLE)); /* if it was a view will check md5 sum */ @@ -639,7 +639,7 @@ send_result: lex->cleanup_after_one_table_open(); thd->clear_error(); // these errors shouldn't get client { - List_iterator_fast it(thd->get_warning_info()->warn_list()); + List_iterator_fast it(thd->get_stmt_wi()->warn_list()); MYSQL_ERROR *err; while ((err= it++)) { @@ -653,7 +653,7 @@ send_result: if (protocol->write()) goto err; } - thd->get_warning_info()->clear_warning_info(thd->query_id); + thd->get_stmt_wi()->clear_warning_info(thd->query_id); } protocol->prepare_for_resend(); protocol->store(table_name, system_charset_info); === modified file 'sql/sql_audit.h' --- a/sql/sql_audit.h 2011-06-09 08:58:41 +0000 +++ b/sql/sql_audit.h 2011-06-10 15:25:05 +0000 @@ -117,7 +117,7 @@ void mysql_audit_general(THD *thd, uint query= thd->query_string; user= user_buff; userlen= make_user_name(thd, user_buff); - rows= thd->get_warning_info()->current_row_for_warning(); + rows= thd->get_stmt_wi()->current_row_for_warning(); } else { === modified file 'sql/sql_base.cc' --- a/sql/sql_base.cc 2011-06-09 08:58:41 +0000 +++ b/sql/sql_base.cc 2011-06-10 15:25:05 +0000 @@ -4016,7 +4016,7 @@ recover_from_failed_open(THD *thd) ha_create_table_from_engine(thd, m_failed_table->db, m_failed_table->table_name); - thd->get_warning_info()->clear_warning_info(thd->query_id); + thd->get_stmt_wi()->clear_warning_info(thd->query_id); thd->clear_error(); // Clear error message thd->mdl_context.release_transactional_locks(); break; === modified file 'sql/sql_class.cc' --- a/sql/sql_class.cc 2011-06-10 07:49:17 +0000 +++ b/sql/sql_class.cc 2011-06-10 15:25:05 +0000 @@ -596,7 +596,7 @@ int thd_tx_isolation(const THD *thd) extern "C" void thd_inc_row_count(THD *thd) { - thd->get_warning_info()->inc_current_row_for_warning(); + thd->get_stmt_wi()->inc_current_row_for_warning(); } @@ -1010,7 +1010,7 @@ MYSQL_ERROR* THD::raise_condition(uint s const char* msg) { Diagnostics_area *da= get_stmt_da(); - Warning_info *wi= get_warning_info(); + Warning_info *wi= get_stmt_wi(); MYSQL_ERROR *cond= NULL; DBUG_ENTER("THD::raise_condition"); === modified file 'sql/sql_class.h' --- a/sql/sql_class.h 2011-06-10 15:17:42 +0000 +++ b/sql/sql_class.h 2011-06-10 15:25:05 +0000 @@ -2833,8 +2833,8 @@ public: inline bool is_error() const { return get_stmt_da()->is_error(); } /// Returns Warning-information-area for the current diagnostics area. - Warning_info *get_warning_info() - { return get_stmt_da()->get_warning_info(); } + Warning_info *get_stmt_wi() + { return get_stmt_da()->get_stmt_wi(); } /// Returns Diagnostics-area for the current statement. Diagnostics_area *get_stmt_da() === modified file 'sql/sql_error.cc' --- a/sql/sql_error.cc 2011-06-10 07:49:17 +0000 +++ b/sql/sql_error.cc 2011-06-10 15:25:05 +0000 @@ -378,7 +378,7 @@ Diagnostics_area::set_ok_status(THD *thd if (is_error() || is_disabled()) return; - m_statement_warn_count= thd->get_warning_info()->statement_warn_count(); + m_statement_warn_count= thd->get_stmt_wi()->statement_warn_count(); m_affected_rows= affected_rows_arg; m_last_insert_id= last_insert_id_arg; if (message_arg) @@ -413,7 +413,7 @@ Diagnostics_area::set_eof_status(THD *th anyway. */ m_statement_warn_count= (thd->spcont ? - 0 : thd->get_warning_info()->statement_warn_count()); + 0 : thd->get_stmt_wi()->statement_warn_count()); m_status= DA_EOF; DBUG_VOID_RETURN; @@ -682,7 +682,7 @@ bool mysqld_show_warnings(THD *thd, ulon List field_list; DBUG_ENTER("mysqld_show_warnings"); - DBUG_ASSERT(thd->get_warning_info()->is_read_only()); + DBUG_ASSERT(thd->get_stmt_wi()->is_read_only()); field_list.push_back(new Item_empty_string("Level", 7)); field_list.push_back(new Item_return_int("Code",4, MYSQL_TYPE_LONG)); @@ -700,7 +700,7 @@ bool mysqld_show_warnings(THD *thd, ulon unit->set_limit(sel); - List_iterator_fast it(thd->get_warning_info()->warn_list()); + List_iterator_fast it(thd->get_stmt_wi()->warn_list()); while ((err= it++)) { /* Skip levels that the user is not interested in */ @@ -723,7 +723,7 @@ bool mysqld_show_warnings(THD *thd, ulon } my_eof(thd); - thd->get_warning_info()->set_read_only(FALSE); + thd->get_stmt_wi()->set_read_only(FALSE); DBUG_RETURN(FALSE); } === modified file 'sql/sql_error.h' --- a/sql/sql_error.h 2011-06-10 07:49:17 +0000 +++ b/sql/sql_error.h 2011-06-10 15:25:05 +0000 @@ -490,10 +490,10 @@ public: Diagnostics_area(ulonglong warn_id, bool allow_unlimited_warnings); public: - inline Warning_info *get_warning_info() + inline Warning_info *get_stmt_wi() { return m_current_wi; } - inline const Warning_info *get_warning_info() const + inline const Warning_info *get_stmt_wi() const { return m_current_wi; } inline void set_warning_info(Warning_info *wi) === modified file 'sql/sql_insert.cc' --- a/sql/sql_insert.cc 2011-06-09 08:58:41 +0000 +++ b/sql/sql_insert.cc 2011-06-10 15:25:05 +0000 @@ -931,7 +931,7 @@ bool mysql_insert(THD *thd,TABLE_LIST *t error=write_record(thd, table ,&info); if (error) break; - thd->get_warning_info()->inc_current_row_for_warning(); + thd->get_stmt_wi()->inc_current_row_for_warning(); } free_underlaid_joins(thd, &thd->lex->select_lex); @@ -1086,11 +1086,11 @@ bool mysql_insert(THD *thd,TABLE_LIST *t sprintf(buff, ER(ER_INSERT_INFO), (ulong) info.records, (lock_type == TL_WRITE_DELAYED) ? (ulong) 0 : (ulong) (info.records - info.copied), - (ulong) thd->get_warning_info()->statement_warn_count()); + (ulong) thd->get_stmt_wi()->statement_warn_count()); else sprintf(buff, ER(ER_INSERT_INFO), (ulong) info.records, (ulong) (info.deleted + updated), - (ulong) thd->get_warning_info()->statement_warn_count()); + (ulong) thd->get_stmt_wi()->statement_warn_count()); ::my_ok(thd, info.copied + info.deleted + updated, id, buff); } thd->abort_on_warning= 0; @@ -3573,11 +3573,11 @@ bool select_insert::send_eof() if (info.ignore) sprintf(buff, ER(ER_INSERT_INFO), (ulong) info.records, (ulong) (info.records - info.copied), - (ulong) thd->get_warning_info()->statement_warn_count()); + (ulong) thd->get_stmt_wi()->statement_warn_count()); else sprintf(buff, ER(ER_INSERT_INFO), (ulong) info.records, (ulong) (info.deleted+info.updated), - (ulong) thd->get_warning_info()->statement_warn_count()); + (ulong) thd->get_stmt_wi()->statement_warn_count()); row_count= info.copied + info.deleted + ((thd->client_capabilities & CLIENT_FOUND_ROWS) ? info.touched : info.updated); === modified file 'sql/sql_load.cc' --- a/sql/sql_load.cc 2011-06-09 08:58:41 +0000 +++ b/sql/sql_load.cc 2011-06-10 15:25:05 +0000 @@ -590,7 +590,7 @@ int mysql_load(THD *thd,sql_exchange *ex } sprintf(name, ER(ER_LOAD_INFO), (ulong) info.records, (ulong) info.deleted, (ulong) (info.records - info.copied), - (ulong) thd->get_warning_info()->statement_warn_count()); + (ulong) thd->get_stmt_wi()->statement_warn_count()); #ifndef EMBEDDED_LIBRARY if (mysql_bin_log.is_open()) @@ -833,7 +833,7 @@ read_fixed_length(THD *thd, COPY_INFO &i push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_TOO_FEW_RECORDS, ER(ER_WARN_TOO_FEW_RECORDS), - thd->get_warning_info()->current_row_for_warning()); + thd->get_stmt_wi()->current_row_for_warning()); if (!field->maybe_null() && field->type() == FIELD_TYPE_TIMESTAMP) ((Field_timestamp*) field)->set_time(); } @@ -857,7 +857,7 @@ read_fixed_length(THD *thd, COPY_INFO &i push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_TOO_MANY_RECORDS, ER(ER_WARN_TOO_MANY_RECORDS), - thd->get_warning_info()->current_row_for_warning()); + thd->get_stmt_wi()->current_row_for_warning()); } if (thd->killed || @@ -893,9 +893,9 @@ read_fixed_length(THD *thd, COPY_INFO &i push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_TOO_MANY_RECORDS, ER(ER_WARN_TOO_MANY_RECORDS), - thd->get_warning_info()->current_row_for_warning()); + thd->get_stmt_wi()->current_row_for_warning()); } - thd->get_warning_info()->inc_current_row_for_warning(); + thd->get_stmt_wi()->inc_current_row_for_warning(); continue_loop:; } DBUG_RETURN(test(read_info.error)); @@ -959,7 +959,7 @@ read_sep_field(THD *thd, COPY_INFO &info if (field->reset()) { my_error(ER_WARN_NULL_TO_NOTNULL, MYF(0), field->field_name, - thd->get_warning_info()->current_row_for_warning()); + thd->get_stmt_wi()->current_row_for_warning()); DBUG_RETURN(1); } field->set_null(); @@ -1031,7 +1031,7 @@ read_sep_field(THD *thd, COPY_INFO &info if (field->reset()) { my_error(ER_WARN_NULL_TO_NOTNULL, MYF(0),field->field_name, - thd->get_warning_info()->current_row_for_warning()); + thd->get_stmt_wi()->current_row_for_warning()); DBUG_RETURN(1); } if (!field->maybe_null() && field->type() == FIELD_TYPE_TIMESTAMP) @@ -1046,7 +1046,7 @@ read_sep_field(THD *thd, COPY_INFO &info push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_TOO_FEW_RECORDS, ER(ER_WARN_TOO_FEW_RECORDS), - thd->get_warning_info()->current_row_for_warning()); + thd->get_stmt_wi()->current_row_for_warning()); } else if (item->type() == Item::STRING_ITEM) { @@ -1092,11 +1092,11 @@ read_sep_field(THD *thd, COPY_INFO &info thd->cuted_fields++; /* To long row */ push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_TOO_MANY_RECORDS, ER(ER_WARN_TOO_MANY_RECORDS), - thd->get_warning_info()->current_row_for_warning()); + thd->get_stmt_wi()->current_row_for_warning()); if (thd->killed) DBUG_RETURN(1); } - thd->get_warning_info()->inc_current_row_for_warning(); + thd->get_stmt_wi()->inc_current_row_for_warning(); continue_loop:; } DBUG_RETURN(test(read_info.error)); @@ -1230,7 +1230,7 @@ read_xml_field(THD *thd, COPY_INFO &info push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN, ER_WARN_TOO_FEW_RECORDS, ER(ER_WARN_TOO_FEW_RECORDS), - thd->get_warning_info()->current_row_for_warning()); + thd->get_stmt_wi()->current_row_for_warning()); } else ((Item_user_var_as_out_param *)item)->set_null_value(cs); @@ -1260,7 +1260,7 @@ read_xml_field(THD *thd, COPY_INFO &info We don't need to reset auto-increment field since we are restoring its default value at the beginning of each loop iteration. */ - thd->get_warning_info()->inc_current_row_for_warning(); + thd->get_stmt_wi()->inc_current_row_for_warning(); continue_loop:; } DBUG_RETURN(test(read_info.error) || thd->is_error()); === modified file 'sql/sql_parse.cc' --- a/sql/sql_parse.cc 2011-06-10 07:38:06 +0000 +++ b/sql/sql_parse.cc 2011-06-10 15:25:05 +0000 @@ -2025,12 +2025,12 @@ mysql_execute_command(THD *thd) variables, but for now this is probably good enough. */ if ((sql_command_flags[lex->sql_command] & CF_DIAGNOSTIC_STMT) != 0) - thd->get_warning_info()->set_read_only(TRUE); + thd->get_stmt_wi()->set_read_only(TRUE); else { - thd->get_warning_info()->set_read_only(FALSE); + thd->get_stmt_wi()->set_read_only(FALSE); if (all_tables) - thd->get_warning_info()->opt_clear_warning_info(thd->query_id); + thd->get_stmt_wi()->opt_clear_warning_info(thd->query_id); } #ifdef HAVE_REPLICATION @@ -5444,7 +5444,7 @@ void THD::reset_for_next_command() } thd->clear_error(); thd->get_stmt_da()->reset_diagnostics_area(); - thd->get_warning_info()->reset_for_next_command(); + thd->get_stmt_wi()->reset_for_next_command(); thd->rand_used= 0; thd->m_sent_row_count= thd->m_examined_row_count= 0; thd->thd_marker.emb_on_expr_nest= NULL; === modified file 'sql/sql_prepare.cc' --- a/sql/sql_prepare.cc 2011-06-10 09:52:57 +0000 +++ b/sql/sql_prepare.cc 2011-06-10 15:25:05 +0000 @@ -340,7 +340,7 @@ static bool send_prep_stmt(Prepared_stat int2store(buff+5, columns); int2store(buff+7, stmt->param_count); buff[9]= 0; // Guard against a 4.1 client - tmp= min(stmt->thd->get_warning_info()->statement_warn_count(), 65535); + tmp= min(stmt->thd->get_stmt_wi()->statement_warn_count(), 65535); int2store(buff+10, tmp); /* @@ -1957,7 +1957,7 @@ static bool check_prepared_statement(Pre /* Reset warning count for each query that uses tables */ if (tables) - thd->get_warning_info()->opt_clear_warning_info(thd->query_id); + thd->get_stmt_wi()->opt_clear_warning_info(thd->query_id); if (sql_command_flags[sql_command] & CF_HA_CLOSE) mysql_ha_rm_tables(thd, tables); @@ -3561,7 +3561,7 @@ Prepared_statement::reprepare() Sic: we can't simply silence warnings during reprepare, because if it's failed, we need to return all the warnings to the user. */ - thd->get_warning_info()->clear_warning_info(thd->query_id); + thd->get_stmt_wi()->clear_warning_info(thd->query_id); } return error; } @@ -3949,7 +3949,7 @@ Ed_connection::free_old_result() } m_current_rset= m_rsets; m_diagnostics_area.reset_diagnostics_area(); - m_diagnostics_area.get_warning_info()->clear_warning_info(m_thd->query_id); + m_diagnostics_area.get_stmt_wi()->clear_warning_info(m_thd->query_id); } === modified file 'sql/sql_prepare.h' --- a/sql/sql_prepare.h 2011-06-10 07:49:17 +0000 +++ b/sql/sql_prepare.h 2011-06-10 15:25:05 +0000 @@ -252,7 +252,7 @@ public: */ ulong get_warn_count() const { - return m_diagnostics_area.get_warning_info()->warn_count(); + return m_diagnostics_area.get_stmt_wi()->warn_count(); } /** Get the server warnings as a result set. @@ -262,7 +262,7 @@ public: The third is warning text. */ List *get_warn_list() - { return &m_diagnostics_area.get_warning_info()->warn_list(); } + { return &m_diagnostics_area.get_stmt_wi()->warn_list(); } /** The following members are only valid if execute_direct() === modified file 'sql/sql_select.cc' --- a/sql/sql_select.cc 2011-06-10 08:34:13 +0000 +++ b/sql/sql_select.cc 2011-06-10 15:25:05 +0000 @@ -17672,7 +17672,7 @@ sub_select(JOIN *join,JOIN_TAB *join_tab /* Set first_unmatched for the last inner table of this group */ join_tab->last_inner->first_unmatched= join_tab; } - join->thd->get_warning_info()->reset_current_row_for_warning(); + join->thd->get_stmt_wi()->reset_current_row_for_warning(); error= (*join_tab->read_first_record)(join_tab); @@ -17999,7 +17999,7 @@ evaluate_join_record(JOIN *join, JOIN_TA enum enum_nested_loop_state rc; /* A match from join_tab is found for the current partial join. */ rc= (*join_tab->next_select)(join, join_tab+1, 0); - join->thd->get_warning_info()->inc_current_row_for_warning(); + join->thd->get_stmt_wi()->inc_current_row_for_warning(); if (rc != NESTED_LOOP_OK && rc != NESTED_LOOP_NO_MORE_ROWS) DBUG_RETURN(rc); @@ -18031,7 +18031,7 @@ evaluate_join_record(JOIN *join, JOIN_TA } else { - join->thd->get_warning_info()->inc_current_row_for_warning(); + join->thd->get_stmt_wi()->inc_current_row_for_warning(); if (join_tab->not_null_compl) { /* a NULL-complemented row is not in a table so cannot be locked */ @@ -18046,7 +18046,7 @@ evaluate_join_record(JOIN *join, JOIN_TA with the beginning coinciding with the current partial join. */ join->examined_rows++; - join->thd->get_warning_info()->inc_current_row_for_warning(); + join->thd->get_stmt_wi()->inc_current_row_for_warning(); if (join_tab->not_null_compl) join_tab->read_record.unlock_row(join_tab); } === modified file 'sql/sql_show.cc' --- a/sql/sql_show.cc 2011-06-10 08:33:15 +0000 +++ b/sql/sql_show.cc 2011-06-10 15:25:05 +0000 @@ -6804,7 +6804,7 @@ static bool do_fill_table(THD *thd, // that problem we create a Warning_info instance, which is capable of // storing "unlimited" number of warnings. Diagnostics_area *da= thd->get_stmt_da(); - Warning_info *wi= da->get_warning_info(); + Warning_info *wi= da->get_stmt_wi(); Warning_info wi_tmp(thd->query_id, true); da->set_warning_info(&wi_tmp); === modified file 'sql/sql_signal.cc' --- a/sql/sql_signal.cc 2011-06-09 08:58:41 +0000 +++ b/sql/sql_signal.cc 2011-06-10 15:25:05 +0000 @@ -469,7 +469,7 @@ bool Sql_cmd_signal::execute(THD *thd) thd->get_stmt_da()->reset_diagnostics_area(); thd->set_row_count_func(0); - thd->get_warning_info()->clear_warning_info(thd->query_id); + thd->get_stmt_wi()->clear_warning_info(thd->query_id); result= raise_condition(thd, &cond); @@ -484,7 +484,7 @@ bool Sql_cmd_resignal::execute(THD *thd) DBUG_ENTER("Sql_cmd_resignal::execute"); - thd->get_warning_info()->m_warn_id= thd->query_id; + thd->get_stmt_wi()->m_warn_id= thd->query_id; if (! thd->spcont || ! (signaled= thd->spcont->raised_condition())) { === modified file 'sql/sql_table.cc' --- a/sql/sql_table.cc 2011-06-09 13:15:29 +0000 +++ b/sql/sql_table.cc 2011-06-10 15:25:05 +0000 @@ -2942,7 +2942,7 @@ const CHARSET_INFO* get_sql_field_charse bool check_duplicate_warning(THD *thd, char *msg, ulong length) { - List_iterator_fast it(thd->get_warning_info()->warn_list()); + List_iterator_fast it(thd->get_stmt_wi()->warn_list()); MYSQL_ERROR *err; while ((err= it++)) { @@ -7058,7 +7058,7 @@ bool mysql_alter_table(THD *thd,char *ne end_temporary: my_snprintf(tmp_name, sizeof(tmp_name), ER(ER_INSERT_INFO), (ulong) (copied + deleted), (ulong) deleted, - (ulong) thd->get_warning_info()->statement_warn_count()); + (ulong) thd->get_stmt_wi()->statement_warn_count()); my_ok(thd, copied + deleted, 0L, tmp_name); DBUG_RETURN(FALSE); @@ -7085,7 +7085,7 @@ err: Report error here. */ if (alter_info->error_if_not_empty && - thd->get_warning_info()->current_row_for_warning()) + thd->get_stmt_wi()->current_row_for_warning()) { const char *f_val= 0; enum enum_mysql_timestamp_type t_type= MYSQL_TIMESTAMP_DATE; @@ -7290,7 +7290,7 @@ copy_data_between_tables(TABLE *from,TAB init_read_record(&info, thd, from, (SQL_SELECT *) 0, 1, 1, FALSE); if (ignore) to->file->extra(HA_EXTRA_IGNORE_DUP_KEY); - thd->get_warning_info()->reset_current_row_for_warning(); + thd->get_stmt_wi()->reset_current_row_for_warning(); restore_record(to, s->default_values); // Create empty record while (!(error=info.read_record(&info))) { @@ -7349,7 +7349,7 @@ copy_data_between_tables(TABLE *from,TAB } else found_count++; - thd->get_warning_info()->inc_current_row_for_warning(); + thd->get_stmt_wi()->inc_current_row_for_warning(); } end_read_record(&info); free_io_cache(from); === modified file 'sql/sql_time.cc' --- a/sql/sql_time.cc 2011-06-09 08:58:41 +0000 +++ b/sql/sql_time.cc 2011-06-10 15:25:05 +0000 @@ -817,7 +817,7 @@ void make_truncated_value_warning(THD *t cs->cset->snprintf(cs, warn_buff, sizeof(warn_buff), ER(ER_TRUNCATED_WRONG_VALUE_FOR_FIELD), type_str, str.c_ptr(), field_name, - (ulong) thd->get_warning_info()->current_row_for_warning()); + (ulong) thd->get_stmt_wi()->current_row_for_warning()); else { if (time_type > MYSQL_TIMESTAMP_ERROR) === modified file 'sql/sql_update.cc' --- a/sql/sql_update.cc 2011-06-09 08:58:41 +0000 +++ b/sql/sql_update.cc 2011-06-10 15:25:05 +0000 @@ -791,7 +791,7 @@ int mysql_update(THD *thd, } else table->file->unlock_row(); - thd->get_warning_info()->inc_current_row_for_warning(); + thd->get_stmt_wi()->inc_current_row_for_warning(); if (thd->is_error()) { error= 1; @@ -897,7 +897,7 @@ int mysql_update(THD *thd, char buff[MYSQL_ERRMSG_SIZE]; my_snprintf(buff, sizeof(buff), ER(ER_UPDATE_INFO), (ulong) found, (ulong) updated, - (ulong) thd->get_warning_info()->statement_warn_count()); + (ulong) thd->get_stmt_wi()->statement_warn_count()); my_ok(thd, (thd->client_capabilities & CLIENT_FOUND_ROWS) ? found : updated, id, buff); DBUG_PRINT("info",("%ld records updated", (long) updated)); === modified file 'sql/sys_vars.cc' --- a/sql/sys_vars.cc 2011-06-09 08:58:41 +0000 +++ b/sql/sys_vars.cc 2011-06-10 15:25:05 +0000 @@ -2838,7 +2838,7 @@ static Sys_var_session_special Sys_rand_ static ulonglong read_error_count(THD *thd) { - return thd->get_warning_info()->error_count(); + return thd->get_stmt_wi()->error_count(); } // this really belongs to the SHOW STATUS static Sys_var_session_special Sys_error_count( @@ -2850,7 +2850,7 @@ static Sys_var_session_special Sys_error static ulonglong read_warning_count(THD *thd) { - return thd->get_warning_info()->warn_count(); + return thd->get_stmt_wi()->warn_count(); } // this really belongs to the SHOW STATUS static Sys_var_session_special Sys_warning_count( --===============6216605748484341831== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/alexander.nozdrin@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: alexander.nozdrin@stripped\ # rmh9mi7z0xcfvc6m # target_branch: file:///home/alik/MySQL/bzr/00/bug55843/mysql-trunk-\ # bug55843-02/ # testament_sha1: f5dab263db030f4f39c6fa7022dad4c18885789c # timestamp: 2011-06-10 19:25:11 +0400 # base_revision_id: alexander.nozdrin@stripped\ # qxscgpt0yvcghmm3 # # Begin bundle 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 2j3aKHofxdyRThQkJ2L+GcA= --===============6216605748484341831==--