List:Commits« Previous MessageNext Message »
From:ramil Date:February 6 2007 12:58pm
Subject:bk commit into 5.0 tree (ramil:1.2358) BUG#23782
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of ram. When ram does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2007-02-06 15:58:40+04:00, ramil@stripped +1 -0
  Fix for bug #23782: Stored procedures: crash if variable in procedure
  analyse
  
  We have to call fix_fields() for procedure analyse' arguments as they may   
  not be
  fixed in some circumstances.
  
  (as the crash appears when mysqld starts skipping binlog, a test case
  will be added when we can --skip-bin-log in -master.opt)

  sql/sql_analyse.cc@stripped, 2007-02-06 15:52:18+04:00, ramil@stripped +10 -0
    Fix for bug #23782: Stored procedures: crash if variable in procedure
    analyse
      - call fix_fields() if arguments are not fixed.

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	ramil
# Host:	ramil.myoffice.izhnet.ru
# Root:	/home/ram/work/b23782/b23782.5.0

--- 1.68/sql/sql_analyse.cc	2007-02-06 15:58:45 +04:00
+++ 1.69/sql/sql_analyse.cc	2007-02-06 15:58:45 +04:00
@@ -87,6 +87,11 @@ proc_analyse_init(THD *thd, ORDER *param
   else if (param->next)
   {
     // first parameter
+    if (!(*param->item)->fixed && (*param->item)->fix_fields(thd,
param->item))
+    {
+      DBUG_PRINT("info", ("fix_fields() for the first parameter failed"));
+      goto err;
+    }
     if ((*param->item)->type() != Item::INT_ITEM ||
 	(*param->item)->val_real() < 0)
     {
@@ -101,6 +106,11 @@ proc_analyse_init(THD *thd, ORDER *param
       goto err;
     }
     // second parameter
+    if (!(*param->item)->fixed && (*param->item)->fix_fields(thd,
param->item))
+    {
+      DBUG_PRINT("info", ("fix_fields() for the second parameter failed"));
+      goto err;
+    }
     if ((*param->item)->type() != Item::INT_ITEM ||
 	(*param->item)->val_real() < 0)
     {
Thread
bk commit into 5.0 tree (ramil:1.2358) BUG#23782ramil6 Feb