23
23
/* This file is originally from the mysql distribution. Coded by monty */
27
#define NOT_FIXED_DEC (uint8_t)31
25
30
#include <drizzled/common.h>
32
#define NOT_FIXED_DEC (uint8_t)31
40
38
extern String my_empty_string;
41
39
extern const String my_null_string;
42
namespace memory { class Root; }
40
namespace drizzled { namespace memory { class Root; } }
43
41
typedef struct charset_info_st CHARSET_INFO;
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);
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)
73
78
String(char *str, uint32_t len, const CHARSET_INFO * const cs);
74
79
String(const String &str);
76
static void *operator new(size_t size, memory::Root *mem_root);
81
static void *operator new(size_t size, drizzled::memory::Root *mem_root);
77
82
static void operator delete(void *, size_t)
79
static void operator delete(void *, memory::Root *)
84
static void operator delete(void *, drizzled::memory::Root *)
114
119
(void) realloc(str_length);
119
if (Ptr && str_length < Alloced_length)
122
(void) realloc(str_length);
125
122
void append_identifier(const char *name, uint32_t length);
127
124
void set(String &str,uint32_t offset,uint32_t arg_length)
294
291
q_*** methods writes values of parameters itself
295
292
qs_*** methods writes string representation of value
297
void q_append(const char c);
298
void q_append(const uint32_t n);
299
void q_append(double d);
300
void q_append(double *d);
301
void q_append(const char *data, uint32_t data_len);
302
void write_at_position(int position, uint32_t 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);
304
324
/* Inline (general) functions used by the protocol functions */
339
359
bool check_if_only_end_space(const CHARSET_INFO * const cs, char *str,
342
} /* namespace drizzled */
344
bool operator==(const drizzled::String &s1, const drizzled::String &s2);
345
bool operator!=(const drizzled::String &s1, const drizzled::String &s2);
363
bool operator==(const String &s1, const String &s2);
364
bool operator!=(const String &s1, const String &s2);
348
367
#endif /* DRIZZLED_SQL_STRING_H */