Bug #7498 | User variable SET saves SIGNED BIGINT as UNSIGNED BIGINT | ||
---|---|---|---|
Submitted: | 22 Dec 2004 23:12 | Modified: | 15 Aug 2006 3:18 |
Reporter: | Arnout Veenman | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server | Severity: | S2 (Serious) |
Version: | 4.0.17 | OS: | Any (all) |
Assigned to: | Magnus Blåudd | CPU Architecture: | Any |
[22 Dec 2004 23:12]
Arnout Veenman
[23 Dec 2004 6:53]
Hartmut Holzgraefe
mysql> SELECT @a := afield FROM bigfailure; +--------------+ | @a := afield | +--------------+ | -1998585759 | +--------------+ 1 row in set (0.10 sec)
[23 Dec 2004 10:08]
Heikki Tuuri
Hi! Changing the category to 'MySQL Server' because the problem hardly is InnoDB-related. --Heikki
[9 Aug 2005 14:34]
Mark Matthews
Please retest to determine platform-specificness.
[13 Aug 2005 7:20]
Vasily Kishkin
I tested on Linux SUSE 9.3 and Windows 2003. I have same result for both cases: mysql> SELECT @a -> ; +-------------+ | @a | +-------------+ | -1998585759 | +-------------+
[16 May 2006 10:41]
Magnus Blåudd
Occurs both in 4.1 and 5.0
[30 May 2006 8:35]
Magnus Blåudd
This looks like two problems: 1. The "subselect_single_select_engine" returns no unsigned flag. This can be seen with the below query which dowsn't return any rows. mysql> select * from bigfailure where afield = (SELECT afield FROM bigfailure); Empty set (0.02 sec) 2. The Item_func_set/get_user_var does not care about the unsigned flag. mysql> set @a=18446744071710965857; Query OK, 0 rows affected (0.01 sec) mysql> select @a; +-------------+ | @a | +-------------+ | -1998585759 | +-------------+
[8 Jun 2006 11:03]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/7383
[8 Jun 2006 12:15]
Magnus Blåudd
Need to check how this will work in 5.0 before proceeding with reviewing the patch. Maybe I make a new one for 4.1 that better works with 5.0
[8 Jun 2006 13:41]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/7393
[9 Jun 2006 15:05]
Magnus Blåudd
Will fix this from 5.0 and up. Found a problem in combination with ps_protocol. The compare functions to use for a subselect is determined at prepare phase, when the value has not yet been converted into a Item_cache_int and thus it's not known that the Item is unsigned. This makes the compare function 'compare_int_signed_unsigned' to be selected, it should be 'compare_int_unsigned'
[9 Jun 2006 17:36]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/7455
[14 Jun 2006 10:32]
Alexander Barkov
Magnus, the patch looks ok to me. If Serg is busy, feel free to set me as a reviewer.
[20 Jul 2006 11:43]
Magnus Blåudd
Pushed to 5.0.25
[9 Aug 2006 12:54]
Jon Stephens
Documented bugfix in 5.0.25 changelog. Need to know if/when this is pushed to 5.1. Thanks!
[14 Aug 2006 21:28]
Konstantin Osipov
Merged into 5.1.12
[15 Aug 2006 3:17]
Paul DuBois
Noted in 5.1.12 changelog.