Commit graph

71 commits

Author SHA1 Message Date
Ramil Kalimullin
fe350c59aa Fix for bug#44743: Join in combination with concat does not always work
bug#44766: valgrind error when using convert() in a subquery

Problem: input and output buffers may be the same 
converting a string to some charset. 
That may lead to wrong results/valgrind warnings.  

Fix: use different buffers.
2009-05-21 13:06:43 +05:00
tnurnberg@white.intern.koehntopp.de
80a3f89ea4 Merge mysql.com:/misc/mysql/31990/50-31990
into  mysql.com:/misc/mysql/31990/51-31990
2007-11-10 03:11:18 +01:00
tnurnberg@mysql.com/white.intern.koehntopp.de
5a5ed2a509 Bug#31990: MINUTE() and SECOND() return bogus results when used on a DATE
HOUR(), MINUTE(), ... returned spurious results when used on a DATE-cast.
This happened because DATE-cast object did not overload get_time() method
in superclass Item. The default method was inappropriate here and
misinterpreted the data.

Patch adds missing method; get_time() on DATE-casts now returns SQL-NULL
on NULL input, 0 otherwise. This coincides with the way DATE-columns
behave.
2007-11-08 06:08:44 +01:00
gshchepa/uchum@gleb.loc
27f11688da Merge gleb.loc:/home/uchum/work/bk/5.0-opt
into  gleb.loc:/home/uchum/work/bk/5.1-opt
2007-07-21 02:25:39 +05:00
evgen@moonbone.local
08b9103d71 Bug#29898: Item_date_typecast::val_int doesn't reset the null_value flag.
The Item_date_typecast::val_int function doesn't reset null_value flag.
This makes all values that follows the first null value to be treated as nulls
and led to a wrong result.

Now the Item_date_typecast::val_int function correctly sets the null_value flag
for both null and non-null values.
2007-07-20 00:06:35 +04:00
holyfoot/hf@mysql.com/hfmain.(none)
069314eaf3 Merge mysql.com:/home/hf/work/27921/my50-27921
into  mysql.com:/home/hf/work/27957/my50-27957
2007-05-11 18:13:06 +05:00
holyfoot/hf@mysql.com/hfmain.(none)
d535add013 bug 27921 (Views ignore precision for CAST)
test result fixed
2007-05-10 08:14:53 +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
gkodinov/kgeorge@magare.gmz
ee624171eb Merge magare.gmz:/home/kgeorge/mysql/work/B27531-5.0-opt
into  magare.gmz:/home/kgeorge/mysql/work/B27531-5.1-opt
2007-05-04 16:37:30 +03:00
evgen@moonbone.local
2479dc71c4 Merge moonbone.local:/mnt/gentoo64/work/23656-bug-4.1-opt-mysql
into  moonbone.local:/mnt/gentoo64/work/23656-bug-5.0-opt-mysql
2007-05-04 12:27:21 +04:00
evgen@moonbone.local
7f9411c156 Bug#23656: Wrong conversion result of a DATETIME to integer using CAST function.
The generic string to int conversion was used by the Item_func_signed and
the Item_func_unsigned classes to convert DATE/DATETIME values to the
SIGNED/UNSIGNED type. But this conversion produces wrong results for such
values.

Now if the item which result has to be converted can return its result as
longlong then the item->val_int() method is used to allow the item to carry
out the conversion itself and return the correct result.
This condition is checked in the Item_func_signed::val_int() and the
Item_func_unsigned::val_int() functions.
2007-05-04 00:53:37 +04:00
ramil/ram@myoffice.izhnet.ru
6fea92a146 Merge mysql.com:/usr/home/ram/work/bug23938/my50-bug23938
into  mysql.com:/usr/home/ram/work/bug23938/my51-bug23938
2007-02-06 14:20:46 +04:00
ramil/ram@mysql.com/myoffice.izhnet.ru
f103fde258 Merge mysql.com:/usr/home/ram/work/bug23938/my41-bug23938
into  mysql.com:/usr/home/ram/work/bug23938/my50-bug23938
2007-02-06 13:57:20 +04:00
ramil/ram@mysql.com/myoffice.izhnet.ru
c99556d5d4 fix for bug #23938: ISNULL on DATE AND CAST AS DATE returns false for null values
Set null_value in case of wrong data.
2006-12-04 17:06:25 +04:00
rburnett@bk-internal.mysql.com
344dd03774 Merge bk-internal.mysql.com:/data0/bk/mysql-5.1
into  bk-internal.mysql.com:/data0/bk/mysql-5.1-kt
2006-08-15 17:58:39 +02:00
kostja@bodhi.local
04c97488f9 Merge bodhi.local:/opt/local/work/tmp_merge
into  bodhi.local:/opt/local/work/mysql-5.1-runtime-merge
2006-08-12 21:06:51 +04:00
gluh@mysql.com/gluh.(none)
7e07425b2b Bug#16172 DECIMAL data type processed incorrectly
issue an 'overflow warning' if result value is bigger than max possible value
2006-08-08 16:03:42 +05:00
sergefp@mysql.com
699291a8e6 BUG#14940 "MySQL choose wrong index", v.2
- Make the range-et-al optimizer produce E(#table records after table 
                                           condition is applied),
