diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2020-05-15 17:55:01 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2020-05-15 17:55:01 +0300 |
commit | 6a6bcc53b8767dfbb4dc86bad3e90a276c55f605 (patch) | |
tree | 04116d0e438cfcf3a3b6a7557d5ec8c570255db6 /sql/field.h | |
parent | 3eadb135fd7b7e2d40fd6b9a819ac3245043f781 (diff) | |
parent | ff66d65a096ec02dda1ab449d84a40361551085c (diff) | |
download | mariadb-git-6a6bcc53b8767dfbb4dc86bad3e90a276c55f605.tar.gz |
Merge 10.2 into 10.3
Diffstat (limited to 'sql/field.h')
-rw-r--r-- | sql/field.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/sql/field.h b/sql/field.h index 187ad7674d6..af96d6b2278 100644 --- a/sql/field.h +++ b/sql/field.h @@ -1,7 +1,7 @@ #ifndef FIELD_INCLUDED #define FIELD_INCLUDED /* Copyright (c) 2000, 2015, Oracle and/or its affiliates. - Copyright (c) 2008, 2019, MariaDB Corporation. + Copyright (c) 2008, 2020, MariaDB Corporation. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -825,6 +825,19 @@ public: DBUG_ASSERT(ls.length < UINT_MAX32); return store(ls.str, (uint) ls.length, cs); } + +#ifdef HAVE_valgrind_or_MSAN + /** + Mark unused memory in the field as defined. Mainly used to ensure + that if we write full field to disk (for example in + Count_distinct_field::add(), we don't write unitalized data to + disk which would confuse valgrind or MSAN. + */ + virtual void mark_unused_memory_as_defined() {} +#else + void mark_unused_memory_as_defined() {} +#endif + virtual double val_real(void)=0; virtual longlong val_int(void)=0; /* @@ -3451,6 +3464,9 @@ public: } int store(const char *to,size_t length,CHARSET_INFO *charset); using Field_str::store; +#ifdef HAVE_valgrind_or_MSAN + void mark_unused_memory_as_defined(); +#endif double val_real(void); longlong val_int(void); String *val_str(String*,String *); |