Commit graph

90 commits

Author SHA1 Message Date
Chad MILLER
d0cf2fa6e7 Bug#36270: incorrect calculation result - works in 4.1 but not in 5.0 or 5.1
When the fractional part in a multiplication of DECIMALs
overflowed, we truncated the first operand rather than the
longest. Now truncating least significant places instead
for more precise multiplications.

(Queuing at demand of Trudy/Davi.)
2008-08-15 15:46:21 -04:00
mhansson/martin@linux-st28.site
effe27e350 Bug#33143: Incorrect ORDER BY for ROUND()/TRUNCATE() result
The ROUND(X, D) function would change the Item::decimals field during
execution to achieve the effect of a dynamic number of decimal digits.
This caused a series of bugs:
Bug #30617:Round() function not working under some circumstances in InnoDB
Bug #33402:ROUND with decimal and non-constant cannot round to 0 decimal places
Bug #30889:filesort and order by with float/numeric crashes server
Fixed by never changing the number of shown digits for DECIMAL when
used with a nonconstant number of decimal digits.
2008-01-14 16:16:36 +01:00
gshchepa/uchum@gleb.loc
b8b199af45 Fixed bug #31019: the MOD() function and the % operator crash the server
when a divisor is less than 1 and its fractional part is very long.
For example:
1 % .123456789123456789123456789123456789123456789123456789123456789123456789123456789;

Stack buffer overflow has been fixed in the do_div_mod function.
2007-10-08 03:48:59 +05:00
holyfoot/hf@mysql.com/hfmain.(none)
84a572aabf Bug #27984 Long Decimal Maths produces truncated results.
decimal_round failed to perform a correct rounding 
of a decimal number if its first nine digits were '9'.
It just sets those digits to 0.
2007-05-21 22:22:47 +05:00
holyfoot/hf@mysql.com/hfmain.(none)
bb089cea38 bug #8663 cant use bigint unsigned as input to cast
in the case of the overflow in the decimal->integer conversion
we didn't return the proper boundary value, but just the result
of the conversion we calculated on the moment of the error
2007-05-16 10:12:49 +05:00
holyfoot/hf@mysql.com/hfmain.(none)
e3fa9c594d Bug #27957 cast as decimal does not check overflow, also inconsistent with group, subselect
Missing check for overflow added to the Item_decimal_typecast::val_decimal
2007-05-09 17:27:14 +05:00
monty@mysql.com/narttu.mysql.fi
e5cc397f33 Fixed compiler warnings (for linux and win32 and win64)
Fixed a couple of usage of not initialized warnings (unlikely cases)
2007-02-22 16:59:57 +02:00
monty@mysql.com/narttu.mysql.fi
a04157fbb3 Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2007-01-22 14:04:40 +02:00
kent@mysql.com/kent-amd64.(none)
226a5c833f Many files:
Changed header to GPL version 2 only
2006-12-23 20:17:15 +01:00
tsmith/tim@siva.hindu.god
7c82a06dcf Remove warnings by casting 2006-12-19 20:17:33 -07:00
tsmith/tim@siva.hindu.god
6cbfc343a8 Alternative decimal2double implementation using an algorithm
more similar to my_strtod() (and maybe even a bit faster due
to less floating point divisions).

This should at least partially fix Bug #23260 for DECIMALs
with a moderate number of total digits.
2006-12-19 17:42:26 -07:00
monty@mysql.com/narttu.mysql.fi
88dd873de0 Fixed compiler warnings detected by option -Wshadow and -Wunused:
- Removed not used variables and functions
- Added #ifdef around code that is not used
- Renamed variables and functions to avoid conflicts
- Removed some not used arguments

Fixed some class/struct warnings in ndb
Added define IS_LONGDATA() to simplify code in libmysql.c

