diff --git a/include/ma_global.h b/include/ma_global.h index 5699aefe..bcb1b70c 100644 --- a/include/ma_global.h +++ b/include/ma_global.h @@ -336,7 +336,14 @@ typedef unsigned short ushort; typedef int File; /* File descriptor */ #ifndef my_socket_defined -typedef int my_socket; /* File descriptor for sockets */ +#define my_socket_defined +#if defined(_WIN64) +#define my_socket unsigned long long +#elif defined(_WIN32) +#define my_socket unsigned int +#else +typedef int my_socket; +#endif #define my_socket_defined #endif #ifndef INVALID_SOCKET diff --git a/include/mysql.h b/include/mysql.h index 8c8e60e9..ca1b8d22 100644 --- a/include/mysql.h +++ b/include/mysql.h @@ -717,8 +717,8 @@ struct st_mariadb_api { my_bool (STDCALL *mysql_rollback)(MYSQL *mysql); unsigned long long (STDCALL *mysql_insert_id)(MYSQL *mysql); unsigned int (STDCALL *mysql_errno)(MYSQL *mysql); - char * (STDCALL *mysql_error)(MYSQL *mysql); - char * (STDCALL *mysql_info)(MYSQL *mysql); + const char * (STDCALL *mysql_error)(MYSQL *mysql); + const char * (STDCALL *mysql_info)(MYSQL *mysql); unsigned long (STDCALL *mysql_thread_id)(MYSQL *mysql); const char * (STDCALL *mysql_character_set_name)(MYSQL *mysql); void (STDCALL *mysql_get_character_set_info)(MYSQL *mysql, MY_CHARSET_INFO *cs); diff --git a/libmariadb/ma_dtoa.c b/libmariadb/ma_dtoa.c index bfc0c962..e45f7927 100644 --- a/libmariadb/ma_dtoa.c +++ b/libmariadb/ma_dtoa.c @@ -108,7 +108,7 @@ size_t ma_fcvt(double x, int precision, char *to, my_bool *error) } src= res; - len= end - src; + len= (int)(end - src); if (sign) *dst++= '-'; @@ -240,7 +240,7 @@ size_t ma_gcvt(double x, my_gcvt_arg_type type, int width, char *to, *error= FALSE; src= res; - len= end - res; + len= (int)(end - res); /* Number of digits in the exponent from the 'e' conversion. @@ -332,7 +332,7 @@ size_t ma_gcvt(double x, my_gcvt_arg_type type, int width, char *to, dtoa_free(res, buf, sizeof(buf)); res= dtoa(x, 5, width - decpt, &decpt, &sign, &end, buf, sizeof(buf)); src= res; - len= end - res; + len= (int)(end - res); } if (len == 0) @@ -398,7 +398,7 @@ size_t ma_gcvt(double x, my_gcvt_arg_type type, int width, char *to, dtoa_free(res, buf, sizeof(buf)); res= dtoa(x, 4, width, &decpt, &sign, &end, buf, sizeof(buf)); src= res; - len= end - res; + len= (int)(end - res); if (--decpt < 0) decpt= -decpt; } diff --git a/libmariadb/ma_stmt_codec.c b/libmariadb/ma_stmt_codec.c index 66672803..c6fe3ce8 100644 --- a/libmariadb/ma_stmt_codec.c +++ b/libmariadb/ma_stmt_codec.c @@ -594,7 +594,7 @@ static void convert_from_float(MYSQL_BIND *r_param, const MYSQL_FIELD *field, fl if (field->decimals >= NOT_FIXED_DEC) { - length= ma_gcvt(val, MY_GCVT_ARG_FLOAT, length, buff, NULL); + length= ma_gcvt(val, MY_GCVT_ARG_FLOAT, (int)length, buff, NULL); } else { @@ -693,7 +693,7 @@ static void convert_from_double(MYSQL_BIND *r_param, const MYSQL_FIELD *field, d if (field->decimals >= NOT_FIXED_DEC) { - length= ma_gcvt(val, MY_GCVT_ARG_DOUBLE, length, buff, NULL); + length= ma_gcvt(val, MY_GCVT_ARG_DOUBLE, (int)length, buff, NULL); } else { @@ -851,7 +851,7 @@ void ps_fetch_datetime(MYSQL_BIND *r_param, const MYSQL_FIELD * field, { char dtbuffer[60]; MYSQL_TIME tm; - unsigned int length; + size_t length; convert_to_datetime(&tm, row, len, field->type); /* if (tm.time_type== MYSQL_TIMESTAMP_TIME && tm.day) diff --git a/libmariadb/mariadb_lib.c b/libmariadb/mariadb_lib.c index c1b42e05..6780949a 100644 --- a/libmariadb/mariadb_lib.c +++ b/libmariadb/mariadb_lib.c @@ -2703,12 +2703,12 @@ mysql_optionsv(MYSQL *mysql,enum mysql_option option, ...) break; case MYSQL_OPT_MAX_ALLOWED_PACKET: if (mysql) - mysql->options.max_allowed_packet= (*(size_t *)arg1); + mysql->options.max_allowed_packet= (unsigned long)(*(size_t *)arg1); else - max_allowed_packet= (*(size_t *)arg1); + max_allowed_packet= (unsigned long)(*(size_t *)arg1); break; case MYSQL_OPT_NET_BUFFER_LENGTH: - net_buffer_length= (*(size_t *)arg1); + net_buffer_length= (unsigned long)(*(size_t *)arg1); break; case MYSQL_OPT_SSL_ENFORCE: mysql->options.use_ssl= (*(my_bool *)arg1); diff --git a/libmariadb/mariadb_stmt.c b/libmariadb/mariadb_stmt.c index 8508a67a..4f407235 100644 --- a/libmariadb/mariadb_stmt.c +++ b/libmariadb/mariadb_stmt.c @@ -565,7 +565,7 @@ int store_param(MYSQL_STMT *stmt, int column, unsigned char **p, unsigned long r len= (ulong)STMT_NUM_OFS(long, stmt->params[column].length, row_nr); if ((long)len == STMT_INDICATOR_NTS) - len= strlen((char *)buf); + len= (ulong)strlen((char *)buf); to = mysql_net_store_length(*p, len); if (len) @@ -700,7 +700,7 @@ unsigned char* mysql_stmt_execute_generate_request(MYSQL_STMT *stmt, size_t *req { for (i=0; i < stmt->param_count; i++) { - ulong size= 0; + size_t size= 0; my_bool has_data= TRUE; char indicator= 0; diff --git a/plugins/auth/sspi_errmsg.c b/plugins/auth/sspi_errmsg.c index 5e212bfb..558bedcb 100644 --- a/plugins/auth/sspi_errmsg.c +++ b/plugins/auth/sspi_errmsg.c @@ -138,7 +138,7 @@ void sspi_errmsg(int err, char *buf, size_t size) len = FormatMessageA( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, err, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), - buf, size, NULL); + buf, (DWORD)size, NULL); if(len > 0) { diff --git a/unittest/libmariadb/bulk1.c b/unittest/libmariadb/bulk1.c index 612b9aac..9454af71 100644 --- a/unittest/libmariadb/bulk1.c +++ b/unittest/libmariadb/bulk1.c @@ -179,7 +179,7 @@ static int bulk3(MYSQL *mysql) MYSQL_STMT *stmt= mysql_stmt_init(mysql); size_t row_size= sizeof(struct st_bulk3); int array_size= 3; - size_t length= -1; + ulong length= -1; rc= mysql_query(mysql, "DROP TABLE IF EXISTS bulk3"); check_mysql_rc(rc,mysql); diff --git a/unittest/libmariadb/features-10_2.c b/unittest/libmariadb/features-10_2.c index 1910bcfc..3ae63f92 100644 --- a/unittest/libmariadb/features-10_2.c +++ b/unittest/libmariadb/features-10_2.c @@ -190,7 +190,7 @@ static int com_multi_ps2(MYSQL *mysql) bind[0].buffer= &intval; bind[1].buffer_type= MYSQL_TYPE_STRING; bind[1].buffer= (char *)varval; - bind[1].buffer_length= strlen(varval); + bind[1].buffer_length= (ulong)strlen(varval); stmt= mysql_stmt_init(mysql); mysql_stmt_attr_set(stmt, STMT_ATTR_PREBIND_PARAMS, ¶m_count); @@ -284,7 +284,7 @@ static int execute_direct_example(MYSQL *mysql) bind[0].buffer= &intval; bind[1].buffer_type= MYSQL_TYPE_STRING; bind[1].buffer= (char *)strval; - bind[1].buffer_length= strlen(strval); + bind[1].buffer_length= (ulong)strlen(strval); /* set number of parameters */ if (mysql_stmt_attr_set(stmt, STMT_ATTR_PREBIND_PARAMS, ¶m_count)) diff --git a/unittest/libmariadb/ps.c b/unittest/libmariadb/ps.c index 9965e48d..2a1488c6 100644 --- a/unittest/libmariadb/ps.c +++ b/unittest/libmariadb/ps.c @@ -3418,7 +3418,7 @@ static int test_double_compare(MYSQL *mysql) tiny_data= 1; strcpy(real_data, "10.2"); - length[1]= strlen(real_data); + length[1]= (ulong)strlen(real_data); double_data= 34.5; rc= mysql_stmt_bind_param(stmt, my_bind); check_stmt_rc(rc, stmt);