summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
Diffstat (limited to 'sql')
-rw-r--r--sql/CMakeLists.txt1
-rw-r--r--sql/debug_sync.cc4
-rw-r--r--sql/discover.cc2
-rw-r--r--sql/event_data_objects.cc2
-rw-r--r--sql/field.cc33
-rw-r--r--sql/field.h4
-rw-r--r--sql/filesort.cc5
-rw-r--r--sql/ha_partition.cc8
-rw-r--r--sql/handler.cc8
-rw-r--r--sql/handler.h6
-rw-r--r--sql/item.cc2
-rw-r--r--sql/item.h4
-rw-r--r--sql/item_cmpfunc.cc2
-rw-r--r--sql/item_create.cc15
-rw-r--r--sql/item_func.cc4
-rw-r--r--sql/item_inetfunc.cc6
-rw-r--r--sql/item_jsonfunc.cc20
-rw-r--r--sql/item_strfunc.cc12
-rw-r--r--sql/item_strfunc.h4
-rw-r--r--sql/item_timefunc.cc8
-rw-r--r--sql/key.cc2
-rw-r--r--sql/log.cc6
-rw-r--r--sql/log_event.cc36
-rw-r--r--sql/log_event.h2
-rw-r--r--sql/log_event_old.cc4
-rw-r--r--sql/mf_iocache_encr.cc6
-rw-r--r--sql/mysqld.cc5
-rw-r--r--sql/parse_file.cc2
-rw-r--r--sql/rpl_filter.cc2
-rw-r--r--sql/rpl_parallel.cc2
-rw-r--r--sql/rpl_record.cc4
-rw-r--r--sql/rpl_rli.cc8
-rw-r--r--sql/session_tracker.cc8
-rw-r--r--sql/slave.cc8
-rw-r--r--sql/sp_pcontext.h8
-rw-r--r--sql/sql_acl.cc27
-rw-r--r--sql/sql_audit.h87
-rw-r--r--sql/sql_bootstrap.cc4
-rw-r--r--sql/sql_class.cc4
-rw-r--r--sql/sql_class.h4
-rw-r--r--sql/sql_error.h5
-rw-r--r--sql/sql_join_cache.cc6
-rw-r--r--sql/sql_lex.cc2
-rw-r--r--sql/sql_parse.cc10
-rw-r--r--sql/sql_plugin.cc6
-rw-r--r--sql/sql_select.cc2
-rw-r--r--sql/sql_string.cc35
-rw-r--r--sql/sql_string.h38
-rw-r--r--sql/sql_time.h2
-rw-r--r--sql/sql_window.cc2
-rw-r--r--sql/sql_yacc.yy2
-rw-r--r--sql/sys_vars.cc6
-rw-r--r--sql/sys_vars.ic12
-rw-r--r--sql/table.cc2
-rw-r--r--sql/table_cache.cc4
-rw-r--r--sql/threadpool_generic.cc9
-rw-r--r--sql/udf_example.c2
-rw-r--r--sql/unireg.cc4
58 files changed, 283 insertions, 245 deletions
diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
index f856c313ce8..d929f4c047f 100644
--- a/sql/CMakeLists.txt
+++ b/sql/CMakeLists.txt
@@ -240,6 +240,7 @@ IF(MSVC AND NOT WITHOUT_DYNAMIC_PLUGINS)
SET(CMAKE_CONFIGURABLE_FILE_CONTENT "
IF ((mysqld_lib.def IS_NEWER_THAN mysqld_lib.lib) OR
(mysqld_lib.def IS_NEWER_THAN mysqld_lib.exp))
+ FILE(REMOVE mysqld_lib.lib mysqld_lib.exp)
SET(ENV{VS_UNICODE_OUTPUT})
EXECUTE_PROCESS (
COMMAND \"${CMAKE_LINKER}\" /lib /NAME:mysqld.exe \"/DEF:${MYSQLD_DEF}\" /MACHINE:${_PLATFORM}
diff --git a/sql/debug_sync.cc b/sql/debug_sync.cc
index 4a4a93757ef..6b09978d128 100644
--- a/sql/debug_sync.cc
+++ b/sql/debug_sync.cc
@@ -549,7 +549,7 @@ static void debug_sync_reset(THD *thd)
static void debug_sync_remove_action(st_debug_sync_control *ds_control,
st_debug_sync_action *action)
{
- uint dsp_idx= action - ds_control->ds_action;
+ uint dsp_idx= (uint)(action - ds_control->ds_action);
DBUG_ENTER("debug_sync_remove_action");
DBUG_ASSERT(ds_control);
DBUG_ASSERT(ds_control == current_thd->debug_sync_control);
@@ -871,7 +871,7 @@ static char *debug_sync_token(char **token_p, uint *token_length_p,
ptr, ptrend, MY_SEQ_NONSPACES);
/* Get token length. */
- *token_length_p= ptr - *token_p;
+ *token_length_p= (uint)(ptr - *token_p);
/* If necessary, terminate token. */
if (*ptr)
diff --git a/sql/discover.cc b/sql/discover.cc
index d8bf6ca79c5..62a0084e2e7 100644
--- a/sql/discover.cc
+++ b/sql/discover.cc
@@ -229,7 +229,7 @@ int extension_based_table_discovery(MY_DIR *dirp, const char *ext_meta,
cur++;
}
advance(from, to, cur, skip);
- dirp->number_of_files= to - dirp->dir_entry;
+ dirp->number_of_files= (uint)(to - dirp->dir_entry);
return 0;
}
diff --git a/sql/event_data_objects.cc b/sql/event_data_objects.cc
index 86866edffd9..e494b4a429b 100644
--- a/sql/event_data_objects.cc
+++ b/sql/event_data_objects.cc
@@ -561,7 +561,7 @@ Event_queue_element::load_from_row(THD *thd, TABLE *table)
}
if ((ptr= get_field(&mem_root, table->field[ET_FIELD_ORIGINATOR])) == NullS)
DBUG_RETURN(TRUE);
- originator = table->field[ET_FIELD_ORIGINATOR]->val_int();
+ originator = (uint32) table->field[ET_FIELD_ORIGINATOR]->val_int();
/* ToDo : Andrey . Find a way not to allocate ptr on event_mem_root */
if ((ptr= get_field(&mem_root,
diff --git a/sql/field.cc b/sql/field.cc
index 50c372bf53d..3a16f408fa3 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -5595,7 +5595,7 @@ int Field_temporal_with_date::store(double nr)
ErrConvDouble str(nr);
longlong tmp= double_to_datetime(nr, &ltime,
- sql_mode_for_dates(thd), &error);
+ (uint) sql_mode_for_dates(thd), &error);
return store_TIME_with_warning(&ltime, &str, error, tmp != -1);
}
@@ -7949,7 +7949,7 @@ int Field_blob::store(const char *from,uint length,CHARSET_INFO *cs)
DBUG_ASSERT(length <= max_data_length());
new_length= length;
- copy_length= table->in_use->variables.group_concat_max_len;
+ copy_length= (uint)MY_MIN(UINT_MAX,table->in_use->variables.group_concat_max_len);
if (new_length > copy_length)
{
new_length= Well_formed_prefix(cs,
@@ -8496,7 +8496,7 @@ uint gis_field_options_read(const uchar *buf, uint buf_len,
}
end_of_record:
- return cbuf - buf;
+ return (uint)(cbuf - buf);
}
@@ -9750,8 +9750,9 @@ void Column_definition::create_length_to_internal_length(void)
case MYSQL_TYPE_STRING:
case MYSQL_TYPE_VARCHAR:
length*= charset->mbmaxlen;
- key_length= length;
- pack_length= calc_pack_length(sql_type, length);
+ DBUG_ASSERT(length <= UINT_MAX32);
+ key_length= (uint32)length;
+ pack_length= calc_pack_length(sql_type, key_length);
break;
case MYSQL_TYPE_ENUM:
case MYSQL_TYPE_SET:
@@ -9766,21 +9767,21 @@ void Column_definition::create_length_to_internal_length(void)
}
else
{
- pack_length= length / 8;
+ pack_length= (uint)(length / 8);
/* We need one extra byte to store the bits we save among the null bits */
key_length= pack_length + MY_TEST(length & 7);
}
break;
case MYSQL_TYPE_NEWDECIMAL:
key_length= pack_length=
- my_decimal_get_binary_size(my_decimal_length_to_precision(length,
+ my_decimal_get_binary_size(my_decimal_length_to_precision((uint)length,
decimals,
flags &
UNSIGNED_FLAG),
decimals);
break;
default:
- key_length= pack_length= calc_pack_length(sql_type, length);
+ key_length= pack_length= calc_pack_length(sql_type, (uint)length);
break;
}
}
@@ -9953,9 +9954,9 @@ bool Column_definition::check(THD *thd)
DBUG_RETURN(TRUE);
}
length=
- my_decimal_precision_to_length(length, decimals, flags & UNSIGNED_FLAG);
+ my_decimal_precision_to_length((uint)length, decimals, flags & UNSIGNED_FLAG);
pack_length=
- my_decimal_get_binary_size(length, decimals);
+ my_decimal_get_binary_size((uint)length, decimals);
break;
case MYSQL_TYPE_VARCHAR:
/*
@@ -10077,14 +10078,14 @@ bool Column_definition::check(THD *thd)
static_cast<ulong>(MAX_BIT_FIELD_LENGTH));
DBUG_RETURN(TRUE);
}
- pack_length= (length + 7) / 8;
+ pack_length= ((uint)length + 7) / 8;
break;
}
case MYSQL_TYPE_DECIMAL:
DBUG_ASSERT(0); /* Was obsolete */
}
/* Remember the value of length */
- char_length= length;
+ char_length= (uint)length;
/*
Set NO_DEFAULT_VALUE_FLAG if this field doesn't have a default value and
@@ -10546,7 +10547,7 @@ Column_definition::Column_definition(THD *thd, Field *old_field,
interval= ((Field_enum*) old_field)->typelib;
else
interval=0;
- char_length= length;
+ char_length= (uint)length;
/*
Copy the default (constant/function) from the column object orig_field, if
@@ -10839,7 +10840,7 @@ bool Field::save_in_field_default_value(bool view_error_processing)
{
my_message(ER_CANT_CREATE_GEOMETRY_OBJECT,
ER_THD(thd, ER_CANT_CREATE_GEOMETRY_OBJECT), MYF(0));
- return -1;
+ return true;
}
if (view_error_processing)
@@ -10858,13 +10859,13 @@ bool Field::save_in_field_default_value(bool view_error_processing)
ER_THD(thd, ER_NO_DEFAULT_FOR_FIELD),
field_name);
}
- return 1;
+ return true;
}
set_default();
return
!is_null() &&
validate_value_in_record_with_warn(thd, table->record[0]) &&
- thd->is_error() ? -1 : 0;
+ thd->is_error();
}
diff --git a/sql/field.h b/sql/field.h
index 2167b90e26c..91e97c8dce7 100644
--- a/sql/field.h
+++ b/sql/field.h
@@ -211,7 +211,7 @@ protected:
CHARSET_INFO *cs, const char *str, size_t length,
my_decimal *buf)
{
- m_error= str2my_decimal(mask, str, length, cs,
+ m_error= str2my_decimal(mask, str,(uint) length, cs,
buf, (const char **) &m_end_of_num);
// E_DEC_TRUNCATED means a very minor truncation: '1e-100' -> 0
m_edom= m_error && m_error != E_DEC_TRUNCATED;
@@ -848,7 +848,7 @@ public:
int store(const char *to, uint length, CHARSET_INFO *cs,
enum_check_fields check_level);
int store(const LEX_STRING *ls, CHARSET_INFO *cs)
- { return store(ls->str, ls->length, cs); }
+ { return store(ls->str, (uint32) ls->length, cs); }
virtual double val_real(void)=0;
virtual longlong val_int(void)=0;
virtual bool val_bool(void)= 0;
diff --git a/sql/filesort.cc b/sql/filesort.cc
index 2388dd759b5..f772011241f 100644
--- a/sql/filesort.cc
+++ b/sql/filesort.cc
@@ -141,7 +141,8 @@ SORT_INFO *filesort(THD *thd, TABLE *table, Filesort *filesort,
table_map first_table_bit)
{
int error;
- size_t memory_available= thd->variables.sortbuff_size;
+ DBUG_ASSERT(thd->variables.sortbuff_size <= SIZE_T_MAX);
+ size_t memory_available= (size_t)thd->variables.sortbuff_size;
uint maxbuffer;
BUFFPEK *buffpek;
ha_rows num_rows= HA_POS_ERROR;
@@ -1803,7 +1804,7 @@ int merge_buffers(Sort_param *param, IO_CACHE *from_file,
if (flag == 0)
{
if (my_b_write(to_file, (uchar*) buffpek->key,
- (rec_length*buffpek->mem_count)))
+ (size_t)(rec_length*buffpek->mem_count)))
{
error= 1; goto err; /* purecov: inspected */
}
diff --git a/sql/ha_partition.cc b/sql/ha_partition.cc
index 4375e891f1f..a0fbdffec90 100644
--- a/sql/ha_partition.cc
+++ b/sql/ha_partition.cc
@@ -2508,7 +2508,7 @@ register_query_cache_dependant_tables(THD *thd,
part= i * num_subparts + j;
/* we store the end \0 as part of the key */
end= strmov(engine_pos, sub_elem->partition_name);
- length= end - engine_key;
+ length= (uint)(end - engine_key);
/* Copy the suffix also to query cache key */
memcpy(query_cache_key_end, engine_key_end, (end - engine_key_end));
if (reg_query_cache_dependant_table(thd, engine_key, length,
@@ -2524,7 +2524,7 @@ register_query_cache_dependant_tables(THD *thd,
else
{
char *end= engine_pos+1; // copy end \0
- uint length= end - engine_key;
+ uint length= (uint)(end - engine_key);
/* Copy the suffix also to query cache key */
memcpy(query_cache_key_end, engine_key_end, (end - engine_key_end));
if (reg_query_cache_dependant_table(thd, engine_key, length,
@@ -6738,7 +6738,7 @@ int ha_partition::info(uint flag)
/* Get variables if not already done */
if (!(flag & HA_STATUS_VARIABLE) ||
!bitmap_is_set(&(m_part_info->read_partitions),
- (file_array - m_file)))
+ (uint)(file_array - m_file)))
file->info(HA_STATUS_VARIABLE | no_lock_flag | extra_var_flag);
if (file->stats.records > max_records)
{
@@ -7704,7 +7704,7 @@ ha_rows ha_partition::estimate_rows_upper_bound()
do
{
- if (bitmap_is_set(&(m_part_info->read_partitions), (file - m_file)))
+ if (bitmap_is_set(&(m_part_info->read_partitions), (uint)(file - m_file)))
{
rows= (*file)->estimate_rows_upper_bound();
if (rows == HA_POS_ERROR)
diff --git a/sql/handler.cc b/sql/handler.cc
index e87ee03d0ee..2e499238dba 100644
--- a/sql/handler.cc
+++ b/sql/handler.cc
@@ -1372,7 +1372,7 @@ int ha_commit_trans(THD *thd, bool all)
uint rw_ha_count= ha_check_and_coalesce_trx_read_only(thd, ha_info, all);
/* rw_trans is TRUE when we in a transaction changing data */
bool rw_trans= is_real_trans &&
- (rw_ha_count > !thd->is_current_stmt_binlog_disabled());
+ (rw_ha_count > (thd->is_current_stmt_binlog_disabled()?0U:1U));
MDL_request mdl_request;
DBUG_PRINT("info", ("is_real_trans: %d rw_trans: %d rw_ha_count: %d",
is_real_trans, rw_trans, rw_ha_count));
@@ -5557,9 +5557,9 @@ TYPELIB *ha_known_exts(void)
}
-static bool stat_print(THD *thd, const char *type, uint type_len,
- const char *file, uint file_len,
- const char *status, uint status_len)
+static bool stat_print(THD *thd, const char *type, size_t type_len,
+ const char *file, size_t file_len,
+ const char *status, size_t status_len)
{
Protocol *protocol= thd->protocol;
protocol->prepare_for_resend();
diff --git a/sql/handler.h b/sql/handler.h
index e64d407f202..486ba564050 100644
--- a/sql/handler.h
+++ b/sql/handler.h
@@ -766,9 +766,9 @@ struct TABLE_SHARE;
struct HA_CREATE_INFO;
struct st_foreign_key_info;
typedef struct st_foreign_key_info FOREIGN_KEY_INFO;
-typedef bool (stat_print_fn)(THD *thd, const char *type, uint type_len,
- const char *file, uint file_len,
- const char *status, uint status_len);
+typedef bool (stat_print_fn)(THD *thd, const char *type, size_t type_len,
+ const char *file, size_t file_len,
+ const char *status, size_t status_len);
enum ha_stat_type { HA_ENGINE_STATUS, HA_ENGINE_LOGS, HA_ENGINE_MUTEX };
extern st_plugin_int *hton2plugin[MAX_HA];
diff --git a/sql/item.cc b/sql/item.cc
index 74c5d94ec98..910fdd06303 100644
--- a/sql/item.cc
+++ b/sql/item.cc
@@ -1051,7 +1051,7 @@ void Item::set_name(THD *thd, const char *str, uint length, CHARSET_INFO *cs)
if (!cs->ctype || cs->mbminlen > 1)
{
str+= cs->cset->scan(cs, str, str + length, MY_SEQ_SPACES);
- length-= str - str_start;
+ length-= (uint)(str - str_start);
}
else
{
diff --git a/sql/item.h b/sql/item.h
index 38bbd6edcd5..a834e3fef94 100644
--- a/sql/item.h
+++ b/sql/item.h
@@ -3425,7 +3425,7 @@ public:
Item_string(thd, str, length, system_charset_info)
{ }
Item_string_sys(THD *thd, const char *str):
- Item_string(thd, str, strlen(str), system_charset_info)
+ Item_string(thd, str, (uint) strlen(str), system_charset_info)
{ }
};
@@ -3512,7 +3512,7 @@ class Item_blob :public Item_partition_func_safe_string
{
public:
Item_blob(THD *thd, const char *name_arg, uint length):
- Item_partition_func_safe_string(thd, name_arg, strlen(name_arg), &my_charset_bin)
+ Item_partition_func_safe_string(thd, name_arg, (uint) strlen(name_arg), &my_charset_bin)
{ max_length= length; }
enum Type type() const { return TYPE_HOLDER; }
enum_field_types field_type() const { return MYSQL_TYPE_BLOB; }
diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc
index 9a8a158f9e6..1702e450c2a 100644
--- a/sql/item_cmpfunc.cc
+++ b/sql/item_cmpfunc.cc
@@ -5404,7 +5404,7 @@ void Regexp_processor_pcre::set_recursion_limit(THD *thd)
DBUG_ASSERT(thd == current_thd);
stack_used= available_stack_size(thd->thread_stack, &stack_used);
m_pcre_extra.match_limit_recursion=
- (my_thread_stack_size - STACK_MIN_SIZE - stack_used)/my_pcre_frame_size;
+ (ulong)((my_thread_stack_size - STACK_MIN_SIZE - stack_used)/my_pcre_frame_size);
}
diff --git a/sql/item_create.cc b/sql/item_create.cc
index 4730e187ebe..b6430ecf18d 100644
--- a/sql/item_create.cc
+++ b/sql/item_create.cc
@@ -71,7 +71,7 @@ static void wrong_precision_error(uint errcode, Item *a,
*/
bool get_length_and_scale(ulonglong length, ulonglong decimals,
- ulong *out_length, uint *out_decimals,
+ uint *out_length, uint *out_decimals,
uint max_precision, uint max_scale,
Item *a)
{
@@ -88,8 +88,9 @@ bool get_length_and_scale(ulonglong length, ulonglong decimals,
*out_decimals= (uint) decimals;
my_decimal_trim(&length, out_decimals);
- *out_length= (ulong) length;
-
+ *out_length= (uint) length;
+
+
if (*out_length < *out_decimals)
{
my_error(ER_M_BIGGER_THAN_D, MYF(0), "");
@@ -3309,7 +3310,7 @@ Create_udf_func Create_udf_func::s_singleton;
Item*
Create_udf_func::create_func(THD *thd, LEX_STRING name, List<Item> *item_list)
{
- udf_func *udf= find_udf(name.str, name.length);
+ udf_func *udf= find_udf(name.str, (uint)name.length);
DBUG_ASSERT(udf);
return create(thd, udf, item_list);
}
@@ -7182,7 +7183,7 @@ create_func_cast(THD *thd, Item *a, Cast_target cast_type,
break;
case ITEM_CAST_DECIMAL:
{
- ulong len;
+ uint len;
uint dec;
if (get_length_and_scale(length, decimals, &len, &dec,
DECIMAL_MAX_PRECISION, DECIMAL_MAX_SCALE,
@@ -7193,9 +7194,7 @@ create_func_cast(THD *thd, Item *a, Cast_target cast_type,
}
case ITEM_CAST_DOUBLE:
{
- ulong len;
- uint dec;
-
+ uint len, dec;
if (!c_len)
{
length= DBL_DIG+7;
diff --git a/sql/item_func.cc b/sql/item_func.cc
index f452b820090..f14222f4451 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -1040,8 +1040,8 @@ bool Item_func_hybrid_field_type::get_date(MYSQL_TIME *ltime,
}
case TIME_RESULT:
return date_op(ltime,
- fuzzydate |
- (field_type() == MYSQL_TYPE_TIME ? TIME_TIME_ONLY : 0));
+ (uint)(fuzzydate |
+ (field_type() == MYSQL_TYPE_TIME ? TIME_TIME_ONLY : 0)));
case STRING_RESULT:
{
char buff[40];
diff --git a/sql/item_inetfunc.cc b/sql/item_inetfunc.cc
index 6a09747fa1a..7f3ec3829f4 100644
--- a/sql/item_inetfunc.cc
+++ b/sql/item_inetfunc.cc
@@ -211,7 +211,7 @@ String *Item_func_inet_str_base::val_str_ascii(String *buffer)
IPv4-part differently on different platforms.
*/
-static bool str_to_ipv4(const char *str, int str_length, in_addr *ipv4_address)
+static bool str_to_ipv4(const char *str, size_t str_length, in_addr *ipv4_address)
{
if (str_length < 7)
{
@@ -236,7 +236,7 @@ static bool str_to_ipv4(const char *str, int str_length, in_addr *ipv4_address)
int dot_count= 0;
char c= 0;
- while (((p - str) < str_length) && *p)
+ while (((p - str) < (int)str_length) && *p)
{
c= *p++;
@@ -493,7 +493,7 @@ static bool str_to_ipv6(const char *str, int str_length, in6_addr *ipv6_address)
return false;
}
- int bytes_to_move= dst - gap_ptr;
+ int bytes_to_move= (int)(dst - gap_ptr);
for (int i= 1; i <= bytes_to_move; ++i)
{
diff --git a/sql/item_jsonfunc.cc b/sql/item_jsonfunc.cc
index 6398929defc..77363f80919 100644
--- a/sql/item_jsonfunc.cc
+++ b/sql/item_jsonfunc.cc
@@ -48,7 +48,7 @@ static bool eq_ascii_string(const CHARSET_INFO *cs,
}
-static bool append_simple(String *s, const char *a, uint a_len)
+static bool append_simple(String *s, const char *a, size_t a_len)
{
if (!s->realloc_with_extra_if_needed(s->length() + a_len))
{
@@ -60,7 +60,7 @@ static bool append_simple(String *s, const char *a, uint a_len)
}
-static inline bool append_simple(String *s, const uchar *a, uint a_len)
+static inline bool append_simple(String *s, const uchar *a, size_t a_len)
{
return append_simple(s, (const char *) a, a_len);
}
@@ -255,7 +255,7 @@ void report_json_error_ex(String *js, json_engine_t *je,
Sql_condition::enum_warning_level lv)
{
THD *thd= current_thd;
- int position= (const char *) je->s.c_str - js->ptr();
+ int position= (int)((const char *) je->s.c_str - js->ptr());
uint code;
n_param++;
@@ -312,7 +312,7 @@ static void report_path_error_ex(String *ps, json_path_t *p,
Sql_condition::enum_warning_level lv)
{
THD *thd= current_thd;
- int position= (const char *) p->s.c_str - ps->ptr() + 1;
+ int position= (int)((const char *) p->s.c_str - ps->ptr() + 1);
uint code;
n_param++;
@@ -539,7 +539,7 @@ bool Item_func_json_query::check_and_get_value(json_engine_t *je, String *res,
return true;
}
- res->set((const char *) je->value, je->s.c_str - value, je->s.cs);
+ res->set((const char *) je->value, (uint32)(je->s.c_str - value), je->s.cs);
return false;
}
@@ -742,7 +742,8 @@ String *Item_func_json_extract::read_json(String *str,
json_path_t p;
const uchar *value;
int not_first_value= 0;
- uint n_arg, v_len;
+ uint n_arg;
+ size_t v_len;
int possible_multiple_values;
if ((null_value= args[0]->null_value))
@@ -1529,7 +1530,8 @@ String *Item_func_json_array_append::val_str(String *str)
{
json_engine_t je;
String *js= args[0]->val_json(&tmp_js);
- uint n_arg, n_path, str_rest_len;
+ uint n_arg, n_path;
+ size_t str_rest_len;
const uchar *ar_end;
DBUG_ASSERT(fixed == 1);
@@ -2860,7 +2862,7 @@ skip_search:
} while (json_read_keyname_chr(&je) == 0);
if (je.s.error)
goto err_return;
- key_len= key_end - key_start;
+ key_len= (int)(key_end - key_start);
if (!check_key_in_list(str, key_start, key_len))
{
@@ -3134,7 +3136,7 @@ String *Item_func_json_format::val_str(String *str)
{
if (arg_count > 1)
{
- tab_size= args[1]->val_int();
+ tab_size= (int)args[1]->val_int();
if (args[1]->null_value)
{
null_value= 1;
diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc
index 02bfc98b293..89e55234482 100644
--- a/sql/item_strfunc.cc
+++ b/sql/item_strfunc.cc
@@ -257,7 +257,7 @@ String *Item_func_sha2::val_str_ascii(String *str)
str->realloc((uint) digest_length*2 + 1); /* Each byte as two nybbles */
/* Convert the large number to a string-hex representation. */
- array_to_hex((char *) str->ptr(), digest_buf, digest_length);
+ array_to_hex((char *) str->ptr(), digest_buf, (uint)digest_length);
/* We poked raw bytes in. We must inform the the String of its length. */
str->length((uint) digest_length*2); /* Each byte as two nybbles */
@@ -272,7 +272,7 @@ void Item_func_sha2::fix_length_and_dec()
maybe_null= 1;
max_length = 0;
- int sha_variant= args[1]->const_item() ? args[1]->val_int() : 512;
+ int sha_variant= (int)(args[1]->const_item() ? args[1]->val_int() : 512);
switch (sha_variant) {
case 0: // SHA-256 is the default
@@ -3694,12 +3694,12 @@ String *Item_func_like_range::val_str(String *str)
if (!res || args[0]->null_value || args[1]->null_value ||
nbytes < 0 || nbytes > MAX_BLOB_WIDTH ||
- min_str.alloc(nbytes) || max_str.alloc(nbytes))
+ min_str.alloc((size_t)nbytes) || max_str.alloc((size_t)nbytes))
goto err;
null_value=0;
if (cs->coll->like_range(cs, res->ptr(), res->length(),
- '\\', '_', '%', nbytes,
+ '\\', '_', '%', (size_t)nbytes,
(char*) min_str.ptr(), (char*) max_str.ptr(),
&min_len, &max_len))
goto err;
@@ -3776,7 +3776,7 @@ String *Item_load_file::val_str(String *str)
if ((file= mysql_file_open(key_file_loadfile,
file_name->ptr(), O_RDONLY, MYF(0))) < 0)
goto err;
- if (mysql_file_read(file, (uchar*) tmp_value.ptr(), stat_info.st_size,
+ if (mysql_file_read(file, (uchar*) tmp_value.ptr(), (size_t)stat_info.st_size,
MYF(MY_NABP)))
{
mysql_file_close(file, MYF(0));
@@ -4002,7 +4002,7 @@ String *Item_func_quote::val_str(String *str)
if ((mblen= cs->cset->wc_mb(cs, '\'', (uchar *) to, to_end)) <= 0)
goto toolong;
to+= mblen;
- new_length= to - str->ptr();
+ new_length= (uint)(to - str->ptr());
goto ret;
}
diff --git a/sql/item_strfunc.h b/sql/item_strfunc.h
index 9c7dfc03aa3..e2dcab01e3b 100644
--- a/sql/item_strfunc.h
+++ b/sql/item_strfunc.h
@@ -735,7 +735,7 @@ public:
bool fix_fields(THD *thd, Item **ref);
void fix_length_and_dec()
{
- max_length= (username_char_length +
+ max_length= (uint32) (username_char_length +
HOSTNAME_LENGTH + 1) * SYSTEM_CHARSET_MBMAXLEN;
}
const char *func_name() const { return "user"; }
@@ -777,7 +777,7 @@ public:
Item_func_sysconst(thd), context(context_arg) {}
bool fix_fields(THD *thd, Item **ref);
void fix_length_and_dec()
- { max_length= username_char_length * SYSTEM_CHARSET_MBMAXLEN; }
+ { max_length= (uint32) username_char_length * SYSTEM_CHARSET_MBMAXLEN; }
int save_in_field(Field *field, bool no_conversions)
{ return save_str_value_in_field(field, &str_value); }
const char *func_name() const { return "current_role"; }
diff --git a/sql/item_timefunc.cc b/sql/item_timefunc.cc
index 8dbd47444f2..2724bb63eda 100644
--- a/sql/item_timefunc.cc
+++ b/sql/item_timefunc.cc
@@ -714,7 +714,7 @@ static bool get_interval_info(const char *str,uint length,CHARSET_INFO *cs,
{
const char *end=str+length;
uint i;
- long msec_length= 0;
+ int msec_length= 0;
while (str != end && !my_isdigit(cs,*str))
str++;
@@ -725,7 +725,7 @@ static bool get_interval_info(const char *str,uint length,CHARSET_INFO *cs,
const char *start= str;
for (value= 0; str != end && my_isdigit(cs, *str); str++)
value= value*10 + *str - '0';
- msec_length= 6 - (str - start);
+ msec_length= 6 - (int)(str - start);
values[i]= value;
while (str != end && !my_isdigit(cs,*str))
str++;
@@ -1061,7 +1061,7 @@ longlong Item_func_week::val_int()
if (get_arg0_date(&ltime, TIME_NO_ZERO_DATE | TIME_NO_ZERO_IN_DATE))
return 0;
if (arg_count > 1)
- week_format= args[1]->val_int();
+ week_format= (uint)args[1]->val_int();
else
week_format= current_thd->variables.default_week_format;
return (longlong) calc_week(&ltime, week_mode(week_format), &year);
@@ -2456,7 +2456,7 @@ String *Item_char_typecast::copy(String *str, CHARSET_INFO *strcs)
null_value= 1; // EOM
return 0;
}
- check_truncation_with_warn(str, copier.source_end_pos() - str->ptr());
+ check_truncation_with_warn(str, (uint)(copier.source_end_pos() - str->ptr()));
return &tmp_value;
}
diff --git a/sql/key.cc b/sql/key.cc
index 0c931184da7..cdf5c8c4a74 100644
--- a/sql/key.cc
+++ b/sql/key.cc
@@ -374,7 +374,7 @@ void field_unpack(String *to, Field *field, const uchar *rec, uint max_length,
{
const char *tmp_end= tmp.ptr() + tmp.length();
while (tmp_end > tmp.ptr() && !*--tmp_end) ;
- tmp.length(tmp_end - tmp.ptr() + 1);
+ tmp.length((uint32)(tmp_end - tmp.ptr() + 1));
}
if (cs->mbmaxlen > 1 && prefix_key)
{
diff --git a/sql/log.cc b/sql/log.cc
index a249f102dbd..b0115c3e480 100644
--- a/sql/log.cc
+++ b/sql/log.cc
@@ -5254,7 +5254,7 @@ bool MYSQL_BIN_LOG::write_event_buffer(uchar* buf, uint len)
if (!ebuf)
goto err;
- crypto.set_iv(iv, my_b_append_tell(&log_file));
+ crypto.set_iv(iv, (uint32)my_b_append_tell(&log_file));
/*
we want to encrypt everything, excluding the event length:
@@ -5480,9 +5480,9 @@ binlog_cache_mngr *THD::binlog_setup_trx_data()
cache_mngr= (binlog_cache_mngr*) my_malloc(sizeof(binlog_cache_mngr), MYF(MY_ZEROFILL));
if (!cache_mngr ||
open_cached_file(&cache_mngr->stmt_cache.cache_log, mysql_tmpdir,
- LOG_PREFIX, binlog_stmt_cache_size, MYF(MY_WME)) ||
+ LOG_PREFIX, (size_t)binlog_stmt_cache_size, MYF(MY_WME)) ||
open_cached_file(&cache_mngr->trx_cache.cache_log, mysql_tmpdir,
- LOG_PREFIX, binlog_cache_size, MYF(MY_WME)))
+ LOG_PREFIX, (size_t)binlog_cache_size, MYF(MY_WME)))
{
my_free(cache_mngr);
DBUG_RETURN(0); // Didn't manage to set it up
diff --git a/sql/log_event.cc b/sql/log_event.cc
index 19bb3a51671..9299932ac4b 100644
--- a/sql/log_event.cc
+++ b/sql/log_event.cc
@@ -838,19 +838,19 @@ query_event_uncompress(const Format_description_log_event *description_event,
if (end <= tmp)
return 1;
- int32 comp_len = len - (tmp - src) -
- (contain_checksum ? BINLOG_CHECKSUM_LEN : 0);
+ int32 comp_len = (int32)(len - (tmp - src) -
+ (contain_checksum ? BINLOG_CHECKSUM_LEN : 0));
uint32 un_len = binlog_get_uncompress_len(tmp);
// bad event
if (comp_len < 0 || un_len == 0)
return 1;
- *newlen = (tmp - src) + un_len;
+ *newlen = (ulong)(tmp - src) + un_len;
if(contain_checksum)
*newlen += BINLOG_CHECKSUM_LEN;
- uint32 alloc_size = ALIGN_SIZE(*newlen);
+ uint32 alloc_size = (uint32)ALIGN_SIZE(*newlen);
char *new_dst = NULL;
@@ -963,17 +963,17 @@ row_log_event_uncompress(const Format_description_log_event *description_event,
if (un_len == 0)
return 1;
- long comp_len = len - (tmp - src) -
- (contain_checksum ? BINLOG_CHECKSUM_LEN : 0);
+ int32 comp_len = (int32)(len - (tmp - src) -
+ (contain_checksum ? BINLOG_CHECKSUM_LEN : 0));
//bad event
if (comp_len <=0)
return 1;
- *newlen = (tmp - src) + un_len;
+ *newlen = ulong(tmp - src) + un_len;
if(contain_checksum)
*newlen += BINLOG_CHECKSUM_LEN;
- uint32 alloc_size = ALIGN_SIZE(*newlen);
+ size_t alloc_size = ALIGN_SIZE(*newlen);
*is_malloc = false;
if (alloc_size <= buf_size)
@@ -1626,7 +1626,7 @@ int Log_event_writer::write_header(uchar *pos, size_t len)
if (ctx)
{
uchar iv[BINLOG_IV_LENGTH];
- crypto->set_iv(iv, my_b_safe_tell(file));
+ crypto->set_iv(iv, (uint32)my_b_safe_tell(file));
if (encryption_ctx_init(ctx, crypto->key, crypto->key_length,
iv, sizeof(iv), ENCRYPTION_FLAG_ENCRYPT | ENCRYPTION_FLAG_NOPAD,
ENCRYPTION_KEY_SYSTEM_DATA, crypto->key_version))
@@ -3968,7 +3968,7 @@ Query_log_event::Query_log_event(THD* thd_arg, const char* query_arg,
db(thd_arg->db), q_len((uint32) query_length),
thread_id(thd_arg->thread_id),
/* save the original thread id; we already know the server id */
- slave_proxy_id(thd_arg->variables.pseudo_thread_id),
+ slave_proxy_id((ulong)thd_arg->variables.pseudo_thread_id),
flags2_inited(1), sql_mode_inited(1), charset_inited(1),
sql_mode(thd_arg->variables.sql_mode),
auto_increment_increment(thd_arg->variables.auto_increment_increment),
@@ -4170,7 +4170,7 @@ get_str_len_and_pointer(const Log_event::Byte **src,
if (length > 0)
{
if (*src + length >= end)
- return *src + length - end + 1; // Number of bytes missing
+ return (int)(*src + length - end + 1); // Number of bytes missing
*dst= (char *)*src + 1; // Will be copied later
}
*len= length;
@@ -4271,7 +4271,7 @@ Query_log_event::Query_log_event(const char* buf, uint event_len,
data_len = event_len - (common_header_len + post_header_len);
buf+= common_header_len;
- slave_proxy_id= thread_id = uint4korr(buf + Q_THREAD_ID_OFFSET);
+ thread_id = slave_proxy_id = uint4korr(buf + Q_THREAD_ID_OFFSET);
exec_time = uint4korr(buf + Q_EXEC_TIME_OFFSET);
db_len = (uchar)buf[Q_DB_LEN_OFFSET]; // TODO: add a check of all *_len vars
error_code = uint2korr(buf + Q_ERR_CODE_OFFSET);
@@ -6487,7 +6487,7 @@ Load_log_event::Load_log_event(THD *thd_arg, sql_exchange *ex,
thd_arg->thread_specific_used ? LOG_EVENT_THREAD_SPECIFIC_F : 0,
using_trans),
thread_id(thd_arg->thread_id),
- slave_proxy_id(thd_arg->variables.pseudo_thread_id),
+ slave_proxy_id((ulong)thd_arg->variables.pseudo_thread_id),
num_fields(0),fields(0),
field_lens(0),field_block_len(0),
table_name(table_name_arg ? table_name_arg : ""),
@@ -6611,7 +6611,7 @@ int Load_log_event::copy_log_event(const char *buf, ulong event_len,
char* buf_end = (char*)buf + event_len;
/* this is the beginning of the post-header */
const char* data_head = buf + description_event->common_header_len;
- slave_proxy_id= thread_id= uint4korr(data_head + L_THREAD_ID_OFFSET);
+ thread_id= slave_proxy_id= uint4korr(data_head + L_THREAD_ID_OFFSET);
exec_time = uint4korr(data_head + L_EXEC_TIME_OFFSET);
skip_lines = uint4korr(data_head + L_SKIP_LINES_OFFSET);
table_name_len = (uint)data_head[L_TBL_LEN_OFFSET];
@@ -8673,7 +8673,7 @@ User_var_log_event(const char* buf, uint event_len,
Old events will not have this extra byte, thence,
we keep the flags set to UNDEF_F.
*/
- uint bytes_read= ((val + val_len) - buf_start);
+ size_t bytes_read= ((val + val_len) - buf_start);
#ifndef DBUG_OFF
bool old_pre_checksum_fd= description_event->is_version_before_checksum(
&description_event->server_version_split);
@@ -10382,7 +10382,7 @@ void Rows_log_event::uncompress_buf()
if (new_buf)
{
if(!binlog_buf_uncompress((char *)m_rows_buf, (char *)new_buf,
- m_rows_cur - m_rows_buf, &un_len))
+ (uint32)(m_rows_cur - m_rows_buf), &un_len))
{
my_free(m_rows_buf);
m_rows_buf = new_buf;
@@ -10418,9 +10418,9 @@ int Rows_log_event::get_data_size()
uchar *end= net_store_length(buf, m_width);
DBUG_EXECUTE_IF("old_row_based_repl_4_byte_map_id_master",
- return 6 + no_bytes_in_map(&m_cols) + (end - buf) +
+ return (int)(6 + no_bytes_in_map(&m_cols) + (end - buf) +
(general_type_code == UPDATE_ROWS_EVENT ? no_bytes_in_map(&m_cols_ai) : 0) +
- (m_rows_cur - m_rows_buf););
+ m_rows_cur - m_rows_buf););
int data_size= 0;
Log_event_type type = get_type_code();
diff --git a/sql/log_event.h b/sql/log_event.h
index a06781aebeb..34000a5f9de 100644
--- a/sql/log_event.h
+++ b/sql/log_event.h
@@ -5097,7 +5097,7 @@ static inline bool copy_event_cache_to_string_and_reinit(IO_CACHE *cache, LEX_ST
String tmp;
reinit_io_cache(cache, READ_CACHE, 0L, FALSE, FALSE);
- if (tmp.append(cache, cache->end_of_file))
+ if (tmp.append(cache, (uint32)cache->end_of_file))
goto err;
reinit_io_cache(cache, WRITE_CACHE, 0, FALSE, TRUE);
diff --git a/sql/log_event_old.cc b/sql/log_event_old.cc
index 36c4a3867b2..68ffa32fafe 100644
--- a/sql/log_event_old.cc
+++ b/sql/log_event_old.cc
@@ -1290,8 +1290,8 @@ int Old_rows_log_event::get_data_size()
uchar *end= net_store_length(buf, (m_width + 7) / 8);
DBUG_EXECUTE_IF("old_row_based_repl_4_byte_map_id_master",
- return 6 + no_bytes_in_map(&m_cols) + (end - buf) +
- (m_rows_cur - m_rows_buf););
+ return (int)(6 + no_bytes_in_map(&m_cols) + (end - buf) +
+ m_rows_cur - m_rows_buf););
int data_size= ROWS_HEADER_LEN;
data_size+= no_bytes_in_map(&m_cols);
data_size+= (uint) (end - buf);
diff --git a/sql/mf_iocache_encr.cc b/sql/mf_iocache_encr.cc
index ae314d826a0..434fcd1f435 100644
--- a/sql/mf_iocache_encr.cc
+++ b/sql/mf_iocache_encr.cc
@@ -57,7 +57,7 @@ static int my_b_encr_read(IO_CACHE *info, uchar *Buffer, size_t Count)
if (info->seek_not_done)
{
- size_t wpos;
+ my_off_t wpos;
pos_offset= pos_in_file % info->buffer_length;
pos_in_file-= pos_offset;
@@ -106,7 +106,7 @@ static int my_b_encr_read(IO_CACHE *info, uchar *Buffer, size_t Count)
DBUG_ASSERT(length <= info->buffer_length);
- copied= MY_MIN(Count, length - pos_offset);
+ copied= MY_MIN(Count, (size_t)(length - pos_offset));
memcpy(Buffer, info->buffer + pos_offset, copied);
Count-= copied;
@@ -120,7 +120,7 @@ static int my_b_encr_read(IO_CACHE *info, uchar *Buffer, size_t Count)
if (wlength < crypt_data->block_length && pos_in_file < info->end_of_file)
{
- info->error= pos_in_file - old_pos_in_file;
+ info->error= (int)(pos_in_file - old_pos_in_file);
DBUG_RETURN(1);
}
} while (Count);
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 05e25d99e13..96bbe38d3dd 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -4971,7 +4971,8 @@ static int init_server_components()
global_system_variables.query_cache_type= 1;
}
query_cache_init();
- query_cache_resize(query_cache_size);
+ DBUG_ASSERT(query_cache_size < ULONG_MAX);
+ query_cache_resize((ulong)query_cache_size);
my_rnd_init(&sql_rand,(ulong) server_start_time,(ulong) server_start_time/2);
setup_fpu();
init_thr_lock();
@@ -5815,7 +5816,7 @@ int mysqld_main(int argc, char **argv)
ulonglong new_thread_stack_size;
new_thread_stack_size= my_setstacksize(&connection_attrib,
- my_thread_stack_size);
+ (size_t)my_thread_stack_size);
if (new_thread_stack_size != my_thread_stack_size)
SYSVAR_AUTOSIZE(my_thread_stack_size, new_thread_stack_size);
diff --git a/sql/parse_file.cc b/sql/parse_file.cc
index 8f3e26d5e03..0c44f6a9820 100644
--- a/sql/parse_file.cc
+++ b/sql/parse_file.cc
@@ -437,7 +437,7 @@ sql_parse_prepare(const LEX_STRING *file_name, MEM_ROOT *mem_root,
DBUG_RETURN(0);
}
- if ((len= mysql_file_read(file, (uchar *)buff, stat_info.st_size,
+ if ((len= mysql_file_read(file, (uchar *)buff, (size_t)stat_info.st_size,
MYF(MY_WME))) == MY_FILE_ERROR)
{
mysql_file_close(file, MYF(MY_WME));
diff --git a/sql/rpl_filter.cc b/sql/rpl_filter.cc
index b82e7bada45..0ab4c62235f 100644
--- a/sql/rpl_filter.cc
+++ b/sql/rpl_filter.cc
@@ -239,7 +239,7 @@ Rpl_filter::db_ok_with_wild_table(const char *db)
int len;
end= strmov(hash_key, db);
*end++= '.';
- len= end - hash_key ;
+ len= (int)(end - hash_key);
if (wild_do_table_inited && find_wild(&wild_do_table, hash_key, len))
{
DBUG_PRINT("return",("1"));
diff --git a/sql/rpl_parallel.cc b/sql/rpl_parallel.cc
index 433e7ea03c8..973b9d899c1 100644
--- a/sql/rpl_parallel.cc
+++ b/sql/rpl_parallel.cc
@@ -1697,7 +1697,7 @@ rpl_parallel_thread::get_qev_common(Log_event *ev, ulonglong event_size)
}
qev->typ= rpl_parallel_thread::queued_event::QUEUED_EVENT;
qev->ev= ev;
- qev->event_size= event_size;
+ qev->event_size= (size_t)event_size;
qev->next= NULL;
return qev;
}
diff --git a/sql/rpl_record.cc b/sql/rpl_record.cc
index 44d407e0a60..3147baf7d73 100644
--- a/sql/rpl_record.cc
+++ b/sql/rpl_record.cc
@@ -339,8 +339,8 @@ unpack_row(rpl_group_info *rgi,
" pack_ptr: %p; conv_table %p conv_field %p table %s"
" row_end: %p",
f->field_name, metadata,
- (ulong) old_pack_ptr, conv_table, conv_field,
- (table_found) ? "found" : "not found", (ulong)row_end
+ old_pack_ptr, conv_table, conv_field,
+ (table_found) ? "found" : "not found", row_end
);
}
diff --git a/sql/rpl_rli.cc b/sql/rpl_rli.cc
index f5069682223..ed9f0369f5d 100644
--- a/sql/rpl_rli.cc
+++ b/sql/rpl_rli.cc
@@ -234,7 +234,7 @@ a file name for --relay-log-index option", opt_relaylog_index_name);
mysql_mutex_lock(log_lock);
if (relay_log.open_index_file(buf_relaylog_index_name, ln, TRUE) ||
relay_log.open(ln, LOG_BIN, 0, 0, SEQ_READ_APPEND,
- max_relay_log_size, 1, TRUE))
+ (ulong)max_relay_log_size, 1, TRUE))
{
mysql_mutex_unlock(log_lock);
mysql_mutex_unlock(&data_lock);
@@ -1175,7 +1175,7 @@ int purge_relay_logs(Relay_log_info* rli, THD *thd, bool just_reset,
}
mysql_mutex_lock(rli->relay_log.get_log_lock());
if (rli->relay_log.open(ln, LOG_BIN, 0, 0, SEQ_READ_APPEND,
- (rli->max_relay_log_size ? rli->max_relay_log_size :
+ (ulong)(rli->max_relay_log_size ? rli->max_relay_log_size :
max_binlog_size), 1, TRUE))
{
sql_print_error("Unable to purge relay log files. Failed to open relay "
@@ -1577,9 +1577,9 @@ rpl_load_gtid_slave_state(THD *thd)
goto end;
}
}
- domain_id= (ulonglong)table->field[0]->val_int();
+ domain_id= (uint32)table->field[0]->val_int();
sub_id= (ulonglong)table->field[1]->val_int();
- server_id= (ulonglong)table->field[2]->val_int();
+ server_id= (uint32)table->field[2]->val_int();
seq_no= (ulonglong)table->field[3]->val_int();
DBUG_PRINT("info", ("Read slave state row: %u-%u-%lu sub_id=%lu\n",
(unsigned)domain_id, (unsigned)server_id,
diff --git a/sql/session_tracker.cc b/sql/session_tracker.cc
index 03d4b150434..4ca94b6cd60 100644
--- a/sql/session_tracker.cc
+++ b/sql/session_tracker.cc
@@ -967,7 +967,7 @@ bool Current_schema_tracker::update(THD *thd, set_var *)
bool Current_schema_tracker::store(THD *thd, String *buf)
{
- ulonglong db_length, length;
+ size_t db_length, length;
/*
Protocol made (by unknown reasons) redundant:
@@ -1320,16 +1320,16 @@ bool Transaction_state_tracker::store(THD *thd, String *buf)
}
{
- ulonglong length= buf->length() - start;
+ size_t length= buf->length() - start;
uchar *place= (uchar *)(buf->ptr() + (start - 2));
DBUG_ASSERT(length < 249); // in fact < 110
DBUG_ASSERT(start >= 3);
DBUG_ASSERT((place - 1)[0] == SESSION_TRACK_TRANSACTION_CHARACTERISTICS);
/* Length of the overall entity. */
- place[0]= length + 1;
+ place[0]= (uchar)length + 1;
/* Transaction characteristics (length-encoded string). */
- place[1]= length;
+ place[1]= (uchar)length;
}
}
diff --git a/sql/slave.cc b/sql/slave.cc
index 3fb28b587a6..1b1a597fa2a 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -4526,12 +4526,12 @@ Stopping slave I/O thread due to out-of-memory error from master");
lastchecktime = currenttime;
if(tokenamount < network_read_len)
{
- ulonglong micro_time = 1000*1000 * (network_read_len - tokenamount) / speed_limit_in_bytes ;
- ulonglong second_time = micro_time / (1000 * 1000);
- micro_time = micro_time % (1000 * 1000);
+ ulonglong duration =1000ULL*1000 * (network_read_len - tokenamount) / speed_limit_in_bytes;
+ time_t second_time = (time_t)(duration / (1000 * 1000));
+ uint micro_time = duration % (1000 * 1000);
// at least sleep 1000 micro second
- my_sleep(micro_time > 1000 ? micro_time : 1000);
+ my_sleep(MY_MAX(micro_time,1000));
/*
If it sleep more than one second,
diff --git a/sql/sp_pcontext.h b/sql/sp_pcontext.h
index 2a080536b8a..d4d532340fb 100644
--- a/sql/sp_pcontext.h
+++ b/sql/sp_pcontext.h
@@ -323,11 +323,11 @@ public:
/// @return the current number of variables used in the parent contexts
/// (from the root), including this context.
uint current_var_count() const
- { return m_var_offset + m_vars.elements(); }
+ { return m_var_offset + (uint)m_vars.elements(); }
/// @return the number of variables in this context alone.
uint context_var_count() const
- { return m_vars.elements(); }
+ { return (uint)m_vars.elements(); }
/// @return map index in this parsing context to runtime offset.
uint var_context2runtime(uint i) const
@@ -476,10 +476,10 @@ public:
const LEX_STRING *find_cursor(uint offset) const;
uint max_cursor_index() const
- { return m_max_cursor_index + m_cursors.elements(); }
+ { return m_max_cursor_index + (uint)m_cursors.elements(); }
uint current_cursor_count() const
- { return m_cursor_offset + m_cursors.elements(); }
+ { return m_cursor_offset + (uint)m_cursors.elements(); }
private:
/// Constructor for a tree node.
diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc
index 6032c7a9742..819bdb8200a 100644
--- a/sql/sql_acl.cc
+++ b/sql/sql_acl.cc
@@ -12298,7 +12298,7 @@ static bool find_mpvio_user(MPVIO_EXT *mpvio)
static bool
read_client_connect_attrs(char **ptr, char *end, CHARSET_INFO *from_cs)
{
- size_t length;
+ ulonglong length;
char *ptr_save= *ptr;
/* not enough bytes to hold the length */
@@ -12320,10 +12320,10 @@ read_client_connect_attrs(char **ptr, char *end, CHARSET_INFO *from_cs)
return true;
#ifdef HAVE_PSI_THREAD_INTERFACE
- if (PSI_THREAD_CALL(set_thread_connect_attrs)(*ptr, length, from_cs) &&
+ if (PSI_THREAD_CALL(set_thread_connect_attrs)(*ptr, (size_t)length, from_cs) &&
current_thd->variables.log_warnings)
- sql_print_warning("Connection attributes of length %lu were truncated",
- (unsigned long) length);
+ sql_print_warning("Connection attributes of length %llu were truncated",
+ length);
#endif
return false;
}
@@ -12580,7 +12580,7 @@ static ulong parse_client_handshake_packet(MPVIO_EXT *mpvio,
char *user= end;
char *passwd= strend(user)+1;
- uint user_len= passwd - user - 1, db_len;
+ uint user_len= (uint)(passwd - user - 1), db_len;
char *db= passwd;
char user_buff[USERNAME_LENGTH + 1]; // buffer to store user in utf8
uint dummy_errors;
@@ -12595,15 +12595,22 @@ static ulong parse_client_handshake_packet(MPVIO_EXT *mpvio,
Cast *passwd to an unsigned char, so that it doesn't extend the sign for
*passwd > 127 and become 2**32-127+ after casting to uint.
*/
- uint passwd_len;
+ ulonglong len;
+ size_t passwd_len;
+
if (!(thd->client_capabilities & CLIENT_SECURE_CONNECTION))
- passwd_len= strlen(passwd);
+ len= strlen(passwd);
else if (!(thd->client_capabilities & CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA))
- passwd_len= (uchar)(*passwd++);
+ len= (uchar)(*passwd++);
else
- passwd_len= safe_net_field_length_ll((uchar**)&passwd,
+ {
+ len= safe_net_field_length_ll((uchar**)&passwd,
net->read_pos + pkt_len - (uchar*)passwd);
-
+ if (len > pkt_len)
+ return packet_error;
+ }
+
+ passwd_len= (size_t)len;
db= thd->client_capabilities & CLIENT_CONNECT_WITH_DB ?
db + passwd_len + 1 : 0;
diff --git a/sql/sql_audit.h b/sql/sql_audit.h
index f7ad8d3cd20..96f9d0caece 100644
--- a/sql/sql_audit.h
+++ b/sql/sql_audit.h
@@ -62,15 +62,26 @@ static inline void mysql_audit_notify(THD *thd, uint event_class,
#endif
extern void mysql_audit_release(THD *thd);
+static inline unsigned int strlen_uint(const char *s)
+{
+ return (uint)strlen(s);
+}
+
+static inline unsigned int safe_strlen_uint(const char *s)
+{
+ return (uint)safe_strlen(s);
+}
+
#define MAX_USER_HOST_SIZE 512
static inline uint make_user_name(THD *thd, char *buf)
{
const Security_context *sctx= thd->security_ctx;
- return strxnmov(buf, MAX_USER_HOST_SIZE,
+ char *end= strxnmov(buf, MAX_USER_HOST_SIZE,
sctx->priv_user[0] ? sctx->priv_user : "", "[",
sctx->user ? sctx->user : "", "] @ ",
sctx->host ? sctx->host : "", " [",
- sctx->ip ? sctx->ip : "", "]", NullS) - buf;
+ sctx->ip ? sctx->ip : "", "]", NullS);
+ return (uint)(end-buf);
}
/**
@@ -112,7 +123,7 @@ void mysql_audit_general_log(THD *thd, time_t time,
event.general_thread_id= (unsigned long)thd->thread_id;
event.general_charset= thd->variables.character_set_client;
event.database= thd->db;
- event.database_length= thd->db_length;
+ event.database_length= (unsigned int)thd->db_length;
event.query_id= thd->query_id;
}
else
@@ -153,7 +164,7 @@ void mysql_audit_general(THD *thd, uint event_subtype,
event.general_error_code= error_code;
event.general_time= my_time(0);
event.general_command= msg;
- event.general_command_length= safe_strlen(msg);
+ event.general_command_length= safe_strlen_uint(msg);
if (thd)
{
@@ -165,7 +176,7 @@ void mysql_audit_general(THD *thd, uint event_subtype,
event.general_charset= thd->query_string.charset();
event.general_rows= thd->get_stmt_da()->current_row_for_warning();
event.database= thd->db;
- event.database_length= thd->db_length;
+ event.database_length= (uint)thd->db_length;
event.query_id= thd->query_id;
}
else
@@ -199,19 +210,19 @@ void mysql_audit_notify_connection_connect(THD *thd)
thd->get_stmt_da()->sql_errno() : 0;
event.thread_id= (unsigned long)thd->thread_id;
event.user= sctx->user;
- event.user_length= safe_strlen(sctx->user);
+ event.user_length= safe_strlen_uint(sctx->user);
event.priv_user= sctx->priv_user;
- event.priv_user_length= strlen(sctx->priv_user);
+ event.priv_user_length= strlen_uint(sctx->priv_user);
event.external_user= sctx->external_user;
- event.external_user_length= safe_strlen(sctx->external_user);
+ event.external_user_length= safe_strlen_uint(sctx->external_user);
event.proxy_user= sctx->proxy_user;
- event.proxy_user_length= strlen(sctx->proxy_user);
+ event.proxy_user_length= strlen_uint(sctx->proxy_user);
event.host= sctx->host;
- event.host_length= safe_strlen(sctx->host);
+ event.host_length= safe_strlen_uint(sctx->host);
event.ip= sctx->ip;
- event.ip_length= safe_strlen(sctx->ip);
+ event.ip_length= safe_strlen_uint(sctx->ip);
event.database= thd->db;
- event.database_length= safe_strlen(thd->db);
+ event.database_length= safe_strlen_uint(thd->db);
mysql_audit_notify(thd, MYSQL_AUDIT_CONNECTION_CLASS, &event);
}
@@ -229,19 +240,19 @@ void mysql_audit_notify_connection_disconnect(THD *thd, int errcode)
event.status= errcode;
event.thread_id= (unsigned long)thd->thread_id;
event.user= sctx->user;
- event.user_length= safe_strlen(sctx->user);
+ event.user_length= safe_strlen_uint(sctx->user);
event.priv_user= sctx->priv_user;
- event.priv_user_length= strlen(sctx->priv_user);
+ event.priv_user_length= strlen_uint(sctx->priv_user);
event.external_user= sctx->external_user;
- event.external_user_length= safe_strlen(sctx->external_user);
+ event.external_user_length= safe_strlen_uint(sctx->external_user);
event.proxy_user= sctx->proxy_user;
- event.proxy_user_length= strlen(sctx->proxy_user);
+ event.proxy_user_length= strlen_uint(sctx->proxy_user);
event.host= sctx->host;
- event.host_length= safe_strlen(sctx->host);
+ event.host_length= safe_strlen_uint(sctx->host);
event.ip= sctx->ip;
- event.ip_length= safe_strlen(sctx->ip) ;
+ event.ip_length= safe_strlen_uint(sctx->ip) ;
event.database= thd->db;
- event.database_length= safe_strlen(thd->db);
+ event.database_length= safe_strlen_uint(thd->db);
mysql_audit_notify(thd, MYSQL_AUDIT_CONNECTION_CLASS, &event);
}
@@ -260,19 +271,19 @@ void mysql_audit_notify_connection_change_user(THD *thd)
thd->get_stmt_da()->sql_errno() : 0;
event.thread_id= (unsigned long)thd->thread_id;
event.user= sctx->user;
- event.user_length= safe_strlen(sctx->user);
+ event.user_length= safe_strlen_uint(sctx->user);
event.priv_user= sctx->priv_user;
- event.priv_user_length= strlen(sctx->priv_user);
+ event.priv_user_length= strlen_uint(sctx->priv_user);
event.external_user= sctx->external_user;
- event.external_user_length= safe_strlen(sctx->external_user);
+ event.external_user_length= safe_strlen_uint(sctx->external_user);
event.proxy_user= sctx->proxy_user;
- event.proxy_user_length= strlen(sctx->proxy_user);
+ event.proxy_user_length= strlen_uint(sctx->proxy_user);
event.host= sctx->host;
- event.host_length= safe_strlen(sctx->host);
+ event.host_length= safe_strlen_uint(sctx->host);
event.ip= sctx->ip;
- event.ip_length= safe_strlen(sctx->ip);
+ event.ip_length= safe_strlen_uint(sctx->ip);
event.database= thd->db;
- event.database_length= safe_strlen(thd->db);
+ event.database_length= safe_strlen_uint(thd->db);
mysql_audit_notify(thd, MYSQL_AUDIT_CONNECTION_CLASS, &event);
}
@@ -297,9 +308,9 @@ void mysql_audit_external_lock(THD *thd, TABLE_SHARE *share, int lock)
event.host= sctx->host;
event.ip= sctx->ip;
event.database= share->db.str;
- event.database_length= share->db.length;
+ event.database_length= (unsigned int)share->db.length;
event.table= share->table_name.str;
- event.table_length= share->table_name.length;
+ event.table_length= (unsigned int)share->table_name.length;
event.new_database= 0;
event.new_database_length= 0;
event.new_table= 0;
@@ -331,9 +342,9 @@ void mysql_audit_create_table(TABLE *table)
event.host= sctx->host;
event.ip= sctx->ip;
event.database= share->db.str;
- event.database_length= share->db.length;
+ event.database_length= (unsigned int)share->db.length;
event.table= share->table_name.str;
- event.table_length= share->table_name.length;
+ event.table_length= (unsigned int)share->table_name.length;
event.new_database= 0;
event.new_database_length= 0;
event.new_table= 0;
@@ -363,9 +374,9 @@ void mysql_audit_drop_table(THD *thd, TABLE_LIST *table)
event.host= sctx->host;
event.ip= sctx->ip;
event.database= table->db;
- event.database_length= table->db_length;
+ event.database_length= (unsigned int)table->db_length;
event.table= table->table_name;
- event.table_length= table->table_name_length;
+ event.table_length= (unsigned int)table->table_name_length;
event.new_database= 0;
event.new_database_length= 0;
event.new_table= 0;
@@ -396,13 +407,13 @@ void mysql_audit_rename_table(THD *thd, const char *old_db, const char *old_tb,
event.host= sctx->host;
event.ip= sctx->ip;
event.database= old_db;
- event.database_length= strlen(old_db);
+ event.database_length= strlen_uint(old_db);
event.table= old_tb;
- event.table_length= strlen(old_tb);
+ event.table_length= strlen_uint(old_tb);
event.new_database= new_db;
- event.new_database_length= strlen(new_db);
+ event.new_database_length= strlen_uint(new_db);
event.new_table= new_tb;
- event.new_table_length= strlen(new_tb);
+ event.new_table_length= strlen_uint(new_tb);
event.query_id= thd->query_id;
mysql_audit_notify(thd, MYSQL_AUDIT_TABLE_CLASS, &event);
@@ -428,9 +439,9 @@ void mysql_audit_alter_table(THD *thd, TABLE_LIST *table)
event.host= sctx->host;
event.ip= sctx->ip;
event.database= table->db;
- event.database_length= table->db_length;
+ event.database_length= (unsigned int)table->db_length;
event.table= table->table_name;
- event.table_length= table->table_name_length;
+ event.table_length= (unsigned int)table->table_name_length;
event.new_database= 0;
event.new_database_length= 0;
event.new_table= 0;
diff --git a/sql/sql_bootstrap.cc b/sql/sql_bootstrap.cc
index 30d03029ce6..4ef9885b34d 100644
--- a/sql/sql_bootstrap.cc
+++ b/sql/sql_bootstrap.cc
@@ -24,8 +24,8 @@ int read_bootstrap_query(char *query, int *query_length,
{
char line_buffer[MAX_BOOTSTRAP_LINE_SIZE];
const char *line;
- int len;
- int query_len= 0;
+ size_t len;
+ size_t query_len= 0;
int fgets_error= 0;
*error= 0;
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index d090372bb1e..1ab2ac67802 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -5235,9 +5235,9 @@ void THD::inc_status_sort_range()
void THD::inc_status_sort_rows(ha_rows count)
{
- statistic_add(status_var.filesort_rows_, count, &LOCK_status);
+ statistic_add(status_var.filesort_rows_, (ha_rows)count, &LOCK_status);
#ifdef HAVE_PSI_STATEMENT_INTERFACE
- PSI_STATEMENT_CALL(inc_statement_sort_rows)(m_statement_psi, count);
+ PSI_STATEMENT_CALL(inc_statement_sort_rows)(m_statement_psi, (ulong)count);
#endif
}
diff --git a/sql/sql_class.h b/sql/sql_class.h
index 48e1f3cd0e3..e5aaba9b407 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -3853,7 +3853,7 @@ public:
mysql_mutex_unlock(&LOCK_thd_data);
#ifdef HAVE_PSI_THREAD_INTERFACE
if (result)
- PSI_THREAD_CALL(set_thread_db)(new_db, new_db_len);
+ PSI_THREAD_CALL(set_thread_db)(new_db, (int) new_db_len);
#endif
return result;
}
@@ -3878,7 +3878,7 @@ public:
db_length= new_db_len;
mysql_mutex_unlock(&LOCK_thd_data);
#ifdef HAVE_PSI_THREAD_INTERFACE
- PSI_THREAD_CALL(set_thread_db)(new_db, new_db_len);
+ PSI_THREAD_CALL(set_thread_db)(new_db, (int) new_db_len);
#endif
}
}
diff --git a/sql/sql_error.h b/sql/sql_error.h
index 3aef5d38368..0a1e7d38e01 100644
--- a/sql/sql_error.h
+++ b/sql/sql_error.h
@@ -571,7 +571,10 @@ public:
ErrConvString(const String *s)
: ErrConv(), str(s->ptr()), len(s->length()), cs(s->charset()) {}
const char *ptr() const
- { return err_conv(err_buffer, sizeof(err_buffer), str, len, cs); }
+ {
+ DBUG_ASSERT(len < UINT_MAX32);
+ return err_conv(err_buffer, (uint) sizeof(err_buffer), str, (uint) len, cs);
+ }
};
class ErrConvInteger : public ErrConv
diff --git a/sql/sql_join_cache.cc b/sql/sql_join_cache.cc
index 5a11bb82cbe..41741f3dcc7 100644
--- a/sql/sql_join_cache.cc
+++ b/sql/sql_join_cache.cc
@@ -695,7 +695,7 @@ void JOIN_CACHE::set_constants()
pack_length_with_blob_ptrs= pack_length + blobs*sizeof(uchar *);
min_buff_size= 0;
min_records= 1;
- buff_size= MY_MAX(join->thd->variables.join_buff_size,
+ buff_size= (size_t)MY_MAX(join->thd->variables.join_buff_size,
get_min_join_buffer_size());
size_of_rec_ofs= offset_size(buff_size);
size_of_rec_len= blobs ? size_of_rec_ofs : offset_size(len);
@@ -840,7 +840,7 @@ ulong JOIN_CACHE::get_max_join_buffer_size(bool optimize_buff_size)
len+= get_max_key_addon_space_per_record() + avg_aux_buffer_incr;
space_per_record= len;
- size_t limit_sz= join->thd->variables.join_buff_size;
+ size_t limit_sz= (size_t)join->thd->variables.join_buff_size;
if (join_tab->join_buffer_size_limit)
set_if_smaller(limit_sz, join_tab->join_buffer_size_limit);
if (!optimize_buff_size)
@@ -3828,7 +3828,7 @@ uint JOIN_TAB_SCAN_MRR::aux_buffer_incr(ulong recno)
set_if_bigger(rec_per_key, 1);
if (recno == 1)
incr= ref->key_length + tab->file->ref_length;
- incr+= tab->file->stats.mrr_length_per_rec * rec_per_key;
+ incr+= (uint)(tab->file->stats.mrr_length_per_rec * rec_per_key);
return incr;
}
diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc
index 4d776671ee7..7879edc3f67 100644
--- a/sql/sql_lex.cc
+++ b/sql/sql_lex.cc
@@ -379,7 +379,7 @@ void Lex_input_stream::body_utf8_append(const char *ptr,
if (m_cpp_utf8_processed_ptr >= ptr)
return;
- int bytes_to_copy= ptr - m_cpp_utf8_processed_ptr;
+ size_t bytes_to_copy= ptr - m_cpp_utf8_processed_ptr;
memcpy(m_body_utf8_ptr, m_cpp_utf8_processed_ptr, bytes_to_copy);
m_body_utf8_ptr += bytes_to_copy;
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index efa48c6e241..b2f20171467 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -1482,7 +1482,7 @@ uint maria_multi_check(THD *thd, char *packet, uint packet_length)
{
char *packet_start= packet;
size_t subpacket_length= net_field_length((uchar **)&packet_start);
- uint length_length= packet_start - packet;
+ size_t length_length= packet_start - packet;
// length of command + 3 bytes where that length was stored
DBUG_PRINT("info", ("sub-packet length: %ld + %d command: %x",
(ulong)subpacket_length, length_length,
@@ -1932,7 +1932,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
(The packet is guaranteed to end with an end zero)
*/
arg_end= strend(packet);
- uint arg_length= arg_end - packet;
+ uint arg_length= (uint)(arg_end - packet);
/* Check given table name length. */
if (packet_length - arg_length > NAME_LEN + 1 || arg_length > SAFE_NAME_LEN)
@@ -2262,7 +2262,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
char *packet_start= packet;
/* We have to store next length because it will be destroyed by '\0' */
size_t next_subpacket_length= net_field_length((uchar **)&packet_start);
- uint next_length_length= packet_start - packet;
+ size_t next_length_length= packet_start - packet;
unsigned char *readbuff= net->buff;
if (net_allocate_new_packet(net, thd, MYF(0)))
@@ -2277,7 +2277,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
{
current_com++;
size_t subpacket_length= next_subpacket_length + next_length_length;
- uint length_length= next_length_length;
+ size_t length_length= next_length_length;
if (subpacket_length < packet_length)
{
packet_start= packet + subpacket_length;
@@ -7645,7 +7645,7 @@ void create_select_for_variable(const char *var_name)
if ((var= get_system_var(thd, OPT_SESSION, tmp, null_lex_str)))
{
end= strxmov(buff, "@@session.", var_name, NullS);
- var->set_name(thd, buff, end-buff, system_charset_info);
+ var->set_name(thd, buff, (uint)(end-buff), system_charset_info);
add_item_to_list(thd, var);
}
DBUG_VOID_RETURN;
diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc
index eb18a5ba36f..6fe01519380 100644
--- a/sql/sql_plugin.cc
+++ b/sql/sql_plugin.cc
@@ -3307,14 +3307,14 @@ uchar* sys_var_pluginvar::real_value_ptr(THD *thd, enum_var_type type)
{
switch (plugin_var->flags & PLUGIN_VAR_TYPEMASK) {
case PLUGIN_VAR_BOOL:
- thd->sys_var_tmp.my_bool_value= option.def_value;
+ thd->sys_var_tmp.my_bool_value= (my_bool)option.def_value;
return (uchar*) &thd->sys_var_tmp.my_bool_value;
case PLUGIN_VAR_INT:
- thd->sys_var_tmp.int_value= option.def_value;
+ thd->sys_var_tmp.int_value= (int)option.def_value;
return (uchar*) &thd->sys_var_tmp.int_value;
case PLUGIN_VAR_LONG:
case PLUGIN_VAR_ENUM:
- thd->sys_var_tmp.long_value= option.def_value;
+ thd->sys_var_tmp.long_value= (long)option.def_value;
return (uchar*) &thd->sys_var_tmp.long_value;
case PLUGIN_VAR_LONGLONG:
case PLUGIN_VAR_SET:
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 513c02b99e4..0ce7ff958db 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -7807,7 +7807,7 @@ double table_cond_selectivity(JOIN *join, uint idx, JOIN_TAB *s,
*/
if (!is_hash_join_key_no(key))
{
- table_map quick_key_map= (table_map(1) << table->quick_key_parts[key]) - 1;
+ key_part_map quick_key_map= (key_part_map(1) << table->quick_key_parts[key]) - 1;
if (table->quick_rows[key] &&
!(quick_key_map & ~table->const_key_parts[key]))
{
diff --git a/sql/sql_string.cc b/sql/sql_string.cc
index c16b2ef9844..9808c081a54 100644
--- a/sql/sql_string.cc
+++ b/sql/sql_string.cc
@@ -32,9 +32,9 @@
** String functions
*****************************************************************************/
-bool String::real_alloc(uint32 length)
+bool String::real_alloc(size_t length)
{
- uint32 arg_length= ALIGN_SIZE(length + 1);
+ size_t arg_length= ALIGN_SIZE(length + 1);
DBUG_ASSERT(arg_length > length);
if (arg_length <= length)
return TRUE; /* Overflow */
@@ -46,7 +46,8 @@ bool String::real_alloc(uint32 length)
(thread_specific ?
MY_THREAD_SPECIFIC : 0)))))
return TRUE;
- Alloced_length=arg_length;
+ DBUG_ASSERT(length < UINT_MAX32);
+ Alloced_length=(uint32) arg_length;
alloced=1;
}
Ptr[0]=0;
@@ -81,7 +82,7 @@ bool String::real_alloc(uint32 length)
@retval true An error occurred when attempting to allocate memory.
*/
-bool String::realloc_raw(uint32 alloc_length)
+bool String::realloc_raw(size_t alloc_length)
{
if (Alloced_length <= alloc_length)
{
@@ -113,7 +114,8 @@ bool String::realloc_raw(uint32 alloc_length)
else
return TRUE; // Signal error
Ptr= new_ptr;
- Alloced_length= len;
+ DBUG_ASSERT(len < UINT_MAX32);
+ Alloced_length= (uint32)len;
}
return FALSE;
}
@@ -140,7 +142,7 @@ bool String::set_real(double num,uint decimals, CHARSET_INFO *cs)
if (decimals >= FLOATING_POINT_DECIMALS)
{
len= my_gcvt(num, MY_GCVT_ARG_DOUBLE, sizeof(buff) - 1, buff, NULL);
- return copy(buff, len, &my_charset_latin1, cs, &dummy_errors);
+ return copy(buff, (uint)len, &my_charset_latin1, cs, &dummy_errors);
}
len= my_fcvt(num, decimals, buff, NULL);
return copy(buff, (uint32) len, &my_charset_latin1, cs,
@@ -180,10 +182,11 @@ bool String::copy(const String &str)
return FALSE;
}
-bool String::copy(const char *str,uint32 arg_length, CHARSET_INFO *cs)
+bool String::copy(const char *str,size_t arg_length, CHARSET_INFO *cs)
{
if (alloc(arg_length))
return TRUE;
+ DBUG_ASSERT(arg_length < UINT_MAX32);
if ((str_length=arg_length))
memcpy(Ptr,str,arg_length);
Ptr[arg_length]=0;
@@ -440,8 +443,10 @@ bool String::append(const String &s)
Append an ASCII string to the a string of the current character set
*/
-bool String::append(const char *s,uint32 arg_length)
+bool String::append(const char *s,size_t size)
{
+ DBUG_ASSERT(size <= UINT_MAX32);
+ uint32 arg_length= (uint32) size;
if (!arg_length)
return FALSE;
@@ -485,7 +490,7 @@ bool String::append_longlong(longlong val)
if (realloc(str_length+MAX_BIGINT_WIDTH+2))
return TRUE;
char *end= (char*) longlong10_to_str(val, (char*) Ptr + str_length, -10);
- str_length= end - Ptr;
+ str_length= (uint32)(end - Ptr);
return FALSE;
}
@@ -495,7 +500,7 @@ bool String::append_ulonglong(ulonglong val)
if (realloc(str_length+MAX_BIGINT_WIDTH+2))
return TRUE;
char *end= (char*) longlong10_to_str(val, (char*) Ptr + str_length, 10);
- str_length= end - Ptr;
+ str_length= (uint32) (end - Ptr);
return FALSE;
}
@@ -591,7 +596,7 @@ bool String::append_with_prefill(const char *s,uint32 arg_length,
uint32 String::numchars() const
{
- return str_charset->cset->numchars(str_charset, Ptr, Ptr+str_length);
+ return (uint32) str_charset->cset->numchars(str_charset, Ptr, Ptr+str_length);
}
int String::charpos(longlong i,uint32 offset)
@@ -720,7 +725,7 @@ void String::qs_append(const char *str, uint32 len)
void String::qs_append(double d)
{
char *buff = Ptr + str_length;
- str_length+= my_gcvt(d, MY_GCVT_ARG_DOUBLE, FLOATING_POINT_BUFFER - 1, buff,
+ str_length+= (uint32) my_gcvt(d, MY_GCVT_ARG_DOUBLE, FLOATING_POINT_BUFFER - 1, buff,
NULL);
}
@@ -1025,10 +1030,10 @@ String_copier::well_formed_copy(CHARSET_INFO *to_cs,
my_charset_same(from_cs, to_cs))
{
m_cannot_convert_error_pos= NULL;
- return to_cs->cset->copy_fix(to_cs, to, to_length, from, from_length,
+ return (uint) to_cs->cset->copy_fix(to_cs, to, to_length, from, from_length,
nchars, this);
}
- return my_convert_fix(to_cs, to, to_length, from_cs, from, from_length,
+ return (uint) my_convert_fix(to_cs, to, to_length, from_cs, from, from_length,
nchars, this, this);
}
@@ -1164,5 +1169,5 @@ uint convert_to_printable(char *to, size_t to_len,
memcpy(dots, STRING_WITH_LEN("...\0"));
else
*t= '\0';
- return t - to;
+ return (uint) (t - to);
}
diff --git a/sql/sql_string.h b/sql/sql_string.h
index 1310819d2e3..1a4690a92f4 100644
--- a/sql/sql_string.h
+++ b/sql/sql_string.h
@@ -354,22 +354,22 @@ public:
Ptr=0;
str_length=0; /* Safety */
}
- inline bool alloc(uint32 arg_length)
+ inline bool alloc(size_t arg_length)
{
if (arg_length < Alloced_length)
return 0;
return real_alloc(arg_length);
}
- bool real_alloc(uint32 arg_length); // Empties old string
- bool realloc_raw(uint32 arg_length);
- bool realloc(uint32 arg_length)
+ bool real_alloc(size_t arg_length); // Empties old string
+ bool realloc_raw(size_t arg_length);
+ bool realloc(size_t arg_length)
{
if (realloc_raw(arg_length))
return TRUE;
Ptr[arg_length]=0; // This make other funcs shorter
return FALSE;
}
- bool realloc_with_extra(uint32 arg_length)
+ bool realloc_with_extra(size_t arg_length)
{
if (extra_alloc < 4096)
extra_alloc= extra_alloc*2+128;
@@ -378,7 +378,7 @@ public:
Ptr[arg_length]=0; // This make other funcs shorter
return FALSE;
}
- bool realloc_with_extra_if_needed(uint32 arg_length)
+ bool realloc_with_extra_if_needed(size_t arg_length)
{
if (arg_length < Alloced_length)
{
@@ -388,7 +388,7 @@ public:
return realloc_with_extra(arg_length);
}
// Shrink the buffer, but only if it is allocated on the heap.
- inline void shrink(uint32 arg_length)
+ inline void shrink(size_t arg_length)
{
if (!is_alloced())
return;
@@ -405,7 +405,7 @@ public:
else
{
Ptr=new_ptr;
- Alloced_length=arg_length;
+ Alloced_length=(uint32)arg_length;
}
}
}
@@ -428,7 +428,7 @@ public:
bool copy(); // Alloc string if not alloced
bool copy(const String &s); // Allocate new string
- bool copy(const char *s,uint32 arg_length, CHARSET_INFO *cs); // Allocate new string
+ bool copy(const char *s,size_t arg_length, CHARSET_INFO *cs); // Allocate new string
static bool needs_conversion(uint32 arg_length,
CHARSET_INFO *cs_from, CHARSET_INFO *cs_to,
uint32 *offset);
@@ -466,10 +466,10 @@ public:
}
bool append(const String &s);
bool append(const char *s);
- bool append(const LEX_STRING *ls) { return append(ls->str, (uint32)ls->length); }
- bool append(const LEX_CSTRING *ls) { return append(ls->str, (uint32)ls->length); }
- bool append(const char *s, uint32 arg_length);
- bool append(const char *s, uint32 arg_length, CHARSET_INFO *cs);
+ bool append(const LEX_STRING *ls) { return append(ls->str, (uint32) ls->length); }
+ bool append(const LEX_CSTRING *ls) { return append(ls->str, (uint32) ls->length); }
+ bool append(const char *s, size_t size);
+ bool append(const char *s, uint arg_length, CHARSET_INFO *cs);
bool append_ulonglong(ulonglong val);
bool append_longlong(longlong val);
bool append(IO_CACHE* file, uint32 arg_length);
@@ -552,10 +552,11 @@ public:
float8store(Ptr + str_length, *d);
str_length += 8;
}
- void q_append(const char *data, uint32 data_len)
+ void q_append(const char *data, size_t data_len)
{
memcpy(Ptr + str_length, data, data_len);
- str_length += data_len;
+ DBUG_ASSERT(str_length <= UINT_MAX32 - data_len);
+ str_length += (uint)data_len;
}
void write_at_position(int position, uint32 value)
@@ -634,7 +635,9 @@ public:
}
bool append_for_single_quote(const char *st)
{
- return append_for_single_quote(st, (uint)strlen(st));
+ size_t len= strlen(st);
+ DBUG_ASSERT(len < UINT_MAX32);
+ return append_for_single_quote(st, (uint32) len);
}
/* Swap two string objects. Efficient way to exchange data without memcpy. */
@@ -678,10 +681,11 @@ public:
}
void q_net_store_data(const uchar *from, size_t length)
{
+ DBUG_ASSERT(length < UINT_MAX32);
DBUG_ASSERT(Alloced_length >= (str_length + length +
net_length_size(length)));
q_net_store_length(length);
- q_append((const char *)from, length);
+ q_append((const char *)from, (uint32) length);
}
};
diff --git a/sql/sql_time.h b/sql/sql_time.h
index e0cab5cfa66..d560edc296e 100644
--- a/sql/sql_time.h
+++ b/sql/sql_time.h
@@ -194,7 +194,7 @@ inline bool parse_date_time_format(timestamp_type format_type,
{
return parse_date_time_format(format_type,
date_time_format->format.str,
- date_time_format->format.length,
+ (uint) date_time_format->format.length,
date_time_format);
}
diff --git a/sql/sql_window.cc b/sql/sql_window.cc
index 0e407308d4e..5fae2228646 100644
--- a/sql/sql_window.cc
+++ b/sql/sql_window.cc
@@ -1733,7 +1733,7 @@ public:
private:
void move_cursor_if_possible()
{
- int rows_difference= n_rows - n_rows_behind;
+ longlong rows_difference= n_rows - n_rows_behind;
if (rows_difference > 0) /* We still have to wait. */
return;
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index 5f956e02bcf..e994ec5f2a5 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -16547,7 +16547,7 @@ view_select:
opt_with_clause query_expression_body_view view_check_option
{
LEX *lex= Lex;
- uint len= YYLIP->get_cpp_ptr() - lex->create_view_select.str;
+ size_t len= YYLIP->get_cpp_ptr() - lex->create_view_select.str;
uint not_used;
void *create_view_select= thd->memdup(lex->create_view_select.str, len);
lex->create_view_select.length= len;
diff --git a/sql/sys_vars.cc b/sql/sys_vars.cc
index 6f3ccfc9823..9f5dfa2d3a9 100644
--- a/sql/sys_vars.cc
+++ b/sql/sys_vars.cc
@@ -2733,7 +2733,7 @@ static Sys_var_enum Sys_thread_handling(
#ifdef HAVE_QUERY_CACHE
static bool fix_query_cache_size(sys_var *self, THD *thd, enum_var_type type)
{
- ulong new_cache_size= query_cache.resize(query_cache_size);
+ ulong new_cache_size= query_cache.resize((ulong)query_cache_size);
/*
Note: query_cache_size is a global variable reflecting the
requested cache size. See also query_cache_size_arg
@@ -4705,7 +4705,7 @@ static Sys_var_multi_source_ulonglong Sys_slave_skip_counter(
static bool update_max_relay_log_size(sys_var *self, THD *thd, Master_info *mi)
{
mi->rli.max_relay_log_size= thd->variables.max_relay_log_size;
- mi->rli.relay_log.set_max_size(mi->rli.max_relay_log_size);
+ mi->rli.relay_log.set_max_size((ulong)mi->rli.max_relay_log_size);
return false;
}
@@ -5330,7 +5330,7 @@ static Sys_var_ulong Sys_rowid_merge_buff_size(
"rowid_merge_buff_size",
"The size of the buffers used [NOT] IN evaluation via partial matching",
SESSION_VAR(rowid_merge_buff_size), CMD_LINE(REQUIRED_ARG),
- VALID_RANGE(0, ((ulonglong)~(intptr)0)/2), DEFAULT(8*1024*1024),
+ VALID_RANGE(0, LONG_MAX), DEFAULT(8*1024*1024),
BLOCK_SIZE(1));
static Sys_var_mybool Sys_userstat(
diff --git a/sql/sys_vars.ic b/sql/sys_vars.ic
index 780450b484b..bc913b1adbd 100644
--- a/sql/sys_vars.ic
+++ b/sql/sys_vars.ic
@@ -234,25 +234,25 @@ typedef Sys_var_integer<long, GET_LONG, SHOW_SLONG> Sys_var_long;
template<> uchar *Sys_var_int::default_value_ptr(THD *thd)
{
- thd->sys_var_tmp.int_value= option.def_value;
+ thd->sys_var_tmp.int_value= (int)option.def_value;
return (uchar*) &thd->sys_var_tmp.int_value;
}
template<> uchar *Sys_var_uint::default_value_ptr(THD *thd)
{
- thd->sys_var_tmp.uint_value= option.def_value;
+ thd->sys_var_tmp.uint_value= (uint)option.def_value;
return (uchar*) &thd->sys_var_tmp.uint_value;
}
template<> uchar *Sys_var_long::default_value_ptr(THD *thd)
{
- thd->sys_var_tmp.long_value= option.def_value;
+ thd->sys_var_tmp.long_value= (long)option.def_value;
return (uchar*) &thd->sys_var_tmp.long_value;
}
template<> uchar *Sys_var_ulong::default_value_ptr(THD *thd)
{
- thd->sys_var_tmp.ulong_value= option.def_value;
+ thd->sys_var_tmp.ulong_value= (ulong)option.def_value;
return (uchar*) &thd->sys_var_tmp.ulong_value;
}
@@ -369,7 +369,7 @@ public:
uchar *global_value_ptr(THD *thd, const LEX_STRING *base)
{ return valptr(thd, global_var(ulong)); }
uchar *default_value_ptr(THD *thd)
- { return valptr(thd, option.def_value); }
+ { return valptr(thd, (ulong)option.def_value); }
};
/**
@@ -416,7 +416,7 @@ public:
{ var->save_result.ulonglong_value= option.def_value; }
uchar *default_value_ptr(THD *thd)
{
- thd->sys_var_tmp.my_bool_value= option.def_value;
+ thd->sys_var_tmp.my_bool_value=(my_bool) option.def_value;
return (uchar*) &thd->sys_var_tmp.my_bool_value;
}
};
diff --git a/sql/table.cc b/sql/table.cc
index 7e75015deb9..2f403de9888 100644
--- a/sql/table.cc
+++ b/sql/table.cc
@@ -343,7 +343,7 @@ TABLE_SHARE *alloc_table_share(const char *db, const char *table_name,
*/
do
{
- share->table_map_id= my_atomic_add64_explicit(&last_table_id, 1,
+ share->table_map_id=(ulong) my_atomic_add64_explicit(&last_table_id, 1,
MY_MEMORY_ORDER_RELAXED);
} while (unlikely(share->table_map_id == ~0UL));
}
diff --git a/sql/table_cache.cc b/sql/table_cache.cc
index f7296ca72c8..8c14b60e73c 100644
--- a/sql/table_cache.cc
+++ b/sql/table_cache.cc
@@ -1203,13 +1203,13 @@ int tdc_wait_for_old_version(THD *thd, const char *db, const char *table_name,
ulong tdc_refresh_version(void)
{
- return my_atomic_load64_explicit(&tdc_version, MY_MEMORY_ORDER_RELAXED);
+ return (ulong)my_atomic_load64_explicit(&tdc_version, MY_MEMORY_ORDER_RELAXED);
}
ulong tdc_increment_refresh_version(void)
{
- ulong v= my_atomic_add64_explicit(&tdc_version, 1, MY_MEMORY_ORDER_RELAXED);
+ ulong v= (ulong)my_atomic_add64_explicit(&tdc_version, 1, MY_MEMORY_ORDER_RELAXED);
DBUG_PRINT("tcache", ("incremented global refresh_version to: %lu", v));
return v + 1;
}
diff --git a/sql/threadpool_generic.cc b/sql/threadpool_generic.cc
index 880593a17e9..e90f87fffc4 100644
--- a/sql/threadpool_generic.cc
+++ b/sql/threadpool_generic.cc
@@ -55,6 +55,9 @@ typedef OVERLAPPED_ENTRY native_event;
#error threadpool is not available on this platform
#endif
+#ifdef _MSC_VER
+#pragma warning (disable : 4312)
+#endif
static void io_poll_close(int fd)
{
@@ -447,6 +450,7 @@ static void* native_event_get_userdata(native_event *event)
#elif defined(HAVE_IOCP)
+
static int io_poll_create()
{
HANDLE h= CreateIoCompletionPort(INVALID_HANDLE_VALUE, 0, 0, 0);
@@ -504,7 +508,6 @@ static void* native_event_get_userdata(native_event *event)
{
return (void *)event->lpCompletionKey;
}
-
#endif
@@ -1483,7 +1486,7 @@ static int change_group(TP_connection_generic *c,
thread_group_t *new_group)
{
int ret= 0;
- int fd= mysql_socket_getfd(c->thd->net.vio->mysql_socket);
+ int fd= (int)mysql_socket_getfd(c->thd->net.vio->mysql_socket);
DBUG_ASSERT(c->thread_group == old_group);
@@ -1511,7 +1514,7 @@ static int change_group(TP_connection_generic *c,
int TP_connection_generic::start_io()
{
- int fd= mysql_socket_getfd(thd->net.vio->mysql_socket);
+ int fd= (int)mysql_socket_getfd(thd->net.vio->mysql_socket);
#ifndef HAVE_IOCP
/*
diff --git a/sql/udf_example.c b/sql/udf_example.c
index a48801d1c4a..c7e2f989829 100644
--- a/sql/udf_example.c
+++ b/sql/udf_example.c
@@ -1095,7 +1095,7 @@ my_bool is_const_init(UDF_INIT *initid, UDF_ARGS *args, char *message)
strmov(message, "IS_CONST accepts only one argument");
return 1;
}
- initid->ptr= (char*)((args->args[0] != NULL) ? 1UL : 0);
+ initid->ptr= (char*)((args->args[0] != NULL) ? (size_t)1 : (size_t)0);
return 0;
}
diff --git a/sql/unireg.cc b/sql/unireg.cc
index 8dbfed1cd7e..06151d9318b 100644
--- a/sql/unireg.cc
+++ b/sql/unireg.cc
@@ -619,7 +619,7 @@ static bool pack_header(THD *thd, uchar *forminfo,
ER_TOO_LONG_FIELD_COMMENT, field->field_name))
DBUG_RETURN(1);
- totlength+= field->length;
+ totlength+= (size_t)field->length;
com_length+= field->comment.length;
/*
We mark first TIMESTAMP field with NOW() in DEFAULT or ON UPDATE
@@ -949,7 +949,7 @@ static bool make_empty_rec(THD *thd, uchar *buff, uint table_options,
/* regfield don't have to be deleted as it's allocated on THD::mem_root */
Field *regfield= make_field(&share, thd->mem_root,
buff+field->offset + data_offset,
- field->length,
+ (uint32)field->length,
null_pos + null_count / 8,
null_count & 7,
field->pack_flag,