mirror of
https://github.com/MariaDB/server.git
synced 2025-07-27 18:02:13 +03:00
Removed some alias warnings
Fixed alias bug when compiling with gcc 4.2.4 that caused subselect.test to fail sql/item.cc: Removed alias warnings by changing type from char * to const char* sql/item.h: Removed alias warnings by changing type from char * to const char* sql/item_subselect.cc: Fixed alias bug when compiling with gcc 4.2.4 that caused subselect.test to fail sql/sql_string.h: Removed alias warnings by changing type from char * to const char* storage/heap/hp_test2.c: Removed SAFEMALLOC to get rid of compiler error Fixed test case as we can't anymore use heap_rlast() on a HASH key entry.
This commit is contained in:
26
sql/item.cc
26
sql/item.cc
@ -2608,18 +2608,19 @@ void Item_string::print(String *str, enum_query_type query_type)
|
|||||||
|
|
||||||
|
|
||||||
double
|
double
|
||||||
double_from_string_with_check (CHARSET_INFO *cs, const char *cptr, char *end)
|
double_from_string_with_check(CHARSET_INFO *cs, const char *cptr,
|
||||||
|
const char *end)
|
||||||
{
|
{
|
||||||
int error;
|
int error;
|
||||||
char *org_end;
|
char *end_of_num= (char*) end;
|
||||||
double tmp;
|
double tmp;
|
||||||
|
|
||||||
org_end= end;
|
tmp= my_strntod(cs, (char*) cptr, end - cptr, &end_of_num, &error);
|
||||||
tmp= my_strntod(cs, (char*) cptr, end - cptr, &end, &error);
|
if (error || (end != end_of_num &&
|
||||||
if (error || (end != org_end && !check_if_only_end_space(cs, end, org_end)))
|
!check_if_only_end_space(cs, end_of_num, end)))
|
||||||
{
|
{
|
||||||
char buff[80];
|
char buff[80];
|
||||||
strmake(buff, cptr, min(sizeof(buff)-1, (size_t) (org_end-cptr)));
|
strmake(buff, cptr, min(sizeof(buff)-1, (size_t) (end-cptr)));
|
||||||
push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
||||||
ER_TRUNCATED_WRONG_VALUE,
|
ER_TRUNCATED_WRONG_VALUE,
|
||||||
ER(ER_TRUNCATED_WRONG_VALUE), "DOUBLE",
|
ER(ER_TRUNCATED_WRONG_VALUE), "DOUBLE",
|
||||||
@ -2634,26 +2635,27 @@ double Item_string::val_real()
|
|||||||
DBUG_ASSERT(fixed == 1);
|
DBUG_ASSERT(fixed == 1);
|
||||||
return double_from_string_with_check(str_value.charset(),
|
return double_from_string_with_check(str_value.charset(),
|
||||||
str_value.ptr(),
|
str_value.ptr(),
|
||||||
(char *) str_value.ptr() +
|
str_value.ptr() +
|
||||||
str_value.length());
|
str_value.length());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
longlong
|
longlong
|
||||||
longlong_from_string_with_check (CHARSET_INFO *cs, const char *cptr, char *end)
|
longlong_from_string_with_check(CHARSET_INFO *cs, const char *cptr,
|
||||||
|
const char *end)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
longlong tmp;
|
longlong tmp;
|
||||||
char *org_end= end;
|
char *end_of_num= (char*) end;
|
||||||
|
|
||||||
tmp= (*(cs->cset->strtoll10))(cs, cptr, &end, &err);
|
tmp= (*(cs->cset->strtoll10))(cs, cptr, &end_of_num, &err);
|
||||||
/*
|
/*
|
||||||
TODO: Give error if we wanted a signed integer and we got an unsigned
|
TODO: Give error if we wanted a signed integer and we got an unsigned
|
||||||
one
|
one
|
||||||
*/
|
*/
|
||||||
if (!current_thd->no_errors &&
|
if (!current_thd->no_errors &&
|
||||||
(err > 0 ||
|
(err > 0 ||
|
||||||
(end != org_end && !check_if_only_end_space(cs, end, org_end))))
|
(end != end_of_num && !check_if_only_end_space(cs, end_of_num, end))))
|
||||||
{
|
{
|
||||||
push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
||||||
ER_TRUNCATED_WRONG_VALUE,
|
ER_TRUNCATED_WRONG_VALUE,
|
||||||
@ -2672,7 +2674,7 @@ longlong Item_string::val_int()
|
|||||||
{
|
{
|
||||||
DBUG_ASSERT(fixed == 1);
|
DBUG_ASSERT(fixed == 1);
|
||||||
return longlong_from_string_with_check(str_value.charset(), str_value.ptr(),
|
return longlong_from_string_with_check(str_value.charset(), str_value.ptr(),
|
||||||
(char *) str_value.ptr()+ str_value.length());
|
str_value.ptr()+ str_value.length());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2289,9 +2289,11 @@ private:
|
|||||||
|
|
||||||
|
|
||||||
longlong
|
longlong
|
||||||
longlong_from_string_with_check (CHARSET_INFO *cs, const char *cptr, char *end);
|
longlong_from_string_with_check(CHARSET_INFO *cs, const char *cptr,
|
||||||
|
const char *end);
|
||||||
double
|
double
|
||||||
double_from_string_with_check (CHARSET_INFO *cs, const char *cptr, char *end);
|
double_from_string_with_check(CHARSET_INFO *cs, const char *cptr,
|
||||||
|
const char *end);
|
||||||
|
|
||||||
class Item_static_string_func :public Item_string
|
class Item_static_string_func :public Item_string
|
||||||
{
|
{
|
||||||
|
@ -82,7 +82,6 @@ void Item_subselect::init(st_select_lex *select_lex,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
SELECT_LEX *outer_select= unit->outer_select();
|
SELECT_LEX *outer_select= unit->outer_select();
|
||||||
DBUG_ASSERT(thd);
|
|
||||||
/*
|
/*
|
||||||
do not take into account expression inside aggregate functions because
|
do not take into account expression inside aggregate functions because
|
||||||
they can access original table fields
|
they can access original table fields
|
||||||
@ -3563,7 +3562,15 @@ subselect_single_select_engine::change_result(Item_subselect *si,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
result= res;
|
result= res;
|
||||||
return select_lex->join->change_result(result);
|
|
||||||
|
/*
|
||||||
|
We can't use 'result' below as gcc 4.2.4's alias optimization
|
||||||
|
assumes that result was not changed by thd->change_item_tree().
|
||||||
|
I tried to find a solution to make gcc happy, but could not find anything
|
||||||
|
that would not require a lot of extra code that would be harder to manage
|
||||||
|
than the current code.
|
||||||
|
*/
|
||||||
|
return select_lex->join->change_result(res);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -457,8 +457,9 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline bool check_if_only_end_space(CHARSET_INFO *cs, char *str,
|
static inline bool check_if_only_end_space(CHARSET_INFO *cs,
|
||||||
char *end)
|
const char *str,
|
||||||
|
const char *end)
|
||||||
{
|
{
|
||||||
return str+ cs->cset->scan(cs, str, end, MY_SEQ_SPACES) == end;
|
return str+ cs->cset->scan(cs, str, end, MY_SEQ_SPACES) == end;
|
||||||
}
|
}
|
||||||
|
@ -21,9 +21,6 @@
|
|||||||
#ifdef DBUG_OFF
|
#ifdef DBUG_OFF
|
||||||
#undef DBUG_OFF
|
#undef DBUG_OFF
|
||||||
#endif
|
#endif
|
||||||
#ifndef SAFEMALLOC
|
|
||||||
#define SAFEMALLOC
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "heapdef.h" /* Because of hp_find_block */
|
#include "heapdef.h" /* Because of hp_find_block */
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
@ -319,7 +316,8 @@ int main(int argc, char *argv[])
|
|||||||
if (!silent)
|
if (!silent)
|
||||||
printf("- Read last key - delete - prev - prev - opt_delete - prev -> first\n");
|
printf("- Read last key - delete - prev - prev - opt_delete - prev -> first\n");
|
||||||
|
|
||||||
if (heap_rlast(file,record3,0)) goto err;
|
if (heap_rprev(file,record))
|
||||||
|
goto err;
|
||||||
if (heap_delete(file,record3)) goto err;
|
if (heap_delete(file,record3)) goto err;
|
||||||
key_check-=atoi((char*) record3);
|
key_check-=atoi((char*) record3);
|
||||||
key1[atoi((char*) record+keyinfo[0].seg[0].start)]--;
|
key1[atoi((char*) record+keyinfo[0].seg[0].start)]--;
|
||||||
@ -526,7 +524,7 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
ant=0;
|
ant=0;
|
||||||
for (error=heap_rlast(file,record,0) ;
|
for (error=heap_rprev(file,record) ;
|
||||||
! error ;
|
! error ;
|
||||||
error=heap_rprev(file,record))
|
error=heap_rprev(file,record))
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user