~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to server/item.cc

  • Committer: Monty Taylor
  • Date: 2008-07-15 21:40:58 UTC
  • mfrom: (77.1.113 codestyle32)
  • mto: This revision was merged to the branch mainline in revision 176.
  • Revision ID: mordred@camelot-20080715214058-rm3phulldos9xehv
Merged from codestyle.

Show diffs side-by-side

added added

removed removed

Lines of Context:
4146
4146
    field= new Field_int64_t((uchar*) 0, max_length, null_ptr, 0, Field::NONE,
4147
4147
                              name, 0, unsigned_flag);
4148
4148
    break;
4149
 
  case MYSQL_TYPE_FLOAT:
4150
 
    field= new Field_float((uchar*) 0, max_length, null_ptr, 0, Field::NONE,
4151
 
                           name, decimals, 0, unsigned_flag);
4152
 
    break;
4153
4149
  case MYSQL_TYPE_DOUBLE:
4154
4150
    field= new Field_double((uchar*) 0, max_length, null_ptr, 0, Field::NONE,
4155
4151
                            name, decimals, 0, unsigned_flag);
4757
4753
      result= protocol->store_int64_t(nr, unsigned_flag);
4758
4754
    break;
4759
4755
  }
4760
 
  case MYSQL_TYPE_FLOAT:
4761
 
  {
4762
 
    float nr;
4763
 
    nr= (float) val_real();
4764
 
    if (!null_value)
4765
 
      result= protocol->store(nr, decimals, buffer);
4766
 
    break;
4767
 
  }
4768
4756
  case MYSQL_TYPE_DOUBLE:
4769
4757
  {
4770
4758
    double nr= val_real();
6385
6373
      int delta1= max_length_orig - decimals_orig;
6386
6374
      int delta2= item->max_length - item->decimals;
6387
6375
      max_length= max(delta1, delta2) + decimals;
6388
 
      if (fld_type == MYSQL_TYPE_FLOAT && max_length > FLT_DIG + 2) 
6389
 
      {
6390
 
        max_length= FLT_DIG + 6;
6391
 
        decimals= NOT_FIXED_DEC;
6392
 
      } 
6393
6376
      if (fld_type == MYSQL_TYPE_DOUBLE && max_length > DBL_DIG + 2) 
6394
6377
      {
6395
6378
        max_length= DBL_DIG + 7;
6397
6380
      }
6398
6381
    }
6399
6382
    else
6400
 
      max_length= (fld_type == MYSQL_TYPE_FLOAT) ? FLT_DIG+6 : DBL_DIG+7;
 
6383
      max_length= DBL_DIG+7;
6401
6384
    break;
6402
6385
  }
6403
6386
  default:
6445
6428
    return 6;
6446
6429
  case MYSQL_TYPE_LONG:
6447
6430
    return MY_INT32_NUM_DECIMAL_DIGITS;
6448
 
  case MYSQL_TYPE_FLOAT:
6449
 
    return 25;
6450
6431
  case MYSQL_TYPE_DOUBLE:
6451
6432
    return 53;
6452
6433
  case MYSQL_TYPE_NULL: