diff options
author | Alexander Barkov <bar@mariadb.org> | 2015-09-18 23:03:35 +0400 |
---|---|---|
committer | Alexander Barkov <bar@mariadb.org> | 2015-09-18 23:03:35 +0400 |
commit | b75c003372d6f35b230d0bd9af3cd4a1d8227bde (patch) | |
tree | e53743e035433a53e76ab1a9b3b50abd8d9c7bee /sql/item.h | |
parent | da3ec3d421c345bbd4b6ddfe0e1e08ed192c0a97 (diff) | |
download | mariadb-git-b75c003372d6f35b230d0bd9af3cd4a1d8227bde.tar.gz |
MDEV-8816 Equal field propagation is not applied for WHERE varbinary_column>=_utf8'a' COLLATE utf8_general_ci AND varbinary_column='A';
1. Removing the legacy code that disabled equal field propagation in cases
when comparison is done as VARBINARY. This is now correctly handled by
the new propagation code in Item_xxx::propagate_equal_fields() and
Field_str::can_be_substituted_to_equal_item (the bug fix).
2. Also, removing legacy (pre-MySQL-4.1) Arg_comparator methods
compare_binary_string() and compare_e_binary_string(), as VARBINARY
comparison is correcty handled in compare_string() and compare_e_string() by
the corresponding VARBINARY collation handler implemented in my_charset_bin.
(not really a part of the bug fix)
Diffstat (limited to 'sql/item.h')
-rw-r--r-- | sql/item.h | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/sql/item.h b/sql/item.h index f727c33326b..45f19b860be 100644 --- a/sql/item.h +++ b/sql/item.h @@ -1520,7 +1520,6 @@ public: return trace_unsupported_by_check_vcol_func_processor(full_name()); } - virtual bool set_no_const_sub(uchar *arg) { return FALSE; } /* arg points to REPLACE_EQUAL_FIELD_ARG object */ virtual Item *replace_equal_field(THD *thd, uchar *arg) { return this; } /* @@ -2333,7 +2332,6 @@ protected: public: Field *field; Item_equal *item_equal; - bool no_const_subst; /* if any_privileges set to TRUE then here real effective privileges will be stored @@ -2465,7 +2463,6 @@ public: void set_item_equal(Item_equal *item_eq) { item_equal= item_eq; } Item_equal *find_item_equal(COND_EQUAL *cond_equal); Item* propagate_equal_fields(THD *, const Context &, COND_EQUAL *); - bool set_no_const_sub(uchar *arg); Item *replace_equal_field(THD *thd, uchar *arg); inline uint32 max_disp_length() { return field->max_display_length(); } Item_field *field_for_view_update() { return this; } |