summaryrefslogtreecommitdiff
path: root/sql/sql_string.h
diff options
context:
space:
mode:
authorSergey Petrunya <psergey@askmonty.org>2013-06-27 18:28:14 +0400
committerSergey Petrunya <psergey@askmonty.org>2013-06-27 18:28:14 +0400
commitef47cc1f091f76740212e125fe91f113028cbaa8 (patch)
treeda246c3fb17d79c00d4491406edffbbd373b9fbb /sql/sql_string.h
parent639baee61bdfefe124414db6b12d40061a086e5b (diff)
parentbefacafd73d4892f2ad84991ad7c2d4626e45c47 (diff)
downloadmariadb-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.h32
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)