Commit graph

59 commits

Author SHA1 Message Date
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
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
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@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
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
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
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
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
bar@mysql.com
f90caa5826 - VARCHAR(n) with binary character set is now displayed as VARBINARY(N).
- CREATE TABLE t1 SELECT BINARY 'literal'
  now creates a VARBINARY() column, not a BINARY().
2004-12-08 14:03:29 +04:00
monty@mysql.com
563500994a Update results for new varchar handling
Fixed compiler warnings
String results in CREATE ... SELECT are now created as CHAR(0), VARCHAR(X) or TEXT() depending on item->max_length
2004-12-07 15:47:00 +02:00
bar@mysql.com
2c86049dec Bug #5228 ORDER BY CAST(enumcol) sorts incorrectly under certain conditions 2004-09-07 15:42:19 +05:00
bell@sanja.is.com.ua
4c774e0c18 fixed flags of printed query 2004-05-13 23:47:20 +03:00
bar@bar.intranet.mysql.r18.ru
3aea3e92ce 1. New data types, from the user point of view:
BINARY(N) and VARBIBARY(N)
2. More 4.0 compatibility and more BINARY keyword consistency:
2a. CREATE TABLE a (a CHAR(N) BINARY) 
    is now synonym for
    CREATE TABLE a (a CHAR(N) COLLATE xxxx_bin)
2b. SELECT BINARY x
    is still synonin for
    SELECT x COLLATE xxxxx_bin.
2004-03-26 16:11:46 +04:00
bar@bar.intranet.mysql.r18.ru
4e77123079 Bug 2701: Function CHARSET() inconsistency
CONVERT3 was removed, it was for test purposes,
and rather harmful.
2004-02-11 16:53:39 +04:00
monty@mysql.com
06432eac36 Added --compact to mysqlbinlog
Fixed output from mysqlbinlog when using --skip-comments
Fixed warnings from valgrind
Fixed ref_length when used with HEAP tables
More efficent need_conversion()
Fixed error handling in UPDATE with not updateable tables
Fixed bug in null handling in CAST to signed/unsigned
2004-02-09 12:31:03 +01:00
Sinisa@sinisa.nasamreza.org
6f1342a61d Fix for a bug #2422, where CONVERT(expr, cast) was masked by
CONVERT(expr, expr, expr);
2004-01-22 22:13:24 +02:00
bar@bar.intranet.mysql.r18.ru
6f0c8a7bf4 Bug 2202: CAST from binary to char still returns a binary string 2003-12-25 17:42:17 +04:00
antony@ltantony.rdg.cyberkinetica.homeunix.net
fcf96dbb18 WorkLog#1323
Deprecate the use of TYPE=... Preferred syntax is ENGINE=
2003-12-10 04:31:42 +00:00
monty@mashka.mysql.fi
cab1dc628c CLIENT_MULTI_QUERIES -> CLIENT_MULTI_STATEMENTS
New multi-key-cache handling. This was needed becasue the old one didn't work reliable with MERGE tables.
ALTER TABLE table_name ... CHARACTER SET  ... now changes all char/varchar/text columns to the given character set
(One must use ALTER TABLE ... DEFAULT CHARACTER SET ... to change the default character set)
Fixed that have_compress is detected properly (fixes problems with func_compress.test on platforms without zlib)
New syntax for CACHE INDEX ('keys' is optional if no index name is given and one mentions the key cache name only ones)
Removed compiler warnings
Added mysql_set_server_option() to allow clients like PHP to easaily set/reset the multi-statement flag.
2003-11-18 13:47:27 +02:00
bell@sanja.is.com.ua
33346e26af added code covarage for functions convert(), nullif(), crc32(), is_used_lock(), char_lengtrh(), bit_xor()
added string length for more speed
made code covarage for print() method of Item
fixed printability of some items (SCRUM) (WL#1274)
2003-10-30 12:57:26 +02:00