diff options
author | Sergey Petrunya <psergey@askmonty.org> | 2013-06-27 18:28:14 +0400 |
---|---|---|
committer | Sergey Petrunya <psergey@askmonty.org> | 2013-06-27 18:28:14 +0400 |
commit | ef47cc1f091f76740212e125fe91f113028cbaa8 (patch) | |
tree | da246c3fb17d79c00d4491406edffbbd373b9fbb /sql/sql_string.h | |
parent | 639baee61bdfefe124414db6b12d40061a086e5b (diff) | |
parent | befacafd73d4892f2ad84991ad7c2d4626e45c47 (diff) | |
download | mariadb-git-ef47cc1f091f76740212e125fe91f113028cbaa8.tar.gz |
[SHOW] EXPLAIN UPDATE/DELETE, code re-structuring
- Merge with 10.0-base
Diffstat (limited to 'sql/sql_string.h')
-rw-r--r-- | sql/sql_string.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/sql/sql_string.h b/sql/sql_string.h index 9367a25b6be..dafb6d800a8 100644 --- a/sql/sql_string.h +++ b/sql/sql_string.h @@ -510,6 +510,38 @@ public: } }; + +// The following class is a backport from MySQL 5.6: +/** + String class wrapper with a preallocated buffer of size buff_sz + + This class allows to replace sequences of: + char buff[12345]; + String str(buff, sizeof(buff)); + str.length(0); + with a simple equivalent declaration: + StringBuffer<12345> str; +*/ + +template<size_t buff_sz> +class StringBuffer : public String +{ + char buff[buff_sz]; + +public: + StringBuffer() : String(buff, buff_sz, &my_charset_bin) { length(0); } + explicit StringBuffer(const CHARSET_INFO *cs) : String(buff, buff_sz, cs) + { + length(0); + } + StringBuffer(const char *str, size_t length, const CHARSET_INFO *cs) + : String(buff, buff_sz, cs) + { + set(str, length, cs); + } +}; + + static inline bool check_if_only_end_space(CHARSET_INFO *cs, const char *str, const char *end) |