summaryrefslogtreecommitdiff
path: root/sql/field.h
diff options
context:
space:
mode:
authorOleksandr Byelkin <sanja@mariadb.com>2023-01-31 09:57:52 +0100
committerOleksandr Byelkin <sanja@mariadb.com>2023-01-31 09:57:52 +0100
commit638625278e7cadf42633e6f9d1b663ca1e3e1bb1 (patch)
tree8c93d8a33713abff96d229e96828870a53d0a5a0 /sql/field.h
parentfa543a0f621fcf19e31c7d044f2b6c4f0836cd5a (diff)
parentb923b80cfd8628ef973019bf3dba76dda8d940c4 (diff)
downloadmariadb-git-638625278e7cadf42633e6f9d1b663ca1e3e1bb1.tar.gz
Merge branch '10.7' into 10.8
Diffstat (limited to 'sql/field.h')
-rw-r--r--sql/field.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/sql/field.h b/sql/field.h
index 1e28dc3a914..5289b1c3b5d 100644
--- a/sql/field.h
+++ b/sql/field.h
@@ -1845,7 +1845,14 @@ public:
key_map get_possible_keys();
/* Hash value */
- virtual void hash(ulong *nr, ulong *nr2);
+ void hash(Hasher *hasher)
+ {
+ if (is_null())
+ hasher->add_null();
+ else
+ hash_not_null(hasher);
+ }
+ virtual void hash_not_null(Hasher *hasher);
/**
Get the upper limit of the MySQL integral and floating-point type.
@@ -4221,7 +4228,7 @@ public:
uchar *new_ptr, uint32 length,
uchar *new_null_ptr, uint new_null_bit) override;
bool is_equal(const Column_definition &new_field) const override;
- void hash(ulong *nr, ulong *nr2) override;
+ void hash_not_null(Hasher *hasher) override;
uint length_size() const override { return length_bytes; }
void print_key_value(String *out, uint32 length) override;
Binlog_type_info binlog_type_info() const override;
@@ -4481,6 +4488,7 @@ public:
bool make_empty_rec_store_default_value(THD *thd, Item *item) override;
int store(const char *to, size_t length, CHARSET_INFO *charset) override;
using Field_str::store;
+ void hash_not_null(Hasher *hasher) override;
double val_real() override;
longlong val_int() override;
String *val_str(String *, String *) override;
@@ -5051,7 +5059,7 @@ public:
if (bit_ptr)
bit_ptr= ADD_TO_PTR(bit_ptr, ptr_diff, uchar*);
}
- void hash(ulong *nr, ulong *nr2) override;
+ void hash_not_null(Hasher *hasher) override;
SEL_ARG *get_mm_leaf(RANGE_OPT_PARAM *param, KEY_PART *key_part,
const Item_bool_func *cond,