List:Commits« Previous MessageNext Message »
From:igor Date:September 7 2006 6:10pm
Subject:bk commit into 5.0 tree (igor:1.2260)
View as plain text  
Below is the list of changes that have just been committed into a local
5.0 repository of igor. When igor 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, 2006-09-07 11:10:36-07:00, igor@stripped +1 -0
  Merge rurik.mysql.com:/home/igor/mysql-5.0-opt
  into  rurik.mysql.com:/home/igor/dev-opt/mysql-5.0-opt-bug21698
  MERGE: 1.2253.1.1

  sql/sql_select.cc@stripped, 2006-09-07 11:10:31-07:00, igor@stripped +0 -0
    Auto merged
    MERGE: 1.447.1.1

# 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:	igor
# Host:	rurik.mysql.com
# Root:	/home/igor/dev-opt/mysql-5.0-opt-bug21698/RESYNC

--- 1.449/sql/sql_select.cc	2006-09-07 11:10:43 -07:00
+++ 1.450/sql/sql_select.cc	2006-09-07 11:10:43 -07:00
@@ -6712,8 +6712,8 @@
 
   SYNOPSIS
     build_equal_items_for_cond()
-    cond       condition(expression) where to make replacement
-    inherited  path to all inherited multiple equality items
+      cond       condition(expression) where to make replacement
+      inherited  path to all inherited multiple equality items
 
   DESCRIPTION
     At each 'and' level the function detects items for equality predicates
@@ -6727,7 +6727,9 @@
     The function also traverses the cond tree and and for each field reference
     sets a pointer to the multiple equality item containing the field, if there
     is any. If this multiple equality equates fields to a constant the
-    function replace the field reference by the constant.
+    function replaces the field reference by the constant in the cases 
+    when the field is not of a string type or when the field reference is
+    just an argument of a comparison predicate.
     The function also determines the maximum number of members in 
     equality lists of each Item_cond_and object assigning it to
     cond_equal->max_members of this object and updating accordingly
@@ -6914,9 +6916,14 @@
     /* 
       For each field reference in cond, not from equal item predicates,
       set a pointer to the multiple equality it belongs to (if there is any)
+      as soon the field is not of a string type or the field reference is
+      an argument of a comparison predicate. 
     */ 
-    cond= cond->transform(&Item::equal_fields_propagator,
-                            (byte *) inherited);
+    byte *dummy;
+    cond= cond->compile(&Item::subst_argument_checker,
+                        &dummy, 
+                        &Item::equal_fields_propagator,
+                        (byte *) inherited);
     cond->update_used_tables();
   }
   return cond;
Thread
bk commit into 5.0 tree (igor:1.2260)igor7 Sep