From af83d06d687b96d5e9b886d8b859ba352ec731d0 Mon Sep 17 00:00:00 2001 From: Nikita Malyavin Date: Thu, 26 Nov 2020 20:59:44 +1000 Subject: [PATCH] Copy_field: add const to arguments --- sql/field.h | 34 +++++++++--------- sql/field_conv.cc | 78 ++++++++++++++++++++--------------------- sql/sql_type_fixedbin.h | 2 +- 3 files changed, 57 insertions(+), 57 deletions(-) diff --git a/sql/field.h b/sql/field.h index e6f66280ed1..94f1d977cdd 100644 --- a/sql/field.h +++ b/sql/field.h @@ -757,15 +757,15 @@ protected: } void error_generated_column_function_is_not_allowed(THD *thd, bool error) const; - static void do_field_eq(Copy_field *copy); - static void do_field_int(Copy_field *copy); - static void do_field_real(Copy_field *copy); - static void do_field_string(Copy_field *copy); - static void do_field_date(Copy_field *copy); - static void do_field_temporal(Copy_field *copy, date_mode_t fuzzydate); - static void do_field_datetime(Copy_field *copy); - static void do_field_timestamp(Copy_field *copy); - static void do_field_decimal(Copy_field *copy); + static void do_field_eq(const Copy_field *copy); + static void do_field_int(const Copy_field *copy); + static void do_field_real(const Copy_field *copy); + static void do_field_string(const Copy_field *copy); + static void do_field_date(const Copy_field *copy); + static void do_field_temporal(const Copy_field *copy, date_mode_t fuzzydate); + static void do_field_datetime(const Copy_field *copy); + static void do_field_timestamp(const Copy_field *copy); + static void do_field_decimal(const Copy_field *copy); public: static void *operator new(size_t size, MEM_ROOT *mem_root) throw () { return alloc_root(mem_root, size); } @@ -914,7 +914,7 @@ public: Convenience definition of a copy function returned by Field::get_copy_func() */ - typedef void Copy_func(Copy_field*); + typedef void Copy_func(const Copy_field*); virtual Copy_func *get_copy_func(const Field *from) const= 0; virtual Copy_func *get_copy_func_to(const Field *to) const { @@ -3572,7 +3572,7 @@ protected: void store_TIME(const Time &t) { return store_TIME(t.get_mysql_time()); } int store_TIME_with_warning(const Time *ltime, const ErrConv *str, int warn); bool check_zero_in_date_with_warn(date_mode_t fuzzydate); - static void do_field_time(Copy_field *copy); + static void do_field_time(const Copy_field *copy); public: Field_time(uchar *ptr_arg, uint length_arg, uchar *null_ptr_arg, uchar null_bit_arg, enum utype unireg_check_arg, @@ -4373,8 +4373,8 @@ protected: */ String read_value; - static void do_copy_blob(Copy_field *copy); - static void do_conv_blob(Copy_field *copy); + static void do_copy_blob(const Copy_field *copy); + static void do_conv_blob(const Copy_field *copy); uint get_key_image_itRAW(const uchar *ptr_arg, uchar *buff, uint length) const; public: Field_blob(uchar *ptr_arg, uchar *null_ptr_arg, uchar null_bit_arg, @@ -4730,7 +4730,7 @@ private: class Field_enum :public Field_str { - static void do_field_enum(Copy_field *copy_field); + static void do_field_enum(const Copy_field *copy_field); longlong val_int(const uchar *) const; bool can_optimize_range_or_keypart_ref(const Item_bool_func *cond, const Item *item) const; @@ -5854,14 +5854,14 @@ public: */ uint from_length,to_length; Field *from_field,*to_field; - String tmp; // For items + mutable String tmp; // For items Copy_field() = default; ~Copy_field() = default; void set(Field *to,Field *from,bool save); // Field to field void set(uchar *to,Field *from); // Field to string - void (*do_copy)(Copy_field *); - void (*do_copy2)(Copy_field *); // Used to handle null values + void (*do_copy)(const Copy_field *); + void (*do_copy2)(const Copy_field *); // Used to handle null values }; diff --git a/sql/field_conv.cc b/sql/field_conv.cc index f7e303be6d3..19ce41f0c92 100644 --- a/sql/field_conv.cc +++ b/sql/field_conv.cc @@ -30,30 +30,30 @@ #include "sql_class.h" // THD #include -void Field::do_field_eq(Copy_field *copy) +void Field::do_field_eq(const Copy_field *copy) { memcpy(copy->to_ptr,copy->from_ptr,copy->from_length); } -static void do_field_1(Copy_field *copy) +static void do_field_1(const Copy_field *copy) { copy->to_ptr[0]=copy->from_ptr[0]; } -static void do_field_2(Copy_field *copy) +static void do_field_2(const Copy_field *copy) { copy->to_ptr[0]=copy->from_ptr[0]; copy->to_ptr[1]=copy->from_ptr[1]; } -static void do_field_3(Copy_field *copy) +static void do_field_3(const Copy_field *copy) { copy->to_ptr[0]=copy->from_ptr[0]; copy->to_ptr[1]=copy->from_ptr[1]; copy->to_ptr[2]=copy->from_ptr[2]; } -static void do_field_4(Copy_field *copy) +static void do_field_4(const Copy_field *copy) { copy->to_ptr[0]=copy->from_ptr[0]; copy->to_ptr[1]=copy->from_ptr[1]; @@ -61,7 +61,7 @@ static void do_field_4(Copy_field *copy) copy->to_ptr[3]=copy->from_ptr[3]; } -static void do_field_6(Copy_field *copy) +static void do_field_6(const Copy_field *copy) { // For blob field copy->to_ptr[0]=copy->from_ptr[0]; copy->to_ptr[1]=copy->from_ptr[1]; @@ -71,7 +71,7 @@ static void do_field_6(Copy_field *copy) copy->to_ptr[5]=copy->from_ptr[5]; } -static void do_field_8(Copy_field *copy) +static void do_field_8(const Copy_field *copy) { copy->to_ptr[0]=copy->from_ptr[0]; copy->to_ptr[1]=copy->from_ptr[1]; @@ -84,7 +84,7 @@ static void do_field_8(Copy_field *copy) } -static void do_field_to_null_str(Copy_field *copy) +static void do_field_to_null_str(const Copy_field *copy) { if (*copy->from_null_ptr & copy->from_bit) { @@ -99,7 +99,7 @@ static void do_field_to_null_str(Copy_field *copy) } -static void do_outer_field_to_null_str(Copy_field *copy) +static void do_outer_field_to_null_str(const Copy_field *copy) { if (*copy->null_row || (copy->from_null_ptr && (*copy->from_null_ptr & copy->from_bit))) @@ -220,7 +220,7 @@ set_field_to_null_with_conversions(Field *field, bool no_conversions) } -static void do_skip(Copy_field *copy __attribute__((unused))) +static void do_skip(const Copy_field *copy __attribute__((unused))) { } @@ -233,7 +233,7 @@ static void do_skip(Copy_field *copy __attribute__((unused))) set to NULLs, so we don't need to check table->null_row here. */ -static void do_copy_null(Copy_field *copy) +static void do_copy_null(const Copy_field *copy) { if (*copy->from_null_ptr & copy->from_bit) { @@ -252,7 +252,7 @@ static void do_copy_null(Copy_field *copy) field) */ -static void do_outer_field_null(Copy_field *copy) +static void do_outer_field_null(const Copy_field *copy) { if (*copy->null_row || (copy->from_null_ptr && (*copy->from_null_ptr & copy->from_bit))) @@ -271,7 +271,7 @@ static void do_outer_field_null(Copy_field *copy) Copy: (not-NULL field in table that can be NULL-complemented) -> (not-NULL field) */ -static void do_copy_nullable_row_to_notnull(Copy_field *copy) +static void do_copy_nullable_row_to_notnull(const Copy_field *copy) { if (*copy->null_row || (copy->from_null_ptr && (*copy->from_null_ptr & copy->from_bit))) @@ -288,7 +288,7 @@ static void do_copy_nullable_row_to_notnull(Copy_field *copy) } /* Copy: (NULL-able field) -> (not NULL-able field) */ -static void do_copy_not_null(Copy_field *copy) +static void do_copy_not_null(const Copy_field *copy) { if (*copy->from_null_ptr & copy->from_bit) { @@ -302,7 +302,7 @@ static void do_copy_not_null(Copy_field *copy) /* Copy: (non-NULLable field) -> (NULLable field) */ -static void do_copy_maybe_null(Copy_field *copy) +static void do_copy_maybe_null(const Copy_field *copy) { *copy->to_null_ptr&= ~copy->to_bit; (copy->do_copy2)(copy); @@ -310,7 +310,7 @@ static void do_copy_maybe_null(Copy_field *copy) /* timestamp and next_number has special handling in case of NULL values */ -static void do_copy_timestamp(Copy_field *copy) +static void do_copy_timestamp(const Copy_field *copy) { if (*copy->from_null_ptr & copy->from_bit) { @@ -322,7 +322,7 @@ static void do_copy_timestamp(Copy_field *copy) } -static void do_copy_next_number(Copy_field *copy) +static void do_copy_next_number(const Copy_field *copy) { if (*copy->from_null_ptr & copy->from_bit) { @@ -335,12 +335,12 @@ static void do_copy_next_number(Copy_field *copy) } -void Field_blob::do_copy_blob(Copy_field *copy) +void Field_blob::do_copy_blob(const Copy_field *copy) { ((Field_blob*) copy->to_field)->copy_value(((Field_blob*) copy->from_field)); } -void Field_blob::do_conv_blob(Copy_field *copy) +void Field_blob::do_conv_blob(const Copy_field *copy) { copy->from_field->val_str(©->tmp); ((Field_blob *) copy->to_field)->store(copy->tmp.ptr(), @@ -350,7 +350,7 @@ void Field_blob::do_conv_blob(Copy_field *copy) /** Save blob in copy->tmp for GROUP BY. */ -static void do_save_blob(Copy_field *copy) +static void do_save_blob(const Copy_field *copy) { char buff[MAX_FIELD_WIDTH]; String res(buff,sizeof(buff),copy->tmp.charset()); @@ -362,7 +362,7 @@ static void do_save_blob(Copy_field *copy) } -void Field::do_field_string(Copy_field *copy) +void Field::do_field_string(const Copy_field *copy) { char buff[MAX_FIELD_WIDTH]; String res(buff, sizeof(buff), copy->from_field->charset()); @@ -373,7 +373,7 @@ void Field::do_field_string(Copy_field *copy) } -void Field_enum::do_field_enum(Copy_field *copy) +void Field_enum::do_field_enum(const Copy_field *copy) { if (copy->from_field->val_int() == 0) ((Field_enum *) copy->to_field)->store_type((ulonglong) 0); @@ -382,7 +382,7 @@ void Field_enum::do_field_enum(Copy_field *copy) } -static void do_field_varbinary_pre50(Copy_field *copy) +static void do_field_varbinary_pre50(const Copy_field *copy) { char buff[MAX_FIELD_WIDTH]; copy->tmp.set_buffer_if_not_allocated(buff,sizeof(buff),copy->tmp.charset()); @@ -397,35 +397,35 @@ static void do_field_varbinary_pre50(Copy_field *copy) } -void Field::do_field_int(Copy_field *copy) +void Field::do_field_int(const Copy_field *copy) { longlong value= copy->from_field->val_int(); copy->to_field->store(value, MY_TEST(copy->from_field->flags & UNSIGNED_FLAG)); } -void Field::do_field_real(Copy_field *copy) +void Field::do_field_real(const Copy_field *copy) { double value=copy->from_field->val_real(); copy->to_field->store(value); } -void Field::do_field_decimal(Copy_field *copy) +void Field::do_field_decimal(const Copy_field *copy) { my_decimal value(copy->from_field); copy->to_field->store_decimal(&value); } -void Field::do_field_timestamp(Copy_field *copy) +void Field::do_field_timestamp(const Copy_field *copy) { // XXX why couldn't we do it everywhere? copy->from_field->save_in_field(copy->to_field); } -void Field::do_field_temporal(Copy_field *copy, date_mode_t fuzzydate) +void Field::do_field_temporal(const Copy_field *copy, date_mode_t fuzzydate) { MYSQL_TIME ltime; // TODO: we now need to check result @@ -436,19 +436,19 @@ void Field::do_field_temporal(Copy_field *copy, date_mode_t fuzzydate) } -void Field::do_field_datetime(Copy_field *copy) +void Field::do_field_datetime(const Copy_field *copy) { return do_field_temporal(copy, Datetime::Options(TIME_CONV_NONE, current_thd)); } -void Field::do_field_date(Copy_field *copy) +void Field::do_field_date(const Copy_field *copy) { return do_field_temporal(copy, Date::Options(TIME_CONV_NONE)); } -void Field_time::do_field_time(Copy_field *copy) +void Field_time::do_field_time(const Copy_field *copy) { return do_field_temporal(copy, Time::Options(current_thd)); } @@ -459,7 +459,7 @@ void Field_time::do_field_time(Copy_field *copy) from string. */ -static void do_cut_string(Copy_field *copy) +static void do_cut_string(const Copy_field *copy) { CHARSET_INFO *cs= copy->from_field->charset(); memcpy(copy->to_ptr,copy->from_ptr,copy->to_length); @@ -480,7 +480,7 @@ static void do_cut_string(Copy_field *copy) from string. */ -static void do_cut_string_complex(Copy_field *copy) +static void do_cut_string_complex(const Copy_field *copy) { // Shorter string field CHARSET_INFO *cs= copy->from_field->charset(); const uchar *from_end= copy->from_ptr + copy->from_length; @@ -512,7 +512,7 @@ static void do_cut_string_complex(Copy_field *copy) -static void do_expand_binary(Copy_field *copy) +static void do_expand_binary(const Copy_field *copy) { CHARSET_INFO *cs= copy->from_field->charset(); memcpy(copy->to_ptr,copy->from_ptr,copy->from_length); @@ -522,7 +522,7 @@ static void do_expand_binary(Copy_field *copy) -static void do_expand_string(Copy_field *copy) +static void do_expand_string(const Copy_field *copy) { CHARSET_INFO *cs= copy->from_field->charset(); memcpy(copy->to_ptr,copy->from_ptr,copy->from_length); @@ -531,7 +531,7 @@ static void do_expand_string(Copy_field *copy) } -static void do_varstring1(Copy_field *copy) +static void do_varstring1(const Copy_field *copy) { uint length= (uint) *(uchar*) copy->from_ptr; if (length > copy->to_length- 1) @@ -548,7 +548,7 @@ static void do_varstring1(Copy_field *copy) } -static void do_varstring1_mb(Copy_field *copy) +static void do_varstring1_mb(const Copy_field *copy) { CHARSET_INFO *cs= copy->from_field->charset(); uint from_length= (uint) *(uchar*) copy->from_ptr; @@ -566,7 +566,7 @@ static void do_varstring1_mb(Copy_field *copy) } -static void do_varstring2(Copy_field *copy) +static void do_varstring2(const Copy_field *copy) { uint length=uint2korr(copy->from_ptr); if (length > copy->to_length- HA_KEY_BLOB_LENGTH) @@ -584,7 +584,7 @@ static void do_varstring2(Copy_field *copy) } -static void do_varstring2_mb(Copy_field *copy) +static void do_varstring2_mb(const Copy_field *copy) { CHARSET_INFO *cs= copy->from_field->charset(); uint char_length= (copy->to_length - HA_KEY_BLOB_LENGTH) / cs->mbmaxlen; diff --git a/sql/sql_type_fixedbin.h b/sql/sql_type_fixedbin.h index 2a2cc1e1ff6..271c745fe1d 100644 --- a/sql/sql_type_fixedbin.h +++ b/sql/sql_type_fixedbin.h @@ -567,7 +567,7 @@ public: return do_field_string; } - static void do_field_fbt_native_to_binary(Copy_field *copy) + static void do_field_fbt_native_to_binary(const Copy_field *copy) { NativeBuffer res; copy->from_field->val_native(&res);