summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <monty@mysql.com>2005-11-23 22:45:47 +0200
committerunknown <monty@mysql.com>2005-11-23 22:45:47 +0200
commitfe245ed8ba1258e1f3920e449338ea92e3a3a96e (patch)
tree1b50fa4ee517c022288fc0f714964598c25709cc /sql
parentdee85cba32a96c2596936aff63b3c76c7ae8e771 (diff)
parent0b206536d521b2479feb9eef51484ed8191d6504 (diff)
downloadmariadb-git-fe245ed8ba1258e1f3920e449338ea92e3a3a96e.tar.gz
Merge bk-internal.mysql.com:/home/bk/mysql-5.1-new
into mysql.com:/home/my/mysql-5.1 sql/field.cc: Auto merged
Diffstat (limited to 'sql')
-rw-r--r--sql/field.cc5
-rw-r--r--sql/my_decimal.cc19
2 files changed, 16 insertions, 8 deletions
diff --git a/sql/field.cc b/sql/field.cc
index 55d6bf7e3a2..dbc8d2a49d7 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -2384,7 +2384,7 @@ bool Field_new_decimal::store_value(const my_decimal *decimal_value)
#ifndef DBUG_OFF
{
char dbug_buff[DECIMAL_MAX_STR_LENGTH+1];
- DBUG_PRINT("info", ("saving with precision %d, scale: %d, value %s",
+ DBUG_PRINT("info", ("saving with precision %d scale: %d value %s",
(int)precision, (int)dec,
dbug_decimal_as_string(dbug_buff, decimal_value)));
}
@@ -2399,7 +2399,8 @@ bool Field_new_decimal::store_value(const my_decimal *decimal_value)
my_decimal2binary(E_DEC_FATAL_ERROR, &buff, ptr, precision, dec);
error= 1;
}
- DBUG_EXECUTE("info", print_decimal_buff(decimal_value, (byte *) ptr, bin_size););
+ DBUG_EXECUTE("info", print_decimal_buff(decimal_value, (byte *) ptr,
+ bin_size););
DBUG_RETURN(error);
}
diff --git a/sql/my_decimal.cc b/sql/my_decimal.cc
index 1bd16940b47..89607129026 100644
--- a/sql/my_decimal.cc
+++ b/sql/my_decimal.cc
@@ -193,16 +193,23 @@ int str2my_decimal(uint mask, const char *from, uint length,
#ifndef DBUG_OFF
/* routines for debugging print */
+#define DIG_PER_DEC1 9
+#define ROUND_UP(X) (((X)+DIG_PER_DEC1-1)/DIG_PER_DEC1)
+
/* print decimal */
void
print_decimal(const my_decimal *dec)
{
- fprintf(DBUG_FILE,
- "\nDecimal: sign: %d intg: %d frac: %d \n\
-%09d,%09d,%09d,%09d,%09d,%09d,%09d,%09d\n",
- dec->sign(), dec->intg, dec->frac,
- dec->buf[0], dec->buf[1], dec->buf[2], dec->buf[3],
- dec->buf[4], dec->buf[5], dec->buf[6], dec->buf[7]);
+ int i, end;
+ char buff[512], *pos;
+ pos= buff;
+ pos+= my_sprintf(buff, (buff, "Decimal: sign: %d intg: %d frac: %d { ",
+ dec->sign(), dec->intg, dec->frac));
+ end= ROUND_UP(dec->frac)+ROUND_UP(dec->intg)-1;
+ for (i=0; i < end; i++)
+ pos+= my_sprintf(pos, (pos, "%09d, ", dec->buf[i]));
+ pos+= my_sprintf(pos, (pos, "%09d }\n", dec->buf[i]));
+ fputs(buff, DBUG_FILE);
}