~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to server/my_decimal.cc

  • Committer: Brian Aker
  • Date: 2008-07-11 00:33:12 UTC
  • mfrom: (51.1.83 remove-dbug)
  • Revision ID: brian@tangent.org-20080711003312-f4sf5n2z3obor1u8
Comming Jay's merge

Show diffs side-by-side

added added

removed removed

Lines of Context:
240
240
#define DIG_PER_DEC1 9
241
241
#define ROUND_UP(X)  (((X)+DIG_PER_DEC1-1)/DIG_PER_DEC1)
242
242
 
243
 
/* print decimal */
244
 
void
245
 
print_decimal(const my_decimal *dec)
246
 
{
247
 
  int i, end;
248
 
  char buff[512], *pos;
249
 
  pos= buff;
250
 
  pos+= my_sprintf(buff, (buff, "Decimal: sign: %d  intg: %d  frac: %d  { ",
251
 
                          dec->sign(), dec->intg, dec->frac));
252
 
  end= ROUND_UP(dec->frac)+ROUND_UP(dec->intg)-1;
253
 
  for (i=0; i < end; i++)
254
 
    pos+= my_sprintf(pos, (pos, "%09d, ", dec->buf[i]));
255
 
  pos+= my_sprintf(pos, (pos, "%09d }\n", dec->buf[i]));
256
 
  fputs(buff, DBUG_FILE);
257
 
}
258
 
 
259
 
 
260
 
/* print decimal with its binary representation */
261
 
void
262
 
print_decimal_buff(const my_decimal *dec, const uchar* ptr, int length)
263
 
{
264
 
  print_decimal(dec);
265
 
  fprintf(DBUG_FILE, "Record: ");
266
 
  for (int i= 0; i < length; i++)
267
 
  {
268
 
    fprintf(DBUG_FILE, "%02X ", (uint)((uchar *)ptr)[i]);
269
 
  }
270
 
  fprintf(DBUG_FILE, "\n");
271
 
}
272
 
 
273
 
 
274
 
const char *dbug_decimal_as_string(char *buff, const my_decimal *val)
275
 
{
276
 
  int length= DECIMAL_MAX_STR_LENGTH;
277
 
  if (!val)
278
 
    return "NULL";
279
 
  (void)decimal2string((decimal_t*) val, buff, &length, 0,0,0);
280
 
  return buff;
281
 
}
282
 
 
283
243
#endif /*MYSQL_CLIENT*/