~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/item_func.cc

Merged build changes from Antony.

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
#include "mysql_priv.h"
29
29
#include "slave.h"                              // for wait_for_master_pos
30
30
#include "rpl_mi.h"
31
 
#include <m_ctype.h>
32
 
#include <hash.h>
 
31
#include <mysys/hash.h>
33
32
#include <time.h>
34
 
#include <my_bit.h>
 
33
#include <mysys/my_bit.h>
35
34
 
36
35
bool check_reserved_words(LEX_STRING *name)
37
36
{
137
136
*/
138
137
 
139
138
bool
140
 
Item_func::fix_fields(THD *thd, Item **ref __attribute__((__unused__)))
 
139
Item_func::fix_fields(THD *thd, Item **ref __attribute__((unused)))
141
140
{
142
141
  assert(fixed == 0);
143
142
  Item **arg,**arg_end;
195
194
 
196
195
 
197
196
void Item_func::fix_after_pullout(st_select_lex *new_parent,
198
 
                                  Item **ref __attribute__((__unused__)))
 
197
                                  Item **ref __attribute__((unused)))
199
198
{
200
199
  Item **arg,**arg_end;
201
200
 
578
577
 
579
578
void Item_func::count_real_length()
580
579
{
581
 
  uint32 length= 0;
 
580
  uint32_t length= 0;
582
581
  decimals= 0;
583
582
  max_length= 0;
584
583
  for (uint i=0 ; i < arg_count ; i++)
888
887
int64_t Item_func_signed::val_int_from_str(int *error)
889
888
{
890
889
  char buff[MAX_FIELD_WIDTH], *end, *start;
891
 
  uint32 length;
 
890
  uint32_t length;
892
891
  String tmp(buff,sizeof(buff), &my_charset_bin), *res;
893
892
  int64_t value;
894
893
 
912
911
  if (*error > 0 || end != start+ length)
913
912
  {
914
913
    char err_buff[128];
915
 
    String err_tmp(err_buff,(uint32) sizeof(err_buff), system_charset_info);
 
914
    String err_tmp(err_buff,(uint32_t) sizeof(err_buff), system_charset_info);
916
915
    err_tmp.copy(start, length, system_charset_info);
917
916
    push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN,
918
917
                        ER_TRUNCATED_WRONG_VALUE,
1068
1067
  str->append(STRING_WITH_LEN(" as decimal("));
1069
1068
 
1070
1069
  end=int10_to_str(precision, len_buf,10);
1071
 
  str->append(len_buf, (uint32) (end - len_buf));
 
1070
  str->append(len_buf, (uint32_t) (end - len_buf));
1072
1071
 
1073
1072
  str->append(',');
1074
1073
 
1075
1074
  end=int10_to_str(decimals, len_buf,10);
1076
 
  str->append(len_buf, (uint32) (end - len_buf));
 
1075
  str->append(len_buf, (uint32_t) (end - len_buf));
1077
1076
 
1078
1077
  str->append(')');
1079
1078
  str->append(')');
2095
2094
    TODO: do not do reinit 'rand' for every execute of PS/SP if
2096
2095
    args[0] is a constant.
2097
2096
  */
2098
 
  uint32 tmp= (uint32) arg->val_int();
2099
 
  randominit(rand, (uint32) (tmp*0x10001L+55555555L),
2100
 
             (uint32) (tmp*0x10000001L));
 
2097
  uint32_t tmp= (uint32_t) arg->val_int();
 
2098
  randominit(rand, (uint32_t) (tmp*0x10001L+55555555L),
 
2099
             (uint32_t) (tmp*0x10000001L));
2101
2100
}
2102
2101
 
2103
2102
 
2195
2194
    if (args[i]->result_type() != ROW_RESULT && args[i]->is_datetime())
2196
2195
    {
2197
2196
      datetime_found= true;
2198
 
      if (!datetime_item || args[i]->field_type() == MYSQL_TYPE_DATETIME)
 
2197
      if (!datetime_item || args[i]->field_type() == DRIZZLE_TYPE_DATETIME)
2199
2198
        datetime_item= args[i];
2200
2199
    }
2201
2200
  }
2254
2253
  if (value)
2255
2254
  {
2256
2255
    *value= min_max;
2257
 
    if (datetime_item->field_type() == MYSQL_TYPE_NEWDATE)
 
2256
    if (datetime_item->field_type() == DRIZZLE_TYPE_NEWDATE)
2258
2257
      *value/= 1000000L;
2259
2258
  }
2260
2259
  return min_max_idx;
2624
2623
  if (use_mb(res->charset()))
2625
2624
  {
2626
2625
    register const char *str=res->ptr();
2627
 
    register uint32 n=0, l=my_ismbchar(res->charset(),str,str+res->length());
 
2626
    register uint32_t n=0, l=my_ismbchar(res->charset(),str,str+res->length());
2628
2627
    if (!l)
2629
2628
      return (int64_t)((uchar) *str);
2630
2629
    while (l--)
2631
 
      n=(n<<8)|(uint32)((uchar) *str++);
 
2630
      n=(n<<8)|(uint32_t)((uchar) *str++);
2632
2631
    return (int64_t) n;
2633
2632
  }
2634
2633
#endif
2646
2645
  if (args[0]->const_item() && args[1]->type() == FIELD_ITEM)
2647
2646
  {
2648
2647
    Field *field= ((Item_field*) args[1])->field;
2649
 
    if (field->real_type() == MYSQL_TYPE_SET)
 
2648
    if (field->real_type() == DRIZZLE_TYPE_SET)
2650
2649
    {
2651
2650
      String *find=args[0]->val_str(&value);
2652
2651
      if (find)
4320
4319
 
4321
4320
 
4322
4321
void Item_func_get_user_var::print(String *str,
4323
 
                                   enum_query_type query_type __attribute__((__unused__)))
 
4322
                                   enum_query_type query_type __attribute__((unused)))
4324
4323
{
4325
4324
  str->append(STRING_WITH_LEN("(@"));
4326
4325
  str->append(name.str,name.length);
4329
4328
 
4330
4329
 
4331
4330
bool Item_func_get_user_var::eq(const Item *item,
4332
 
                                bool binary_cmp __attribute__((__unused__))) const
 
4331
                                bool binary_cmp __attribute__((unused))) const
4333
4332
{
4334
4333
  /* Assume we don't have rtti */
4335
4334
  if (this == item)
4391
4390
}
4392
4391
 
4393
4392
 
4394
 
String* Item_user_var_as_out_param::val_str(String *str __attribute__((__unused__)))
 
4393
String* Item_user_var_as_out_param::val_str(String *str __attribute__((unused)))
4395
4394
{
4396
4395
  assert(0);
4397
4396
  return 0;
4398
4397
}
4399
4398
 
4400
4399
 
4401
 
my_decimal* Item_user_var_as_out_param::val_decimal(my_decimal *decimal_buffer __attribute__((__unused__)))
 
4400
my_decimal* Item_user_var_as_out_param::val_decimal(my_decimal *decimal_buffer __attribute__((unused)))
4402
4401
{
4403
4402
  assert(0);
4404
4403
  return 0;
4406
4405
 
4407
4406
 
4408
4407
void Item_user_var_as_out_param::print(String *str,
4409
 
                                       enum_query_type query_type __attribute__((__unused__)))
 
4408
                                       enum_query_type query_type __attribute__((unused)))
4410
4409
{
4411
4410
  str->append('@');
4412
4411
  str->append(name.str,name.length);