| Bug #12734 | prepared statement may return incorrect result set for a select SQL request | ||
|---|---|---|---|
| Submitted: | 22 Aug 2005 20:11 | Modified: | 24 Jan 2006 23:52 | 
| Reporter: | c dubet | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Prepared statements | Severity: | S2 (Serious) | 
| Version: | 4.1.15, 5.0.12, 5.0.19-BK | OS: | Linux (Linux (fedora core 3)) | 
| Assigned to: | Konstantin Osipov | CPU Architecture: | Any | 
   [22 Aug 2005 20:11]
   c dubet        
  
 
   [22 Aug 2005 20:22]
   c dubet        
  java test files to demonstrate the bug
Attachment: bug_prepared_statement_MySQL.zip (application/zip, text), 75.62 KiB.
   [30 Aug 2005 19:26]
   Mark Matthews        
  This is a server issue. I've attached a testcase for the developer to use while debugging this issue that is plain SQL. The issue is present in 4.1.x (latest) and 5.0.x (latest).
   [14 Jan 2006 1:27]
   Konstantin Osipov        
  A shorter test case (without extra columns and indices)
Attachment: 12734.sql.gz (application/x-gzip, text), 108.59 KiB.
   [14 Jan 2006 1:29]
   Konstantin Osipov        
  The fix for the bug is:
kostja@dragonfly:~/work/mysql-4.1-12734/sql> bk diffs -u
===== item_cmpfunc.cc 1.204 vs edited =====
--- 1.204/sql/item_cmpfunc.cc	2006-01-08 20:07:47 +03:00
+++ edited/item_cmpfunc.cc	2006-01-14 04:17:38 +03:00
@@ -2524,6 +2524,12 @@
   return 0;
 }
 
+void Item_func_like::cleanup()
+{
+  Item_bool_func2::cleanup();
+  canDoTurboBM= FALSE;
+}
+
 #ifdef USE_REGEX
 
 bool
===== item_cmpfunc.h 1.112 vs edited =====
--- 1.112/sql/item_cmpfunc.h	2005-09-29 04:07:36 +04:00
+++ edited/item_cmpfunc.h	2006-01-14 04:18:05 +03:00
@@ -911,6 +911,7 @@
   cond_result eq_cmp_result() const { return COND_TRUE; }
   const char *func_name() const { return "like"; }
   bool fix_fields(THD *thd, struct st_table_list *tlist, Item **ref);
+  void cleanup();
 };
 
 #ifdef USE_REGEX
Support team: could you please verify that this patch fixes customer's issue?
I working on a reproducible test case to supply a complete changeset for the bug.
 
   [14 Jan 2006 1:55]
   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/1071
   [14 Jan 2006 16:03]
   Konstantin Osipov        
  Pushed into 4.1 tree, currently tagged 4.1.17; merged into 5.0 tree (5.0.19).
   [14 Jan 2006 18:20]
   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/1087
   [18 Jan 2006 17:33]
   Konstantin Osipov        
  OK, now I need to try it without debug to see that maybe it's a compilation flags -related issue.
   [19 Jan 2006 17:47]
   Konstantin Osipov        
  Can't repeat with using a release build either.
   [24 Jan 2006 23:52]
   Jon Stephens        
  Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.
If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html
Additional info:
Dopcumented bugfix in 4.1.18 and 5.0.19 changelogs. Closed.
 