I did run gcov on the changes and added 'purecov' comments on almost all lines that was not just variable name changes
2006-12-15 00:51:37 +02:00
gkodinov@dl145s.mysql.com
e74c9add47 Merge bk-internal:/home/bk/mysql-5.0
into  dl145s.mysql.com:/data0/bk/team_tree_merge/MERGE/mysql-5.0-opt
2006-11-27 16:25:52 +01:00
monty@mysql.com/nosik.monty.fi
e825879800 Remove compiler warnings
(Mostly in DBUG_PRINT() and unused arguments)
Fixed bug in query cache when used with traceing (--with-debug)
Fixed memory leak in mysqldump
Removed warnings from mysqltest scripts (replaced -- with #)
2006-11-20 22:42:06 +02:00
holyfoot/hf@mysql.com/deer.(none)
18577a8e8f Bug #8663 (cant use bigint as input to CAST)
decimal->ulong conversion fixed to assign max possible ULONG if decimal
is bigger
Item_func_unsigned now handles DECIMAL parameter separately as we can't
rely on decimal::val_int result here.
2006-10-30 09:52:50 +04:00
gkodinov/kgeorge@mysql.com/macbook.gmz
ece5fff44e Bug #20569 Garbage in DECIMAL results from some mathematical functions
* portability fix: moved the macro call after the C declaration
2006-07-07 17:27:11 +03:00
gkodinov@mysql.com
732b175c29 Bug #20569 Garbage in DECIMAL results from some mathematical functions
Adding decimal "digits" in multiplication resulted in signed overflow and
producing wrong results.

  Fixed by using large enough buffers and intermediary result types :
dec2 (currently longlong) to hold result of adding decimal "digits" 
(currently int32).
2006-07-06 13:18:05 +03:00
gluh@eagle.intranet.mysql.r18.ru
4858032176 Fix for bug#17602 Server crash on AVG/SUM over DECIMAL column(2nd ver)
The table may be corrupted and decimal columns may have invalid values in this case.
To prevent crash we need to check that decimal column has allowable value.
In case of invalid value generate warning and set the value to 0.
2006-02-28 13:36:41 +04:00
serg@serg.mylan
c063819075 locking issues,
test for LONGLONG_MIN in decimal.c
2005-12-23 20:50:28 +01:00
holyfoot@mysql.com
bbc26a63b2 merging 2005-11-10 16:32:49 +04:00
holyfoot@deer.(none)
c5313e8d4f Fix for bug #14268 (Bad FLOAT->DECIMAL conversion) 2005-11-03 13:49:37 +04:00
holyfoot@deer.(none)
4eea84268b Additional fix for #13573 2005-11-02 18:46:13 +04:00
monty@mysql.com
17d7ba931d Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into  mysql.com:/home/my/mysql-5.0
2005-10-08 03:37:23 +03:00
monty@mysql.com
78e828d32f Review of code pushed since last 5.0 pull:
Ensure that ccache is also used for C programs
mysql: Ensure that 'delimiter' works the same way in batch mode as in normal mode
mysqldump: Change to use ;; (instead of //) as a stored procedure/trigger delimiter
Fixed test cases by adding missing DROP's and rename views to be of type 'v#'
Removed MY_UNIX_PATH from fn_format()
Removed current_db_used from TABLE_LIST
Removed usage of 'current_thd' in Item_splocal
Removed some compiler warnings
A bit faster longlong2str code
2005-10-06 17:54:43 +03:00
jani@a193-229-222-105.elisa-laajakaista.fi
bb57385f54 Added a cast. Fix for Metrowerks compiler. 2005-09-28 14:12:44 +03:00
hf@deer.(none)
3fb387766b Fix for bug #12938 (decimal arithmetic in the loop fails) 2005-09-04 21:00:00 +05:00
hf@deer.(none)
ceb75aed65 Fix for bug #12173 (show create table crash) 2005-07-29 14:39:11 +05:00
monty@mysql.com
b3cbd0048f Cleanups during review of new code
Ensure mysql_close() is called if mysql_set_character_set() fails
2005-07-28 16:10:14 +03:00
hf@deer.(none)
ba559d651e Fix for bug #11557 (Error during rounding of the DEFAULT values) 2005-07-12 14:17:59 +05:00
hf@deer.(none)
bf7515c302 Fix for bug #10891 (string->decimal conversion crashes server) 2005-07-07 18:23:30 +05:00
monty@mysql.com
ec420bfb43 Fixes during review of new code
- Mostly indentation fixes
- Added missing test
- Ensure that Item_func_case() checks for stack overruns
- Use real_item() instead of (Item_ref*) item
- Fixed wrong error handling
2005-07-04 03:42:33 +03:00
hf@deer.(none)
38aa20d380 Merge bk@192.168.21.1:/usr/home/bk/mysql-5.0
into deer.(none):/home/hf/work/mysql-5.0.10632
2005-06-15 19:56:01 +05:00
hf@deer.(none)
f1fb785b12 Fix for bug #10632 (CEILING returns wrong result) 2005-06-15 19:53:40 +05:00
hf@deer.(none)
f7cccd7ea8 Merge bk@192.168.21.1:/usr/home/bk/mysql-5.0
into deer.(none):/home/hf/work/mysql-5.0.10337
2005-06-15 19:07:11 +05:00
hf@deer.(none)
971eaa189d Fix for bug #10337 (cast(NULL DECIMAL) crashes the server) 2005-06-15 19:02:35 +05:00
georg@lmy002.wdf.sap.corp
b64e6db5a4 fixes for windows 64-bit compiler warnings 2005-06-13 12:41:15 +02:00
hf@deer.(none)
cc007a5c09 Fix for bug #8482 (Incorrect rounding) 2005-06-09 12:44:44 +05:00
monty@mysql.com
a69f432115 Code cleanups during code reviews
Ensure we get error if INSERT IGNORE ... SELECT fails
Fixed wrong key_part->key_length usage in index_merge
2005-06-01 16:35:09 +03:00
jani@ibmlab.site
0b5cedca79 Fixed Bug#10232: update with subquery, precision math,
another column gets rotten value.
2005-05-10 09:25:25 +03:00
holyfoot@hf-ibm.(none)
44ad7495bb Fix for bug #9527 (negative zero is a nonsence) 2005-05-07 14:41:00 +05:00
holyfoot@mysql.com
3474ae5aac merging 2005-05-06 20:31:50 +05:00
holyfoot@hf-ibm.(none)
ad863d40fa Fix for bug #10004 (Decimal operation crashes server) 2005-05-06 20:06:25 +05:00
holyfoot@hf-ibm.(none)
5aa0edf34c Trimmed fix for bug #9546 (Crashing with huge decimals) 2005-05-06 19:04:58 +05:00
ramil@ram-book.(none)
50579df606 A fix (bug #10404: select 0/0 returns 0). 2005-05-06 13:31:48 +05:00
holyfoot@hf-ibm.(none)
2c8e9df232 A lot of fixes to Precision math
Mostly about precision/decimals of the results of the operations
2005-05-05 20:06:49 +05:00
monty@mysql.com
49e721677f Fixed errors descovered by valgrind 2.4
Added suppression file for some valgrind warnings that are not real errors
2005-04-06 17:22:21 +03:00
serg@serg.mylan
e5a50e1927 decimal_div bug#9501 2005-03-31 17:46:36 +02:00
konstantin@mysql.com
d5af61b1a0 Rename decimal -> decimal_t, decimal_digit -> decimal_digit_t 2005-03-21 15:58:34 +03:00
konstantin@mysql.com
3e8045c662 Fix a valgrind warning in decimal.c:sanity() 2005-03-21 12:57:42 +03:00
hf@deer.(none)
b8e5df4b7d Fix for bug #8464 (AVG returns incorrect result)
Actually problem was not in AVG function, but in SUM before the AVG in the
query.
2005-03-07 16:08:06 +04:00