23
23
/* This file is originally from the mysql distribution. Coded by monty */
27
#define NOT_FIXED_DEC (uint8_t)31
30
25
#include <drizzled/common.h>
32
#define NOT_FIXED_DEC (uint8_t)31
38
40
extern String my_empty_string;
39
41
extern const String my_null_string;
40
namespace drizzled { namespace memory { class Root; } }
42
namespace memory { class Root; }
41
43
typedef struct charset_info_st CHARSET_INFO;
43
#if defined(__cplusplus)
47
std::string String_to_std_string(String const& s);
48
String* set_String_from_std_string(String* s, std::string const& cs);
50
int sortcmp(const String *a,const String *b, const CHARSET_INFO * const cs);
51
int stringcmp(const String *a,const String *b);
52
String *copy_if_not_alloced(String *a,String *b,uint32_t arg_length);
53
uint32_t well_formed_copy_nchars(const CHARSET_INFO * const to_cs,
54
char *to, uint32_t to_length,
55
const CHARSET_INFO * const from_cs,
56
const char *from, uint32_t from_length,
58
const char **well_formed_error_pos,
59
const char **cannot_convert_error_pos,
60
const char **from_end_pos);
62
#if defined(__cplusplus)
45
std::string String_to_std_string(String const& s);
46
String* set_String_from_std_string(String* s, std::string const& cs);
48
int sortcmp(const String *a,const String *b, const CHARSET_INFO * const cs);
49
int stringcmp(const String *a,const String *b);
50
String *copy_if_not_alloced(String *a,String *b,uint32_t arg_length);
51
uint32_t well_formed_copy_nchars(const CHARSET_INFO * const to_cs,
52
char *to, uint32_t to_length,
53
const CHARSET_INFO * const from_cs,
54
const char *from, uint32_t from_length,
56
const char **well_formed_error_pos,
57
const char **cannot_convert_error_pos,
58
const char **from_end_pos);
78
73
String(char *str, uint32_t len, const CHARSET_INFO * const cs);
79
74
String(const String &str);
81
static void *operator new(size_t size, drizzled::memory::Root *mem_root);
76
static void *operator new(size_t size, memory::Root *mem_root);
82
77
static void operator delete(void *, size_t)
84
static void operator delete(void *, drizzled::memory::Root *)
79
static void operator delete(void *, memory::Root *)
291
286
q_*** methods writes values of parameters itself
292
287
qs_*** methods writes string representation of value
294
void q_append(const char c)
296
Ptr[str_length++] = c;
298
void q_append(const uint32_t n)
300
int4store(Ptr + str_length, n);
303
void q_append(double d)
305
float8store(Ptr + str_length, d);
308
void q_append(double *d)
310
float8store(Ptr + str_length, *d);
313
void q_append(const char *data, uint32_t data_len)
315
memcpy(Ptr + str_length, data, data_len);
316
str_length += data_len;
319
void write_at_position(int position, uint32_t value)
321
int4store(Ptr + position,value);
289
void q_append(const char c);
290
void q_append(const uint32_t n);
291
void q_append(double d);
292
void q_append(double *d);
293
void q_append(const char *data, uint32_t data_len);
294
void write_at_position(int position, uint32_t value);
324
296
/* Inline (general) functions used by the protocol functions */
359
331
bool check_if_only_end_space(const CHARSET_INFO * const cs, char *str,
363
bool operator==(const String &s1, const String &s2);
364
bool operator!=(const String &s1, const String &s2);
334
} /* namespace drizzled */
336
bool operator==(const drizzled::String &s1, const drizzled::String &s2);
337
bool operator!=(const drizzled::String &s1, const drizzled::String &s2);
367
340
#endif /* DRIZZLED_SQL_STRING_H */