@@ -6965,7 +6965,6 @@ QUICK_SELECT_I *TRP_ROR_UNION::make_quick(PARAM *param,
69656965 field field in the predicate
69666966 lt_value constant that field should be smaller
69676967 gt_value constant that field should be greaterr
6968- cmp_type compare type for the field
69696968
69706969 RETURN
69716970 # Pointer to tree built tree
@@ -6974,38 +6973,36 @@ QUICK_SELECT_I *TRP_ROR_UNION::make_quick(PARAM *param,
69746973
69756974SEL_TREE *Item_bool_func::get_ne_mm_tree (RANGE_OPT_PARAM *param,
69766975 Field *field,
6977- Item *lt_value, Item *gt_value,
6978- Item_result cmp_type)
6976+ Item *lt_value, Item *gt_value)
69796977{
69806978 SEL_TREE *tree;
6981- tree= get_mm_parts (param, field, Item_func::LT_FUNC, lt_value, cmp_type );
6979+ tree= get_mm_parts (param, field, Item_func::LT_FUNC, lt_value);
69826980 if (tree)
69836981 tree= tree_or (param, tree, get_mm_parts (param, field, Item_func::GT_FUNC,
6984- gt_value, cmp_type ));
6982+ gt_value));
69856983 return tree;
69866984}
69876985
69886986
69896987SEL_TREE *Item_func_between::get_func_mm_tree (RANGE_OPT_PARAM *param,
6990- Field *field, Item *value,
6991- Item_result cmp_type)
6988+ Field *field, Item *value)
69926989{
69936990 SEL_TREE *tree;
69946991 DBUG_ENTER (" Item_func_between::get_func_mm_tree" );
69956992 if (!value)
69966993 {
69976994 if (negated)
69986995 {
6999- tree= get_ne_mm_tree (param, field, args[1 ], args[2 ], cmp_type );
6996+ tree= get_ne_mm_tree (param, field, args[1 ], args[2 ]);
70006997 }
70016998 else
70026999 {
7003- tree= get_mm_parts (param, field, Item_func::GE_FUNC, args[1 ], cmp_type );
7000+ tree= get_mm_parts (param, field, Item_func::GE_FUNC, args[1 ]);
70047001 if (tree)
70057002 {
70067003 tree= tree_and (param, tree, get_mm_parts (param, field,
70077004 Item_func::LE_FUNC,
7008- args[2 ], cmp_type ));
7005+ args[2 ]));
70097006 }
70107007 }
70117008 }
@@ -7017,18 +7014,17 @@ SEL_TREE *Item_func_between::get_func_mm_tree(RANGE_OPT_PARAM *param,
70177014 Item_func::LT_FUNC):
70187015 (value == (Item*)1 ? Item_func::LE_FUNC :
70197016 Item_func::GE_FUNC)),
7020- args[0 ], cmp_type );
7017+ args[0 ]);
70217018 }
70227019 DBUG_RETURN (tree);
70237020}
70247021
70257022
70267023SEL_TREE *Item_func_in::get_func_mm_tree (RANGE_OPT_PARAM *param,
7027- Field *field, Item *value,
7028- Item_result cmp_type)
7024+ Field *field, Item *value)
70297025{
70307026 SEL_TREE *tree= 0 ;
7031- DBUG_ENTER (" Iten_func_in ::get_func_mm_tree" );
7027+ DBUG_ENTER (" Item_func_in ::get_func_mm_tree" );
70327028 /*
70337029 Array for IN() is constructed when all values have the same result
70347030 type. Tree won't be built for values with different result types,
@@ -7090,8 +7086,7 @@ SEL_TREE *Item_func_in::get_func_mm_tree(RANGE_OPT_PARAM *param,
70907086 do
70917087 {
70927088 array->value_to_item (i, value_item);
7093- tree= get_mm_parts (param, field, Item_func::LT_FUNC,
7094- value_item, cmp_type);
7089+ tree= get_mm_parts (param, field, Item_func::LT_FUNC, value_item);
70957090 if (!tree)
70967091 break ;
70977092 i++;
@@ -7109,8 +7104,7 @@ SEL_TREE *Item_func_in::get_func_mm_tree(RANGE_OPT_PARAM *param,
71097104 {
71107105 /* Get a SEL_TREE for "-inf < X < c_i" interval */
71117106 array->value_to_item (i, value_item);
7112- tree2= get_mm_parts (param, field, Item_func::LT_FUNC,
7113- value_item, cmp_type);
7107+ tree2= get_mm_parts (param, field, Item_func::LT_FUNC, value_item);
71147108 if (!tree2)
71157109 {
71167110 tree= NULL ;
@@ -7171,37 +7165,35 @@ SEL_TREE *Item_func_in::get_func_mm_tree(RANGE_OPT_PARAM *param,
71717165 Get the SEL_TREE for the last "c_last < X < +inf" interval
71727166 (value_item cotains c_last already)
71737167 */
7174- tree2= get_mm_parts (param, field, Item_func::GT_FUNC,
7175- value_item, cmp_type);
7168+ tree2= get_mm_parts (param, field, Item_func::GT_FUNC, value_item);
71767169 tree= tree_or (param, tree, tree2);
71777170 }
71787171 }
71797172 else
71807173 {
7181- tree= get_ne_mm_tree (param, field, args[1 ], args[1 ], cmp_type );
7174+ tree= get_ne_mm_tree (param, field, args[1 ], args[1 ]);
71827175 if (tree)
71837176 {
71847177 Item **arg, **end;
71857178 for (arg= args + 2 , end= arg + arg_count - 2 ; arg < end ; arg++)
71867179 {
71877180 tree= tree_and (param, tree, get_ne_mm_tree (param, field,
7188- *arg, *arg, cmp_type ));
7181+ *arg, *arg));
71897182 }
71907183 }
71917184 }
71927185 }
71937186 else
71947187 {
7195- tree= get_mm_parts (param, field, Item_func::EQ_FUNC, args[1 ], cmp_type );
7188+ tree= get_mm_parts (param, field, Item_func::EQ_FUNC, args[1 ]);
71967189 if (tree)
71977190 {
71987191 Item **arg, **end;
71997192 for (arg= args + 2 , end= arg + arg_count - 2 ;
72007193 arg < end ; arg++)
72017194 {
72027195 tree= tree_or (param, tree, get_mm_parts (param, field,
7203- Item_func::EQ_FUNC,
7204- *arg, cmp_type));
7196+ Item_func::EQ_FUNC, *arg));
72057197 }
72067198 }
72077199 }
@@ -7304,9 +7296,8 @@ SEL_TREE *Item_bool_func::get_full_func_mm_tree(RANGE_OPT_PARAM *param,
73047296 ref_tables|= arg->used_tables ();
73057297 }
73067298 Field *field= field_item->field ;
7307- Item_result cmp_type= field->cmp_type ();
73087299 if (!((ref_tables | field->table ->map ) & param_comp))
7309- ftree= get_func_mm_tree (param, field, value, cmp_type );
7300+ ftree= get_func_mm_tree (param, field, value);
73107301 Item_equal *item_equal= field_item->item_equal ;
73117302 if (item_equal)
73127303 {
@@ -7318,7 +7309,7 @@ SEL_TREE *Item_bool_func::get_full_func_mm_tree(RANGE_OPT_PARAM *param,
73187309 continue ;
73197310 if (!((ref_tables | f->table ->map ) & param_comp))
73207311 {
7321- tree= get_func_mm_tree (param, f, value, cmp_type );
7312+ tree= get_func_mm_tree (param, f, value);
73227313 ftree= !ftree ? tree : tree_and (param, ftree, tree);
73237314 }
73247315 }
@@ -7562,8 +7553,7 @@ SEL_TREE *Item_equal::get_mm_tree(RANGE_OPT_PARAM *param, Item **cond_ptr)
75627553 Field *field= it.get_curr_field ();
75637554 if (!((ref_tables | field->table ->map ) & param_comp))
75647555 {
7565- tree= get_mm_parts (param, field, Item_func::EQ_FUNC,
7566- value, field->cmp_type ());
7556+ tree= get_mm_parts (param, field, Item_func::EQ_FUNC, value);
75677557 ftree= !ftree ? tree : tree_and (param, ftree, tree);
75687558 }
75697559 }
@@ -7645,8 +7635,7 @@ SEL_TREE *Item_bool_func2::get_mm_tree(RANGE_OPT_PARAM *param, Item **cond_ptr)
76457635
76467636SEL_TREE *
76477637Item_bool_func::get_mm_parts (RANGE_OPT_PARAM *param, Field *field,
7648- Item_func::Functype type,
7649- Item *value, Item_result cmp_type)
7638+ Item_func::Functype type, Item *value)
76507639{
76517640 DBUG_ENTER (" get_mm_parts" );
76527641 if (field->table != param->table )
0 commit comments