summaryrefslogtreecommitdiff
path: root/sql/sql_select.cc
diff options
context:
space:
mode:
authorAlexey Kopytov <Alexey.Kopytov@Sun.com>2009-07-03 14:43:54 +0400
committerAlexey Kopytov <Alexey.Kopytov@Sun.com>2009-07-03 14:43:54 +0400
commitcfebaf442a79bcfe00bb0883ccbbf1b767d48b4c (patch)
treef43ce5b1a08b8994dfc840be78f3ee9be7d8ada2 /sql/sql_select.cc
parent59d239e1f1c670875fdb3414c28d5a6e9820951d (diff)
parent2d4df13ef28f4d5f0fbb67d570bfce9c1ebe1881 (diff)
downloadmariadb-git-cfebaf442a79bcfe00bb0883ccbbf1b767d48b4c.tar.gz
Automerge.
Diffstat (limited to 'sql/sql_select.cc')
-rw-r--r--sql/sql_select.cc10
1 files changed, 7 insertions, 3 deletions
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index 916603344e3..37721660184 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -9391,13 +9391,17 @@ static Field *create_tmp_field_from_item(THD *thd, Item *item, TABLE *table,
+1: for decimal point
*/
- overflow= my_decimal_precision_to_length(intg + dec, dec,
- item->unsigned_flag) - len;
+ const int required_length=
+ my_decimal_precision_to_length(intg + dec, dec,
+ item->unsigned_flag);
+
+ overflow= required_length - len;
if (overflow > 0)
dec= max(0, dec - overflow); // too long, discard fract
else
- len -= item->decimals - dec; // corrected value fits
+ /* Corrected value fits. */
+ len= required_length;
}
new_field= new Field_new_decimal(len, maybe_null, item->name,