- Make the join optimizer use this value,
- Add "filtered" column to EXPLAIN EXTENDED to show 
  fraction of records left after table condition is applied
- Adjust test results, add comments
2006-07-28 21:27:01 +04:00
jimw@rama.(none)
30d7290c21 Bug #17903: cast to char results in binary
The character set was not being properly initialized in CAST() with
  a type like "CHAR(2) BINARY", which resulted in incorrect results or
  even a crash.
2006-07-12 13:22:38 -07:00
bar@mysql.com
a481a35237 Bug#8663 cant use bgint unsigned as input to cast
Problem: cast to unsigned limited result to 
max signed bigint 9223372036854775808,
instead of max unsigned bigint 18446744073709551615.

Fix: don't use args[0]->val_int() when casting from
a floating point number, use val() instead, with range checkings,
special to unsigned data type.

item_func.cc:
  Special handling of cast from REAL_RESULT
  to unsigned int: we cannot execute args[0]->val_int()
  because it cuts max allowed value to LONGLONG_INT,
  instead of ULONGLONG_INT required.
count_distinct3.test:
  Getting rid of "Data truncated; out of range ..." warnings.
cast.test, cast.result:
  Adding test case.
ps.result:
  Fixing that cast from 6570515219.6535 
  to unsigned didn't round to 6570515220,
  and returned 6570515219 instead.
2006-06-14 13:40:21 +05:00
bar@mysql.com
67f26cc432 Merge mysql.com:/usr/home/bar/mysql-5.0.1.2107.1.1
into  mysql.com:/usr/home/bar/mysql-5.1-new
2006-03-31 17:38:00 +05:00
bar@mysql.com
07e21be0fe Additional 5.0 fix for
Bug#15098: CAST(column double TO signed int), wrong result
which was fixed originally in 4.1.
2006-03-29 19:31:16 +05:00
bar@mysql.com
b56bc04c7d Merge mysql.com:/usr/home/bar/mysql-5.0
into  mysql.com:/usr/home/bar/mysql-5.1-new
2006-03-28 18:24:04 +05:00
bar@mysql.com
fc86e304cc cast.result:
After merge fix.
2006-03-28 18:21:19 +05:00
bar@mysql.com
29b8e09732 Merge mysql.com:/usr/home/bar/mysql-4.1.b15098
into  mysql.com:/usr/home/bar/mysql-5.0
Bug#15098
2006-03-28 17:07:26 +05:00
msvensson@neptunus.(none)
c4b1fb68b4 Bug#10460 SHOW CREATE TABLE uses inconsistent upper/lower case 2006-02-22 10:09:59 +01:00
bar@mysql.com
3e284e22a1 Bug#15098 CAST(column double TO signed int), wrong result
field.cc:
  Adding longlong range checking to return
  LONGLONG_MIN or LONGLONG_MAX when out of range. 
  Using (longlong) cast only when range is ok.
cast.test:
  Adding test case.
cast.result:
  Fixing results accordingly.
2005-12-06 16:54:13 +04:00
bar@mysql.com
3d1c1d7f68 cast.result:
Fixing test results accordingly.
item_timefunc.cc:
  Displaying BINARY or CHAR in error messages,
  depending on the character set.
2005-11-21 21:11:28 +04:00
bar@mysql.com
435c2ba671 Additional fix for Bug#14255 CAST(x AS BINARY(N)) does not pad
cast.result:
cast.test:
  Avoid 0x00 byte in test results, use HEX instead.
2005-11-21 19:59:58 +04:00
bar@mysql.com
bf1a3bc030 select.result, mysqldump-max.result:
after merge fix.
range.result:
  fixing result accordingly
  ,
cast.result:
  after merge fix
range.test:
  Avoid SELECT'ing of BINARY column not to output 0x00 bytes.
