diff options
Diffstat (limited to 'sql/field.h')
-rw-r--r-- | sql/field.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/sql/field.h b/sql/field.h index dfc02149f9d..351dd9620a0 100644 --- a/sql/field.h +++ b/sql/field.h @@ -1110,6 +1110,11 @@ public: */ virtual uint32 data_length() { return pack_length(); } virtual uint32 sort_length() const { return pack_length(); } + /* + returns the sort_length for a field without the suffix length bytes + for field with binary charset. + */ + virtual uint32 sort_length_without_suffix() const { return pack_length(); } /* sort_suffix_length() return the length bytes needed to store the length @@ -1470,6 +1475,9 @@ public: virtual uint make_packed_sort_key_part(uchar *buff, const SORT_FIELD_ATTR *sort_field); + virtual uint make_packed_key_part(uchar *buff, + const SORT_FIELD_ATTR *sort_field); + virtual void make_send_field(Send_field *); /* @@ -2222,6 +2230,8 @@ public: bool is_packable() const override { return true; } uint make_packed_sort_key_part(uchar *buff, const SORT_FIELD_ATTR *sort_field)override; + uint make_packed_key_part(uchar *buff, + const SORT_FIELD_ATTR *sort_field) override; uchar* pack_sort_string(uchar *to, const SORT_FIELD_ATTR *sort_field); }; @@ -4148,6 +4158,10 @@ public: { return (uint32) field_length + sort_suffix_length(); } + uint32 sort_length_without_suffix() const override + { + return (uint32) field_length; + } virtual uint32 sort_suffix_length() const override { return (field_charset() == &my_charset_bin ? length_bytes : 0); @@ -4496,6 +4510,10 @@ public: { return (uint32) (packlength); } uint row_pack_length() const override { return pack_length_no_ptr(); } uint32 sort_length() const override; + uint32 sort_length_without_suffix() const override + { + return (uint32)field_length; + } uint32 sort_suffix_length() const override; uint32 value_length() override { return get_length(); } virtual uint32 max_data_length() const override |