some small changes to help get 5.1 compiling cleanly on Windows and with Visual C++ 2005

parent 98e20c9b
...@@ -3030,8 +3030,8 @@ ha_innobase::store_key_val_for_row( ...@@ -3030,8 +3030,8 @@ ha_innobase::store_key_val_for_row(
if (key_part->length > 0 && cs->mbmaxlen > 1) { if (key_part->length > 0 && cs->mbmaxlen > 1) {
len = (ulint) cs->cset->well_formed_len(cs, len = (ulint) cs->cset->well_formed_len(cs,
src_start, (const char*)src_start,
src_start + key_part->length, (const char*)(src_start + key_part->length),
key_part->length / cs->mbmaxlen, key_part->length / cs->mbmaxlen,
&error); &error);
} else { } else {
......
...@@ -883,7 +883,7 @@ int ha_partition::open(const char *name, int mode, uint test_if_locked) ...@@ -883,7 +883,7 @@ int ha_partition::open(const char *name, int mode, uint test_if_locked)
alloc_len+= table->s->max_key_length; alloc_len+= table->s->max_key_length;
if (!m_ordered_rec_buffer) if (!m_ordered_rec_buffer)
{ {
if (!(m_ordered_rec_buffer= my_malloc(alloc_len, MYF(MY_WME)))) if (!(m_ordered_rec_buffer= (byte*)my_malloc(alloc_len, MYF(MY_WME))))
{ {
DBUG_RETURN(1); DBUG_RETURN(1);
} }
...@@ -895,14 +895,14 @@ int ha_partition::open(const char *name, int mode, uint test_if_locked) ...@@ -895,14 +895,14 @@ int ha_partition::open(const char *name, int mode, uint test_if_locked)
We also set-up a reference to the first record for temporary use in We also set-up a reference to the first record for temporary use in
setting up the scan. setting up the scan.
*/ */
char *ptr= m_ordered_rec_buffer; char *ptr= (char*)m_ordered_rec_buffer;
uint i= 0; uint i= 0;
do do
{ {
int2store(ptr, i); int2store(ptr, i);
ptr+= m_rec_length + PARTITION_BYTES_IN_POS; ptr+= m_rec_length + PARTITION_BYTES_IN_POS;
} while (++i < m_tot_parts); } while (++i < m_tot_parts);
m_start_key.key= ptr; m_start_key.key= (const byte*)ptr;
} }
} }
file= m_file; file= m_file;
......
...@@ -461,7 +461,7 @@ int key_rec_cmp(void *key, byte *first_rec, byte *second_rec) ...@@ -461,7 +461,7 @@ int key_rec_cmp(void *key, byte *first_rec, byte *second_rec)
uint key_parts= key_info->key_parts, i= 0; uint key_parts= key_info->key_parts, i= 0;
KEY_PART_INFO *key_part= key_info->key_part; KEY_PART_INFO *key_part= key_info->key_part;
char *rec0= key_part->field->ptr - key_part->offset; char *rec0= key_part->field->ptr - key_part->offset;
my_ptrdiff_t first_diff= first_rec - rec0, sec_diff= second_rec - rec0; my_ptrdiff_t first_diff= first_rec - (byte*)rec0, sec_diff= second_rec - (byte*)rec0;
int result= 0; int result= 0;
DBUG_ENTER("key_rec_cmp"); DBUG_ENTER("key_rec_cmp");
......
...@@ -84,6 +84,7 @@ extern my_bool innobase_log_archive, ...@@ -84,6 +84,7 @@ extern my_bool innobase_log_archive,
innobase_file_per_table, innobase_file_per_table,
innobase_locks_unsafe_for_binlog; innobase_locks_unsafe_for_binlog;
extern "C" {
extern ulong srv_max_buf_pool_modified_pct; extern ulong srv_max_buf_pool_modified_pct;
extern ulong srv_max_purge_lag; extern ulong srv_max_purge_lag;
extern ulong srv_auto_extend_increment; extern ulong srv_auto_extend_increment;
...@@ -92,6 +93,7 @@ extern ulong srv_n_free_tickets_to_enter; ...@@ -92,6 +93,7 @@ extern ulong srv_n_free_tickets_to_enter;
extern ulong srv_thread_sleep_delay; extern ulong srv_thread_sleep_delay;
extern ulong srv_thread_concurrency; extern ulong srv_thread_concurrency;
extern ulong srv_commit_concurrency; extern ulong srv_commit_concurrency;
}
/* WITH_NDBCLUSTER_STORAGE_ENGINE */ /* WITH_NDBCLUSTER_STORAGE_ENGINE */
extern ulong ndb_cache_check_time; extern ulong ndb_cache_check_time;
......
...@@ -2937,7 +2937,7 @@ void get_partition_set(const TABLE *table, byte *buf, const uint index, ...@@ -2937,7 +2937,7 @@ void get_partition_set(const TABLE *table, byte *buf, const uint index,
sub_part= get_sub_part_id_from_key(table, buf, key_info, key_spec); sub_part= get_sub_part_id_from_key(table, buf, key_info, key_spec);
else if (part_info->all_fields_in_PPF.is_set(index)) else if (part_info->all_fields_in_PPF.is_set(index))
{ {
if (get_part_id_from_key(table,buf,key_info,key_spec,&part_part)) if (get_part_id_from_key(table,buf,key_info,key_spec,(uint32*)&part_part))
{ {
/* /*
The value of the RANGE or LIST partitioning was outside of The value of the RANGE or LIST partitioning was outside of
...@@ -2976,7 +2976,7 @@ void get_partition_set(const TABLE *table, byte *buf, const uint index, ...@@ -2976,7 +2976,7 @@ void get_partition_set(const TABLE *table, byte *buf, const uint index,
sub_part= get_sub_part_id_from_key(table, buf, key_info, key_spec); sub_part= get_sub_part_id_from_key(table, buf, key_info, key_spec);
else if (check_part_func_bound(part_info->subpart_field_array)) else if (check_part_func_bound(part_info->subpart_field_array))
{ {
if (get_part_id_from_key(table,buf,key_info,key_spec,&part_part)) if (get_part_id_from_key(table,buf,key_info,key_spec,(uint32*)&part_part))
{ {
part_spec->start_part= no_parts; part_spec->start_part= no_parts;
clear_indicator_in_key_fields(key_info); clear_indicator_in_key_fields(key_info);
......
...@@ -168,11 +168,8 @@ void udf_init() ...@@ -168,11 +168,8 @@ void udf_init()
This is done to ensure that only approved dll from the system This is done to ensure that only approved dll from the system
directories are used (to make this even remotely secure). directories are used (to make this even remotely secure).
*/ */
if (my_strchr(files_charset_info, dl_name, if (my_strchr(files_charset_info, dl_name, dl_name + strlen(dl_name), FN_LIBCHAR) ||
dl_name + strlen(dl_name), '/') || strlen(name.str) > NAME_LEN)
IF_WIN(my_strchr(files_charset_info, dl_name,
dl_name + strlen(dl_name), '\\'),0) ||
strlen(name.str) > NAME_LEN)
{ {
sql_print_error("Invalid row in mysql.func table for function '%.64s'", sql_print_error("Invalid row in mysql.func table for function '%.64s'",
name.str); name.str);
...@@ -391,9 +388,7 @@ int mysql_create_function(THD *thd,udf_func *udf) ...@@ -391,9 +388,7 @@ int mysql_create_function(THD *thd,udf_func *udf)
This is done to ensure that only approved dll from the system This is done to ensure that only approved dll from the system
directories are used (to make this even remotely secure). directories are used (to make this even remotely secure).
*/ */
if (my_strchr(files_charset_info, udf->dl, udf->dl + strlen(udf->dl), '/') || if (my_strchr(files_charset_info, udf->dl, udf->dl + strlen(udf->dl), FN_LIBCHAR))
IF_WIN(strchr(files_charset_info, udf->dl,
udf->dl + strlen(udf->dl), '\\'),0))
{ {
my_message(ER_UDF_NO_PATHS, ER(ER_UDF_NO_PATHS), MYF(0)); my_message(ER_UDF_NO_PATHS, ER(ER_UDF_NO_PATHS), MYF(0));
DBUG_RETURN(1); DBUG_RETURN(1);
......
...@@ -36,6 +36,9 @@ ...@@ -36,6 +36,9 @@
#ifndef SHAREDIR #ifndef SHAREDIR
#define SHAREDIR "share/" #define SHAREDIR "share/"
#endif #endif
#ifndef LIBDIR
#define LIBDIR "lib/"
#endif
#define ER(X) errmesg[(X) - ER_ERROR_FIRST] #define ER(X) errmesg[(X) - ER_ERROR_FIRST]
#define ER_SAFE(X) (((X) >= ER_ERROR_FIRST && (X) <= ER_ERROR_LAST) ? ER(X) : "Invalid error code") #define ER_SAFE(X) (((X) >= ER_ERROR_FIRST && (X) <= ER_ERROR_LAST) ? ER(X) : "Invalid error code")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment