30
30
#include <drizzled/common.h>
31
#include <mysys/iocache.h>
38
37
extern String my_empty_string;
39
38
extern const String my_null_string;
39
typedef struct st_mem_root MEM_ROOT;
40
typedef struct charset_info_st CHARSET_INFO;
41
42
#if defined(__cplusplus)
66
67
const CHARSET_INFO *str_charset;
74
str_charset(&my_charset_bin) { }
76
String(uint32_t length_arg) :
81
str_charset(&my_charset_bin)
83
(void) real_alloc(length_arg);
86
String(const char *str, const CHARSET_INFO * const cs) :
87
Ptr(const_cast<char*>(str)),
88
str_length(static_cast<uint32_t>(strlen(str))),
93
String(const char *str, uint32_t len, const CHARSET_INFO * const cs) :
94
Ptr(const_cast<char*>(str)),
100
String(char *str,uint32_t len, const CHARSET_INFO * const cs) :
107
String(const String &str) :
109
str_length(str.str_length),
110
Alloced_length(str.Alloced_length),
112
str_charset(str.str_charset) { }
114
static void *operator new(size_t size, MEM_ROOT *mem_root)
115
{ return alloc_root(mem_root, static_cast<uint32_t>(size)); }
71
String(uint32_t length_arg);
72
String(const char *str, const CHARSET_INFO * const cs);
73
String(const char *str, uint32_t len, const CHARSET_INFO * const cs);
74
String(char *str, uint32_t len, const CHARSET_INFO * const cs);
75
String(const String &str);
77
static void *operator new(size_t size, MEM_ROOT *mem_root);
116
78
static void operator delete(void *, size_t)
117
{ TRASH(ptr_arg, size); }
118
80
static void operator delete(void *, MEM_ROOT *)
119
81
{ /* never called */ }
393
static inline bool check_if_only_end_space(const CHARSET_INFO * const cs, char *str,
396
return str+ cs->cset->scan(cs, str, end, MY_SEQ_SPACES) == end;
355
bool check_if_only_end_space(const CHARSET_INFO * const cs, char *str,
400
359
bool operator==(const String &s1, const String &s2);