mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
Bug #49829 Many "hides virtual function" warnings with
SunStudio SunStudio compilers of late warn about methods that might hide methods in base classes due to the use of overloading combined with overriding. SunStudio also warns about variables defined in local socpe or method arguments that have the same name as a member attribute of the class. This patch renames methods that might hide base class methods, to make it easier both for humans and compilers to see what is actually called. It also renames variables in local scope. sql/field.cc: Local scope variable or method argument same as class attribute. sql/item_cmpfunc.cc: Local scope variable or method argument same as class attribute. sql/item_create.cc: Renaming base class create() to create_func(). sql/item_create.h: Renaming base class create() to create_func(). sql/protocol.cc: Local scope variable or method argument same as class attribute. sql/sql_profile.cc: Local scope variable or method argument same as class attribute. sql/sql_select.cc: Local scope variable or method argument same as class attribute. sql/sql_yacc.yy: Renaming base class create() to create_func(). storage/federated/ha_federated.cc: Local scope variable or method argument same as class attribute. storage/myisammrg/ha_myisammrg.cc: Local scope variable or method argument same as class attribute.
This commit is contained in:
parent
57a96c77db
commit
c7fad393fd
16 changed files with 128 additions and 127 deletions
23
sql/field.cc
23
sql/field.cc
|
@ -1,4 +1,4 @@
|
|||
/* Copyright 2000-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.
|
||||
/* Copyright (c) 2000, 2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -2944,16 +2944,16 @@ Field_new_decimal::unpack(uchar* to,
|
|||
a decimal and write that to the raw data buffer.
|
||||
*/
|
||||
decimal_digit_t dec_buf[DECIMAL_MAX_PRECISION];
|
||||
decimal_t dec;
|
||||
dec.len= from_precision;
|
||||
dec.buf= dec_buf;
|
||||
decimal_t dec_val;
|
||||
dec_val.len= from_precision;
|
||||
dec_val.buf= dec_buf;
|
||||
/*
|
||||
Note: bin2decimal does not change the length of the field. So it is
|
||||
just the first step the resizing operation. The second step does the
|
||||
resizing using the precision and decimals from the slave.
|
||||
*/
|
||||
bin2decimal((uchar *)from, &dec, from_precision, from_decimal);
|
||||
decimal2bin(&dec, to, precision, decimals());
|
||||
bin2decimal((uchar *)from, &dec_val, from_precision, from_decimal);
|
||||
decimal2bin(&dec_val, to, precision, decimals());
|
||||
}
|
||||
else
|
||||
memcpy(to, from, len); // Sizes are the same, just copy the data.
|
||||
|
@ -6334,7 +6334,7 @@ check_string_copy_error(Field_str *field,
|
|||
|
||||
SYNOPSIS
|
||||
Field_longstr::report_if_important_data()
|
||||
ptr - Truncated rest of string
|
||||
pstr - Truncated rest of string
|
||||
end - End of truncated string
|
||||
count_spaces - Treat traling spaces as important data
|
||||
|
||||
|
@ -6350,12 +6350,12 @@ check_string_copy_error(Field_str *field,
|
|||
*/
|
||||
|
||||
int
|
||||
Field_longstr::report_if_important_data(const char *ptr, const char *end,
|
||||
Field_longstr::report_if_important_data(const char *pstr, const char *end,
|
||||
bool count_spaces)
|
||||
{
|
||||
if ((ptr < end) && table->in_use->count_cuted_fields)
|
||||
if ((pstr < end) && table->in_use->count_cuted_fields)
|
||||
{
|
||||
if (test_if_important_data(field_charset, ptr, end))
|
||||
if (test_if_important_data(field_charset, pstr, end))
|
||||
{
|
||||
if (table->in_use->abort_on_warning)
|
||||
set_warning(MYSQL_ERROR::WARN_LEVEL_ERROR, ER_DATA_TOO_LONG, 1);
|
||||
|
@ -7008,9 +7008,8 @@ const uint Field_varstring::MAX_SIZE= UINT_MAX16;
|
|||
*/
|
||||
int Field_varstring::do_save_field_metadata(uchar *metadata_ptr)
|
||||
{
|
||||
char *ptr= (char *)metadata_ptr;
|
||||
DBUG_ASSERT(field_length <= 65535);
|
||||
int2store(ptr, field_length);
|
||||
int2store((char*)metadata_ptr, field_length);
|
||||
return 2;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
|
||||
/* Copyright (c) 2000, 2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -3028,6 +3028,7 @@ public:
|
|||
Item_cache_int(enum_field_types field_type_arg):
|
||||
Item_cache(field_type_arg), value(0) {}
|
||||
|
||||
virtual void store(Item *item){ Item_cache::store(item); }
|
||||
void store(Item *item, longlong val_arg);
|
||||
double val_real();
|
||||
longlong val_int();
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000-2006 MySQL AB
|
||||
/* Copyright (c) 2000, 2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -1022,12 +1022,12 @@ bool Arg_comparator::try_year_cmp_func(Item_result type)
|
|||
@return cache item or original value.
|
||||
*/
|
||||
|
||||
Item** Arg_comparator::cache_converted_constant(THD *thd, Item **value,
|
||||
Item** Arg_comparator::cache_converted_constant(THD *thd_arg, Item **value,
|
||||
Item **cache_item,
|
||||
Item_result type)
|
||||
{
|
||||
/* Don't need cache if doing context analysis only. */
|
||||
if (!thd->is_context_analysis_only() &&
|
||||
if (!thd_arg->is_context_analysis_only() &&
|
||||
(*value)->const_item() && type != (*value)->result_type())
|
||||
{
|
||||
Item_cache *cache= Item_cache::get_cache(*value, type);
|
||||
|
@ -1368,12 +1368,12 @@ int Arg_comparator::compare_real()
|
|||
|
||||
int Arg_comparator::compare_decimal()
|
||||
{
|
||||
my_decimal value1;
|
||||
my_decimal *val1= (*a)->val_decimal(&value1);
|
||||
my_decimal decimal1;
|
||||
my_decimal *val1= (*a)->val_decimal(&decimal1);
|
||||
if (!(*a)->null_value)
|
||||
{
|
||||
my_decimal value2;
|
||||
my_decimal *val2= (*b)->val_decimal(&value2);
|
||||
my_decimal decimal2;
|
||||
my_decimal *val2= (*b)->val_decimal(&decimal2);
|
||||
if (!(*b)->null_value)
|
||||
{
|
||||
if (set_null)
|
||||
|
@ -1397,9 +1397,9 @@ int Arg_comparator::compare_e_real()
|
|||
|
||||
int Arg_comparator::compare_e_decimal()
|
||||
{
|
||||
my_decimal value1, value2;
|
||||
my_decimal *val1= (*a)->val_decimal(&value1);
|
||||
my_decimal *val2= (*b)->val_decimal(&value2);
|
||||
my_decimal decimal1, decimal2;
|
||||
my_decimal *val1= (*a)->val_decimal(&decimal1);
|
||||
my_decimal *val2= (*b)->val_decimal(&decimal2);
|
||||
if ((*a)->null_value || (*b)->null_value)
|
||||
return test((*a)->null_value && (*b)->null_value);
|
||||
return test(my_decimal_cmp(val1, val2) == 0);
|
||||
|
@ -5402,11 +5402,11 @@ void Item_equal::merge(Item_equal *item)
|
|||
members follow in a wrong order they are swapped. This is performed
|
||||
again and again until we get all members in a right order.
|
||||
|
||||
@param cmp function to compare field item
|
||||
@param compare function to compare field item
|
||||
@param arg context extra parameter for the cmp function
|
||||
*/
|
||||
|
||||
void Item_equal::sort(Item_field_cmpfunc cmp, void *arg)
|
||||
void Item_equal::sort(Item_field_cmpfunc compare, void *arg)
|
||||
{
|
||||
bool swap;
|
||||
List_iterator<Item_field> it(fields);
|
||||
|
@ -5420,7 +5420,7 @@ void Item_equal::sort(Item_field_cmpfunc cmp, void *arg)
|
|||
while ((item2= it++))
|
||||
{
|
||||
Item_field **ref2= it.ref();
|
||||
if (cmp(item1, item2, arg) < 0)
|
||||
if (compare(item1, item2, arg) < 0)
|
||||
{
|
||||
Item_field *item= *ref1;
|
||||
*ref1= *ref2;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000-2003 MySQL AB
|
||||
/* Copyright (c) 2000, 2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -1616,7 +1616,7 @@ public:
|
|||
longlong val_int();
|
||||
const char *func_name() const { return "multiple equal"; }
|
||||
optimize_type select_optimize() const { return OPTIMIZE_EQUAL; }
|
||||
void sort(Item_field_cmpfunc cmp, void *arg);
|
||||
void sort(Item_field_cmpfunc compare, void *arg);
|
||||
friend class Item_equal_iterator;
|
||||
void fix_length_and_dec();
|
||||
bool fix_fields(THD *thd, Item **ref);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000-2003 MySQL AB
|
||||
/* Copyright (c) 2000, 2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -42,7 +42,7 @@
|
|||
class Create_native_func : public Create_func
|
||||
{
|
||||
public:
|
||||
virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list);
|
||||
virtual Item *create_func(THD *thd, LEX_STRING name, List<Item> *item_list);
|
||||
|
||||
/**
|
||||
Builder method, with no arguments.
|
||||
|
@ -69,7 +69,7 @@ protected:
|
|||
class Create_func_arg0 : public Create_func
|
||||
{
|
||||
public:
|
||||
virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list);
|
||||
virtual Item *create_func(THD *thd, LEX_STRING name, List<Item> *item_list);
|
||||
|
||||
/**
|
||||
Builder method, with no arguments.
|
||||
|
@ -93,7 +93,7 @@ protected:
|
|||
class Create_func_arg1 : public Create_func
|
||||
{
|
||||
public:
|
||||
virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list);
|
||||
virtual Item *create_func(THD *thd, LEX_STRING name, List<Item> *item_list);
|
||||
|
||||
/**
|
||||
Builder method, with one argument.
|
||||
|
@ -118,7 +118,7 @@ protected:
|
|||
class Create_func_arg2 : public Create_func
|
||||
{
|
||||
public:
|
||||
virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list);
|
||||
virtual Item *create_func(THD *thd, LEX_STRING name, List<Item> *item_list);
|
||||
|
||||
/**
|
||||
Builder method, with two arguments.
|
||||
|
@ -144,7 +144,7 @@ protected:
|
|||
class Create_func_arg3 : public Create_func
|
||||
{
|
||||
public:
|
||||
virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list);
|
||||
virtual Item *create_func(THD *thd, LEX_STRING name, List<Item> *item_list);
|
||||
|
||||
/**
|
||||
Builder method, with three arguments.
|
||||
|
@ -194,7 +194,7 @@ protected:
|
|||
class Create_func_no_geom : public Create_func
|
||||
{
|
||||
public:
|
||||
virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list);
|
||||
virtual Item *create_func(THD *thd, LEX_STRING name, List<Item> *item_list);
|
||||
|
||||
/** Singleton. */
|
||||
static Create_func_no_geom s_singleton;
|
||||
|
@ -2315,7 +2315,7 @@ static bool has_named_parameters(List<Item> *params)
|
|||
Create_func_no_geom Create_func_no_geom::s_singleton;
|
||||
|
||||
Item*
|
||||
Create_func_no_geom::create(THD * /* unused */,
|
||||
Create_func_no_geom::create_func(THD * /* unused */,
|
||||
LEX_STRING /* unused */,
|
||||
List<Item> * /* unused */)
|
||||
{
|
||||
|
@ -2328,7 +2328,7 @@ Create_func_no_geom::create(THD * /* unused */,
|
|||
|
||||
|
||||
Item*
|
||||
Create_qfunc::create(THD *thd, LEX_STRING name, List<Item> *item_list)
|
||||
Create_qfunc::create_func(THD *thd, LEX_STRING name, List<Item> *item_list)
|
||||
{
|
||||
LEX_STRING db;
|
||||
|
||||
|
@ -2361,7 +2361,7 @@ Create_qfunc::create(THD *thd, LEX_STRING name, List<Item> *item_list)
|
|||
Create_udf_func Create_udf_func::s_singleton;
|
||||
|
||||
Item*
|
||||
Create_udf_func::create(THD *thd, LEX_STRING name, List<Item> *item_list)
|
||||
Create_udf_func::create_func(THD *thd, LEX_STRING name, List<Item> *item_list)
|
||||
{
|
||||
udf_func *udf= find_udf(name.str, name.length);
|
||||
DBUG_ASSERT(udf);
|
||||
|
@ -2512,7 +2512,7 @@ Create_sp_func::create(THD *thd, LEX_STRING db, LEX_STRING name,
|
|||
|
||||
|
||||
Item*
|
||||
Create_native_func::create(THD *thd, LEX_STRING name, List<Item> *item_list)
|
||||
Create_native_func::create_func(THD *thd, LEX_STRING name, List<Item> *item_list)
|
||||
{
|
||||
if (has_named_parameters(item_list))
|
||||
{
|
||||
|
@ -2525,7 +2525,7 @@ Create_native_func::create(THD *thd, LEX_STRING name, List<Item> *item_list)
|
|||
|
||||
|
||||
Item*
|
||||
Create_func_arg0::create(THD *thd, LEX_STRING name, List<Item> *item_list)
|
||||
Create_func_arg0::create_func(THD *thd, LEX_STRING name, List<Item> *item_list)
|
||||
{
|
||||
int arg_count= 0;
|
||||
|
||||
|
@ -2543,7 +2543,7 @@ Create_func_arg0::create(THD *thd, LEX_STRING name, List<Item> *item_list)
|
|||
|
||||
|
||||
Item*
|
||||
Create_func_arg1::create(THD *thd, LEX_STRING name, List<Item> *item_list)
|
||||
Create_func_arg1::create_func(THD *thd, LEX_STRING name, List<Item> *item_list)
|
||||
{
|
||||
int arg_count= 0;
|
||||
|
||||
|
@ -2569,7 +2569,7 @@ Create_func_arg1::create(THD *thd, LEX_STRING name, List<Item> *item_list)
|
|||
|
||||
|
||||
Item*
|
||||
Create_func_arg2::create(THD *thd, LEX_STRING name, List<Item> *item_list)
|
||||
Create_func_arg2::create_func(THD *thd, LEX_STRING name, List<Item> *item_list)
|
||||
{
|
||||
int arg_count= 0;
|
||||
|
||||
|
@ -2597,7 +2597,7 @@ Create_func_arg2::create(THD *thd, LEX_STRING name, List<Item> *item_list)
|
|||
|
||||
|
||||
Item*
|
||||
Create_func_arg3::create(THD *thd, LEX_STRING name, List<Item> *item_list)
|
||||
Create_func_arg3::create_func(THD *thd, LEX_STRING name, List<Item> *item_list)
|
||||
{
|
||||
int arg_count= 0;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000-2006 MySQL AB
|
||||
/* Copyright (c) 2000, 2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -53,7 +53,7 @@ public:
|
|||
@param item_list The list of arguments to the function, can be NULL
|
||||
@return An item representing the parsed function call, or NULL
|
||||
*/
|
||||
virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list) = 0;
|
||||
virtual Item *create_func(THD *thd, LEX_STRING name, List<Item> *item_list) = 0;
|
||||
|
||||
protected:
|
||||
/** Constructor */
|
||||
|
@ -80,7 +80,7 @@ public:
|
|||
@param item_list The list of arguments to the function, can be NULL
|
||||
@return An item representing the parsed function call
|
||||
*/
|
||||
virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list);
|
||||
virtual Item *create_func(THD *thd, LEX_STRING name, List<Item> *item_list);
|
||||
|
||||
/**
|
||||
The builder create method, for qualified functions.
|
||||
|
@ -127,7 +127,7 @@ extern Create_qfunc * find_qualified_function_builder(THD *thd);
|
|||
class Create_udf_func : public Create_func
|
||||
{
|
||||
public:
|
||||
virtual Item *create(THD *thd, LEX_STRING name, List<Item> *item_list);
|
||||
virtual Item *create_func(THD *thd, LEX_STRING name, List<Item> *item_list);
|
||||
|
||||
/**
|
||||
The builder create method, for User Defined Functions.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000-2003 MySQL AB
|
||||
/* Copyright (c) 2000, 2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -647,7 +647,7 @@ Item_sum_hybrid::fix_fields(THD *thd, Item **ref)
|
|||
default:
|
||||
DBUG_ASSERT(0);
|
||||
};
|
||||
setup(args[0], NULL);
|
||||
setup_hybrid(args[0], NULL);
|
||||
/* MIN/MAX can return NULL for empty set indepedent of the used column */
|
||||
maybe_null= 1;
|
||||
unsigned_flag=item->unsigned_flag;
|
||||
|
@ -681,7 +681,7 @@ Item_sum_hybrid::fix_fields(THD *thd, Item **ref)
|
|||
of the original MIN/MAX object and it is saved in this object's cache.
|
||||
*/
|
||||
|
||||
void Item_sum_hybrid::setup(Item *item, Item *value_arg)
|
||||
void Item_sum_hybrid::setup_hybrid(Item *item, Item *value_arg)
|
||||
{
|
||||
value= Item_cache::get_cache(item);
|
||||
value->setup(item);
|
||||
|
@ -1651,7 +1651,7 @@ void Item_sum_hybrid::no_rows_in_result()
|
|||
Item *Item_sum_min::copy_or_same(THD* thd)
|
||||
{
|
||||
Item_sum_min *item= new (thd->mem_root) Item_sum_min(thd, this);
|
||||
item->setup(args[0], value);
|
||||
item->setup_hybrid(args[0], value);
|
||||
return item;
|
||||
}
|
||||
|
||||
|
@ -1674,7 +1674,7 @@ bool Item_sum_min::add()
|
|||
Item *Item_sum_max::copy_or_same(THD* thd)
|
||||
{
|
||||
Item_sum_max *item= new (thd->mem_root) Item_sum_max(thd, this);
|
||||
item->setup(args[0], value);
|
||||
item->setup_hybrid(args[0], value);
|
||||
return item;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000-2006 MySQL AB
|
||||
/* Copyright (c) 2000, 2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -353,7 +353,7 @@ public:
|
|||
*/
|
||||
void no_rows_in_result() { clear(); }
|
||||
|
||||
virtual bool setup(THD *thd) {return 0;}
|
||||
virtual bool setup(THD* thd) {return 0;}
|
||||
virtual void make_unique() {}
|
||||
Item *get_tmp_table_item(THD *thd);
|
||||
virtual Field *create_tmp_field(bool group, TABLE *table,
|
||||
|
@ -843,7 +843,7 @@ protected:
|
|||
was_values(item->was_values)
|
||||
{ }
|
||||
bool fix_fields(THD *, Item **);
|
||||
void setup(Item *item, Item *value_arg);
|
||||
void setup_hybrid(Item *item, Item *value_arg);
|
||||
void clear();
|
||||
double val_real();
|
||||
longlong val_int();
|
||||
|
|
|
@ -15,7 +15,7 @@ Old_rows_log_event::do_apply_event(Old_rows_log_event *ev, const Relay_log_info
|
|||
{
|
||||
DBUG_ENTER("Old_rows_log_event::do_apply_event(st_relay_log_info*)");
|
||||
int error= 0;
|
||||
THD *thd= ev->thd;
|
||||
THD *ev_thd= ev->thd;
|
||||
uchar const *row_start= ev->m_rows_buf;
|
||||
|
||||
/*
|
||||
|
@ -33,17 +33,17 @@ Old_rows_log_event::do_apply_event(Old_rows_log_event *ev, const Relay_log_info
|
|||
DBUG_ASSERT(ev->get_flags(Old_rows_log_event::STMT_END_F));
|
||||
|
||||
const_cast<Relay_log_info*>(rli)->clear_tables_to_lock();
|
||||
close_thread_tables(thd);
|
||||
thd->clear_error();
|
||||
close_thread_tables(ev_thd);
|
||||
ev_thd->clear_error();
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
/*
|
||||
'thd' has been set by exec_relay_log_event(), just before calling
|
||||
'ev_thd' has been set by exec_relay_log_event(), just before calling
|
||||
do_apply_event(). We still check here to prevent future coding
|
||||
errors.
|
||||
*/
|
||||
DBUG_ASSERT(rli->sql_thd == thd);
|
||||
DBUG_ASSERT(rli->sql_thd == ev_thd);
|
||||
|
||||
/*
|
||||
If there is no locks taken, this is the first binrow event seen
|
||||
|
@ -51,10 +51,10 @@ Old_rows_log_event::do_apply_event(Old_rows_log_event *ev, const Relay_log_info
|
|||
used in the transaction and proceed with execution of the actual
|
||||
event.
|
||||
*/
|
||||
if (!thd->lock)
|
||||
if (!ev_thd->lock)
|
||||
{
|
||||
/*
|
||||
Lock_tables() reads the contents of thd->lex, so they must be
|
||||
Lock_tables() reads the contents of ev_thd->lex, so they must be
|
||||
initialized.
|
||||
|
||||
We also call the mysql_reset_thd_for_next_command(), since this
|
||||
|
@ -62,24 +62,24 @@ Old_rows_log_event::do_apply_event(Old_rows_log_event *ev, const Relay_log_info
|
|||
call might reset the value of current_stmt_binlog_row_based, so
|
||||
we need to do any changes to that value after this function.
|
||||
*/
|
||||
lex_start(thd);
|
||||
mysql_reset_thd_for_next_command(thd);
|
||||
lex_start(ev_thd);
|
||||
mysql_reset_thd_for_next_command(ev_thd);
|
||||
|
||||
/*
|
||||
Check if the slave is set to use SBR. If so, it should switch
|
||||
to using RBR until the end of the "statement", i.e., next
|
||||
STMT_END_F or next error.
|
||||
*/
|
||||
if (!thd->current_stmt_binlog_row_based &&
|
||||
mysql_bin_log.is_open() && (thd->options & OPTION_BIN_LOG))
|
||||
if (!ev_thd->current_stmt_binlog_row_based &&
|
||||
mysql_bin_log.is_open() && (ev_thd->options & OPTION_BIN_LOG))
|
||||
{
|
||||
thd->set_current_stmt_binlog_row_based();
|
||||
ev_thd->set_current_stmt_binlog_row_based();
|
||||
}
|
||||
|
||||
if (simple_open_n_lock_tables(thd, rli->tables_to_lock))
|
||||
if (simple_open_n_lock_tables(ev_thd, rli->tables_to_lock))
|
||||
{
|
||||
uint actual_error= thd->main_da.sql_errno();
|
||||
if (thd->is_slave_error || thd->is_fatal_error)
|
||||
uint actual_error= ev_thd->main_da.sql_errno();
|
||||
if (ev_thd->is_slave_error || ev_thd->is_fatal_error)
|
||||
{
|
||||
/*
|
||||
Error reporting borrowed from Query_log_event with many excessive
|
||||
|
@ -87,9 +87,9 @@ Old_rows_log_event::do_apply_event(Old_rows_log_event *ev, const Relay_log_info
|
|||
*/
|
||||
rli->report(ERROR_LEVEL, actual_error,
|
||||
"Error '%s' on opening tables",
|
||||
(actual_error ? thd->main_da.message() :
|
||||
(actual_error ? ev_thd->main_da.message() :
|
||||
"unexpected success or fatal error"));
|
||||
thd->is_slave_error= 1;
|
||||
ev_thd->is_slave_error= 1;
|
||||
}
|
||||
const_cast<Relay_log_info*>(rli)->clear_tables_to_lock();
|
||||
DBUG_RETURN(actual_error);
|
||||
|
@ -109,9 +109,9 @@ Old_rows_log_event::do_apply_event(Old_rows_log_event *ev, const Relay_log_info
|
|||
{
|
||||
if (ptr->m_tabledef.compatible_with(rli, ptr->table))
|
||||
{
|
||||
mysql_unlock_tables(thd, thd->lock);
|
||||
thd->lock= 0;
|
||||
thd->is_slave_error= 1;
|
||||
mysql_unlock_tables(ev_thd, ev_thd->lock);
|
||||
ev_thd->lock= 0;
|
||||
ev_thd->is_slave_error= 1;
|
||||
const_cast<Relay_log_info*>(rli)->clear_tables_to_lock();
|
||||
DBUG_RETURN(Old_rows_log_event::ERR_BAD_TABLE_DEF);
|
||||
}
|
||||
|
@ -159,23 +159,23 @@ Old_rows_log_event::do_apply_event(Old_rows_log_event *ev, const Relay_log_info
|
|||
TIMESTAMP column to a table with one.
|
||||
So we call set_time(), like in SBR. Presently it changes nothing.
|
||||
*/
|
||||
thd->set_time((time_t)ev->when);
|
||||
ev_thd->set_time((time_t)ev->when);
|
||||
/*
|
||||
There are a few flags that are replicated with each row event.
|
||||
Make sure to set/clear them before executing the main body of
|
||||
the event.
|
||||
*/
|
||||
if (ev->get_flags(Old_rows_log_event::NO_FOREIGN_KEY_CHECKS_F))
|
||||
thd->options|= OPTION_NO_FOREIGN_KEY_CHECKS;
|
||||
ev_thd->options|= OPTION_NO_FOREIGN_KEY_CHECKS;
|
||||
else
|
||||
thd->options&= ~OPTION_NO_FOREIGN_KEY_CHECKS;
|
||||
ev_thd->options&= ~OPTION_NO_FOREIGN_KEY_CHECKS;
|
||||
|
||||
if (ev->get_flags(Old_rows_log_event::RELAXED_UNIQUE_CHECKS_F))
|
||||
thd->options|= OPTION_RELAXED_UNIQUE_CHECKS;
|
||||
ev_thd->options|= OPTION_RELAXED_UNIQUE_CHECKS;
|
||||
else
|
||||
thd->options&= ~OPTION_RELAXED_UNIQUE_CHECKS;
|
||||
ev_thd->options&= ~OPTION_RELAXED_UNIQUE_CHECKS;
|
||||
/* A small test to verify that objects have consistent types */
|
||||
DBUG_ASSERT(sizeof(thd->options) == sizeof(OPTION_RELAXED_UNIQUE_CHECKS));
|
||||
DBUG_ASSERT(sizeof(ev_thd->options) == sizeof(OPTION_RELAXED_UNIQUE_CHECKS));
|
||||
|
||||
/*
|
||||
Now we are in a statement and will stay in a statement until we
|
||||
|
@ -192,7 +192,7 @@ Old_rows_log_event::do_apply_event(Old_rows_log_event *ev, const Relay_log_info
|
|||
while (error == 0 && row_start < ev->m_rows_end)
|
||||
{
|
||||
uchar const *row_end= NULL;
|
||||
if ((error= do_prepare_row(thd, rli, table, row_start, &row_end)))
|
||||
if ((error= do_prepare_row(ev_thd, rli, table, row_start, &row_end)))
|
||||
break; // We should perform the after-row operation even in
|
||||
// the case of error
|
||||
|
||||
|
@ -202,7 +202,7 @@ Old_rows_log_event::do_apply_event(Old_rows_log_event *ev, const Relay_log_info
|
|||
/* in_use can have been set to NULL in close_tables_for_reopen */
|
||||
THD* old_thd= table->in_use;
|
||||
if (!table->in_use)
|
||||
table->in_use= thd;
|
||||
table->in_use= ev_thd;
|
||||
error= do_exec_row(table);
|
||||
table->in_use = old_thd;
|
||||
switch (error)
|
||||
|
@ -216,11 +216,11 @@ Old_rows_log_event::do_apply_event(Old_rows_log_event *ev, const Relay_log_info
|
|||
break;
|
||||
|
||||
default:
|
||||
rli->report(ERROR_LEVEL, thd->main_da.sql_errno(),
|
||||
rli->report(ERROR_LEVEL, ev_thd->main_da.sql_errno(),
|
||||
"Error in %s event: row application failed. %s",
|
||||
ev->get_type_str(),
|
||||
thd->is_error() ? thd->main_da.message() : "");
|
||||
thd->is_slave_error= 1;
|
||||
ev_thd->is_error() ? ev_thd->main_da.message() : "");
|
||||
ev_thd->is_slave_error= 1;
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -232,7 +232,7 @@ Old_rows_log_event::do_apply_event(Old_rows_log_event *ev, const Relay_log_info
|
|||
if (!ev->cache_stmt)
|
||||
{
|
||||
DBUG_PRINT("info", ("Marked that we need to keep log"));
|
||||
thd->options|= OPTION_KEEP_LOG;
|
||||
ev_thd->options|= OPTION_KEEP_LOG;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -245,12 +245,12 @@ Old_rows_log_event::do_apply_event(Old_rows_log_event *ev, const Relay_log_info
|
|||
|
||||
if (error)
|
||||
{ /* error has occured during the transaction */
|
||||
rli->report(ERROR_LEVEL, thd->main_da.sql_errno(),
|
||||
rli->report(ERROR_LEVEL, ev_thd->main_da.sql_errno(),
|
||||
"Error in %s event: error during transaction execution "
|
||||
"on table %s.%s. %s",
|
||||
ev->get_type_str(), table->s->db.str,
|
||||
table->s->table_name.str,
|
||||
thd->is_error() ? thd->main_da.message() : "");
|
||||
ev_thd->is_error() ? ev_thd->main_da.message() : "");
|
||||
|
||||
/*
|
||||
If one day we honour --skip-slave-errors in row-based replication, and
|
||||
|
@ -263,9 +263,9 @@ Old_rows_log_event::do_apply_event(Old_rows_log_event *ev, const Relay_log_info
|
|||
thread is certainly going to stop.
|
||||
rollback at the caller along with sbr.
|
||||
*/
|
||||
thd->reset_current_stmt_binlog_row_based();
|
||||
const_cast<Relay_log_info*>(rli)->cleanup_context(thd, error);
|
||||
thd->is_slave_error= 1;
|
||||
ev_thd->reset_current_stmt_binlog_row_based();
|
||||
const_cast<Relay_log_info*>(rli)->cleanup_context(ev_thd, error);
|
||||
ev_thd->is_slave_error= 1;
|
||||
DBUG_RETURN(error);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000-2003 MySQL AB
|
||||
/* Copyright (c) 2000, 2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -525,9 +525,9 @@ void Protocol::init(THD *thd_arg)
|
|||
for the error.
|
||||
*/
|
||||
|
||||
void Protocol::end_partial_result_set(THD *thd)
|
||||
void Protocol::end_partial_result_set(THD *thd_arg)
|
||||
{
|
||||
net_send_eof(thd, thd->server_status, 0 /* no warnings, we're inside SP */);
|
||||
net_send_eof(thd_arg, thd_arg->server_status, 0 /* no warnings, we're inside SP */);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2007 MySQL AB
|
||||
/* Copyright (c) 2007, 2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -485,7 +485,7 @@ void PROFILING::set_query_source(char *query_source_arg, uint query_length_arg)
|
|||
There are two ways to get to this function: Selecting from the information
|
||||
schema, and a SHOW command.
|
||||
*/
|
||||
int PROFILING::fill_statistics_info(THD *thd, TABLE_LIST *tables, Item *cond)
|
||||
int PROFILING::fill_statistics_info(THD *thd_arg, TABLE_LIST *tables, Item *cond)
|
||||
{
|
||||
DBUG_ENTER("PROFILING::fill_statistics_info");
|
||||
TABLE *table= tables->table;
|
||||
|
@ -520,7 +520,7 @@ int PROFILING::fill_statistics_info(THD *thd, TABLE_LIST *tables, Item *cond)
|
|||
/* Skip the first. We count spans of fence, not fence-posts. */
|
||||
if (previous == NULL) continue;
|
||||
|
||||
if (thd->lex->sql_command == SQLCOM_SHOW_PROFILE)
|
||||
if (thd_arg->lex->sql_command == SQLCOM_SHOW_PROFILE)
|
||||
{
|
||||
/*
|
||||
We got here via a SHOW command. That means that we stored
|
||||
|
@ -533,14 +533,14 @@ int PROFILING::fill_statistics_info(THD *thd, TABLE_LIST *tables, Item *cond)
|
|||
struct where and having conditions at the SQL layer, then this
|
||||
condition should be ripped out.
|
||||
*/
|
||||
if (thd->lex->profile_query_id == 0) /* 0 == show final query */
|
||||
if (thd_arg->lex->profile_query_id == 0) /* 0 == show final query */
|
||||
{
|
||||
if (query != last)
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (thd->lex->profile_query_id != query->profiling_query_id)
|
||||
if (thd_arg->lex->profile_query_id != query->profiling_query_id)
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
@ -661,7 +661,7 @@ int PROFILING::fill_statistics_info(THD *thd, TABLE_LIST *tables, Item *cond)
|
|||
table->field[17]->set_notnull();
|
||||
}
|
||||
|
||||
if (schema_table_store_record(thd, table))
|
||||
if (schema_table_store_record(thd_arg, table))
|
||||
DBUG_RETURN(1);
|
||||
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
|
||||
/* Copyright (c) 2000, 2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -5845,7 +5845,7 @@ store_val_in_field(Field *field, Item *item, enum_check_fields check_flag)
|
|||
@retval TRUE error occurred
|
||||
*/
|
||||
bool
|
||||
JOIN::make_simple_join(JOIN *parent, TABLE *tmp_table)
|
||||
JOIN::make_simple_join(JOIN *parent, TABLE *temp_table)
|
||||
{
|
||||
DBUG_ENTER("JOIN::make_simple_join");
|
||||
|
||||
|
@ -5858,7 +5858,7 @@ JOIN::make_simple_join(JOIN *parent, TABLE *tmp_table)
|
|||
DBUG_RETURN(TRUE); /* purecov: inspected */
|
||||
|
||||
join_tab= parent->join_tab_reexec;
|
||||
table= &parent->table_reexec[0]; parent->table_reexec[0]= tmp_table;
|
||||
table= &parent->table_reexec[0]; parent->table_reexec[0]= temp_table;
|
||||
tables= 1;
|
||||
const_tables= 0;
|
||||
const_table_map= 0;
|
||||
|
@ -5878,7 +5878,7 @@ JOIN::make_simple_join(JOIN *parent, TABLE *tmp_table)
|
|||
do_send_rows= row_limit ? 1 : 0;
|
||||
|
||||
join_tab->cache.buff=0; /* No caching */
|
||||
join_tab->table=tmp_table;
|
||||
join_tab->table=temp_table;
|
||||
join_tab->select=0;
|
||||
join_tab->select_cond=0;
|
||||
join_tab->quick=0;
|
||||
|
@ -5895,8 +5895,8 @@ JOIN::make_simple_join(JOIN *parent, TABLE *tmp_table)
|
|||
join_tab->join= this;
|
||||
join_tab->ref.key_parts= 0;
|
||||
bzero((char*) &join_tab->read_record,sizeof(join_tab->read_record));
|
||||
tmp_table->status=0;
|
||||
tmp_table->null_row=0;
|
||||
temp_table->status=0;
|
||||
temp_table->null_row=0;
|
||||
DBUG_RETURN(FALSE);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
|
||||
/* Copyright (c) 2000, 2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -8013,7 +8013,7 @@ function_call_generic:
|
|||
builder= find_native_function_builder(thd, $1);
|
||||
if (builder)
|
||||
{
|
||||
item= builder->create(thd, $1, $4);
|
||||
item= builder->create_func(thd, $1, $4);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -8035,7 +8035,7 @@ function_call_generic:
|
|||
{
|
||||
builder= find_qualified_function_builder(thd);
|
||||
DBUG_ASSERT(builder);
|
||||
item= builder->create(thd, $1, $4);
|
||||
item= builder->create_func(thd, $1, $4);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2003 MySQL AB
|
||||
/* Copyright (c) 2003, 2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -155,7 +155,8 @@ public:
|
|||
/** @brief
|
||||
This method will never be called if you do not implement indexes.
|
||||
*/
|
||||
virtual double read_time(ha_rows rows) { return (double) rows / 20.0+1; }
|
||||
virtual double read_time(uint, uint, ha_rows rows)
|
||||
{ return (double) rows / 20.0+1; }
|
||||
|
||||
/*
|
||||
Everything below are methods that we implement in ha_example.cc.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2004 MySQL AB
|
||||
/* Copyright (c) 2004, 2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -1253,7 +1253,7 @@ bool ha_federated::create_where_from_key(String *to,
|
|||
const key_range *start_key,
|
||||
const key_range *end_key,
|
||||
bool from_records_in_range,
|
||||
bool eq_range)
|
||||
bool eq_range_arg)
|
||||
{
|
||||
bool both_not_null=
|
||||
(start_key != NULL && end_key != NULL) ? TRUE : FALSE;
|
||||
|
@ -1360,7 +1360,7 @@ bool ha_federated::create_where_from_key(String *to,
|
|||
}
|
||||
break;
|
||||
case HA_READ_AFTER_KEY:
|
||||
if (eq_range)
|
||||
if (eq_range_arg)
|
||||
{
|
||||
if (tmp.append("1=1")) // Dummy
|
||||
goto err;
|
||||
|
@ -3208,14 +3208,14 @@ bool ha_federated::get_error_message(int error, String* buf)
|
|||
@details Call @c mysql_store_result() to save a result set then
|
||||
append it to the stored results array.
|
||||
|
||||
@param[in] mysql MySLQ connection structure.
|
||||
@param[in] mysql_arg MySLQ connection structure.
|
||||
|
||||
@return Stored result set (MYSQL_RES object).
|
||||
*/
|
||||
|
||||
MYSQL_RES *ha_federated::store_result(MYSQL *mysql)
|
||||
MYSQL_RES *ha_federated::store_result(MYSQL *mysql_arg)
|
||||
{
|
||||
MYSQL_RES *result= mysql_store_result(mysql);
|
||||
MYSQL_RES *result= mysql_store_result(mysql_arg);
|
||||
DBUG_ENTER("ha_federated::store_result");
|
||||
if (result)
|
||||
{
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2000-2006 MySQL AB
|
||||
/* Copyright (c) 2000, 2010 Oracle and/or its affiliates. All rights reserved.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -427,24 +427,24 @@ static MI_INFO *myisammrg_attach_children_callback(void *callback_param)
|
|||
@detail This function initializes the MERGE storage engine structures
|
||||
and adds a child list of TABLE_LIST to the parent TABLE.
|
||||
|
||||
@param[in] name MERGE table path name
|
||||
@param[in] mode read/write mode, unused
|
||||
@param[in] test_if_locked open flags
|
||||
@param[in] name MERGE table path name
|
||||
@param[in] mode read/write mode, unused
|
||||
@param[in] test_if_locked_arg open flags
|
||||
|
||||
@return status
|
||||
@retval 0 OK
|
||||
@retval -1 Error, my_errno gives reason
|
||||
@retval 0 OK
|
||||
@retval -1 Error, my_errno gives reason
|
||||
*/
|
||||
|
||||
int ha_myisammrg::open(const char *name, int mode __attribute__((unused)),
|
||||
uint test_if_locked)
|
||||
uint test_if_locked_arg)
|
||||
{
|
||||
DBUG_ENTER("ha_myisammrg::open");
|
||||
DBUG_PRINT("myrg", ("name: '%s' table: 0x%lx", name, (long) table));
|
||||
DBUG_PRINT("myrg", ("test_if_locked: %u", test_if_locked));
|
||||
DBUG_PRINT("myrg", ("test_if_locked_arg: %u", test_if_locked_arg));
|
||||
|
||||
/* Save for later use. */
|
||||
this->test_if_locked= test_if_locked;
|
||||
test_if_locked= test_if_locked_arg;
|
||||
|
||||
/* retrieve children table list. */
|
||||
my_errno= 0;
|
||||
|
|
Loading…
Reference in a new issue