| Bug #31450 | Query causes error 1048 | ||
|---|---|---|---|
| Submitted: | 8 Oct 2007 14:21 | Modified: | 3 Dec 2007 17:08 |
| Reporter: | NOT_FOUND NOT_FOUND | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: General | Severity: | S1 (Critical) |
| Version: | 5.1.22-rc/5.0 | OS: | Any |
| Assigned to: | Sergey Petrunya | CPU Architecture: | Any |
| Tags: | query | ||
[8 Oct 2007 14:21]
NOT_FOUND NOT_FOUND
[8 Oct 2007 16:02]
MySQL Verification Team
Thank you for the bug report.
mysql> select * from user_accounts where ua_invited_by_id not in (select ua_id from
-> user_accounts);
Empty set (0.00 sec)
mysql> select version();
+--------------+
| version() |
+--------------+
| 4.1.24-debug |
+--------------+
1 row in set (0.00 sec)
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.52-debug Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> select * from user_accounts where ua_invited_by_id not in (select ua_id from user_accounts);
ERROR 1048 (23000): Column 'ua_id' cannot be null
mysql>
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
mysql> select version();
+-------------------+
| version() |
+-------------------+
| 5.1.23-beta-debug |
+-------------------+
1 row in set (0.00 sec)
mysql> select * from user_accounts where ua_invited_by_id not in (select ua_id from
-> user_accounts);
ERROR 1048 (23000): Column 'ua_id' cannot be null
mysql>
[23 Oct 2007 11:12]
Sergey Petrunya
The bug shows up only for decimal type. If one changes the types of ua_id and ua_invited_by_id to INT then the query succeeds and produces correct results.
[23 Oct 2007 11:27]
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/36122 ChangeSet@1.2592, 2007-10-23 15:26:36+04:00, sergefp@mysql.com +3 -0 BUG#31450: Query causes error 1048 - Let Item::save_in_field() call set_field_to_null_with_conversions() for decimal type, like this is done for the other item result types.
[23 Oct 2007 15:25]
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/36157 ChangeSet@1.2544, 2007-10-23 19:24:59+04:00, sergefp@mysql.com +3 -0 BUG#31450: Query causes error 1048 - Let Item::save_in_field() call set_field_to_null_with_conversions() for decimal type, like this is done for the other item result types.
[16 Nov 2007 9:30]
Bugs System
Pushed into 5.0.52
[16 Nov 2007 9:32]
Bugs System
Pushed into 5.1.23-rc
[16 Nov 2007 9:34]
Bugs System
Pushed into 6.0.4-alpha
[3 Dec 2007 16:45]
Sergey Petrunya
The bug was that queries that use ref access or index-based subquery execution over indexes that have columns of type DECIMAL could fail with Column XXX cannot be null error.
[3 Dec 2007 17:08]
Paul DuBois
Noted in 5.0.52, 5.1.23, 6.0.4 changelogs.
[27 Mar 2008 10:39]
Gary F.
This bug is still present and reproduced in 5.0.54. Similar pattern of query but with the "column cannot be null" a Text column inside the subquery.