2005-10-13 21:28:44 +05:00
bar@mysql.com
c229567887 Merge abarkov@bk-internal:/home/bk/mysql-5.0
into  mysql.com:/usr/home/bar/mysql-5.0.b9278
2005-10-13 19:19:05 +05:00
bar@mysql.com
39b0712cf7 type_binary.result, type_binary.test:
new file
mysql_fix_privilege_tables.sql, mysql_create_system_tables.sh:
  Adding true BINARY/VARBINARY: fixing "password" type, not to be 0x00-padding.
Many files:
  Adding true BINARY/VARBINARY: fixing tests not to output 0x00 bytes.
  Adding true BINARY/VARBINARY: new pad_char structure member.
ctype-bin.c:
  Adding true BINARY/VARBINARY: new pad_char structure member.
  New strnxfrm, with two trailing length bytes.
field.cc:
  Adding true BINARY/VARBINARY.
2005-10-13 19:16:19 +05:00
kent@mysql.com
2747a73857 Merge 2005-10-13 12:23:50 +02:00
jimw@mysql.com
626c8a1c8c Merge mysql.com:/home/jimw/my/mysql-4.1-13344
into  mysql.com:/home/jimw/my/mysql-4.1-clean
2005-10-12 13:27:49 -07:00
msvensson@neptunus.(none)
26793f3039 Correct merge error, warning ended up after new tests from 4.1 2005-09-28 13:29:13 +02:00
msvensson@neptunus.(none)
fbf4a5e079 Merge neptunus.(none):/home/msvensson/mysql/mysql-4.1
into  neptunus.(none):/home/msvensson/mysql/mysql-5.0
2005-09-28 11:34:53 +02:00
monty@mysql.com
ea6d5f9ec3 Fixed error found during review of new pushed code 2005-09-25 21:22:23 +03:00
jimw@mysql.com
3bfe3579d4 Fix CAST(1.0e+300 TO SIGNED). (Bug #13344) 2005-09-22 15:59:13 -07:00
igor@rurik.mysql.com
ff0b7e4d73 Manual merge 2005-06-15 08:39:00 -07:00
igor@rurik.mysql.com
316815f44e cast.result, cast.test:
Added test case for bug #11283.
field.h, field.cc:
  Fixed bug #11283: wrong conversion from varchar to decimal.
  Added methods Field_string::val_decimal,
  Field_varstring::val_decimal, Field_blob::val_decimal.
  They are not inherited from the base class Field_longstr
  anymore.
2005-06-15 08:27:33 -07:00
hf@deer.(none)
971eaa189d Fix for bug #10337 (cast(NULL DECIMAL) crashes the server) 2005-06-15 19:02:35 +05:00
monty@mysql.com
e721ec37ff After merge fixes 2005-04-30 18:40:08 +03:00
monty@mysql.com
28a5491d3d Merge with 4.1 2005-04-30 09:46:08 +03:00
monty@mysql.com
fbf31c4a8c CAST(string_argument AS UNSIGNED) didn't work for big integers above the signed range. (Bug #7036)
Produce warnings of wrong cast of strings to signed/unsigned.
Don't block not resolved IP's if DNS server is down (Bug #8467)
Fix compiler problems with MinGW (Bug #8872)
2005-04-29 17:03:34 +03:00
hf@deer.(none)
eae3f5ba1d Test result fixed 2005-04-08 09:23:10 +05:00
monty@mysql.com
201ee3eb78 Invalid DEFAULT values for CREATE TABLE now generates errors. (Bug #5902)
CAST() now produces warnings when casting a wrong INTEGER or CHAR values. This also applies to implicite string to number casts. (Bug #5912)
ALTER TABLE now fails in STRICT mode if it generates warnings.
Inserting a zero date in a DATE, DATETIME or TIMESTAMP column during TRADITIONAL mode now produces an error. (Bug #5933)
2005-04-01 15:04:50 +03:00
hf@deer.(none)
fbbb58c6ae Fix for bug #8935 CAST(time AS DECIMAL) crashes 2005-03-07 20:53:51 +04:00
hf@deer.(none)
803ed1a116 Tests modified to coved decimal-related code 2005-02-21 19:20:05 +04:00
monty@mysql.com
309b1a2b6c Merge with 4.1 tree to get fix for INSERT IGNORE ... ON DUPLICATE KEY 2005-01-03 23:04:52 +02:00
dlenev@brandersnatch.localdomain
d70bd3f8fb Fix for bug #6914 "Problems using time()/date() output in expressions".
When we cast datetime value to DATE (TIME) type we should throw away its
time (date) part. This was not done properly if CAST() function was used
in datetime expressions.
2004-12-30 13:39:01 +03:00