mirror of
https://github.com/MariaDB/server.git
synced 2025-01-30 18:41:56 +01:00
Extend String class with CHARSET_INFO field
This commit is contained in:
parent
2eed406550
commit
e3d5356d48
2 changed files with 29 additions and 10 deletions
|
@ -1279,7 +1279,7 @@ Item_func_regex::fix_fields(THD *thd,TABLE_LIST *tables)
|
||||||
if ((error=regcomp(&preg,res->c_ptr(),
|
if ((error=regcomp(&preg,res->c_ptr(),
|
||||||
binary ? REG_EXTENDED | REG_NOSUB :
|
binary ? REG_EXTENDED | REG_NOSUB :
|
||||||
REG_EXTENDED | REG_NOSUB | REG_ICASE,
|
REG_EXTENDED | REG_NOSUB | REG_ICASE,
|
||||||
default_charset_info)))
|
res->charset())))
|
||||||
{
|
{
|
||||||
(void) regerror(error,&preg,buff,sizeof(buff));
|
(void) regerror(error,&preg,buff,sizeof(buff));
|
||||||
my_printf_error(ER_REGEXP_ERROR,ER(ER_REGEXP_ERROR),MYF(0),buff);
|
my_printf_error(ER_REGEXP_ERROR,ER(ER_REGEXP_ERROR),MYF(0),buff);
|
||||||
|
@ -1327,7 +1327,7 @@ longlong Item_func_regex::val_int()
|
||||||
if (regcomp(&preg,res2->c_ptr(),
|
if (regcomp(&preg,res2->c_ptr(),
|
||||||
binary ? REG_EXTENDED | REG_NOSUB :
|
binary ? REG_EXTENDED | REG_NOSUB :
|
||||||
REG_EXTENDED | REG_NOSUB | REG_ICASE,
|
REG_EXTENDED | REG_NOSUB | REG_ICASE,
|
||||||
default_charset_info))
|
res->charset()))
|
||||||
|
|
||||||
{
|
{
|
||||||
null_value=1;
|
null_value=1;
|
||||||
|
|
|
@ -36,26 +36,45 @@ class String
|
||||||
char *Ptr;
|
char *Ptr;
|
||||||
uint32 str_length,Alloced_length;
|
uint32 str_length,Alloced_length;
|
||||||
bool alloced;
|
bool alloced;
|
||||||
|
CHARSET_INFO *str_charset;
|
||||||
public:
|
public:
|
||||||
String()
|
String()
|
||||||
{ Ptr=0; str_length=Alloced_length=0; alloced=0; }
|
{
|
||||||
|
Ptr=0; str_length=Alloced_length=0; alloced=0;
|
||||||
|
str_charset=default_charset_info;
|
||||||
|
}
|
||||||
String(uint32 length_arg)
|
String(uint32 length_arg)
|
||||||
{ alloced=0; Alloced_length=0; (void) real_alloc(length_arg); }
|
{
|
||||||
|
alloced=0; Alloced_length=0; (void) real_alloc(length_arg);
|
||||||
|
str_charset=default_charset_info;
|
||||||
|
}
|
||||||
String(const char *str)
|
String(const char *str)
|
||||||
{ Ptr=(char*) str; str_length=(uint) strlen(str); Alloced_length=0; alloced=0;}
|
{
|
||||||
|
Ptr=(char*) str; str_length=(uint) strlen(str); Alloced_length=0; alloced=0;
|
||||||
|
str_charset=default_charset_info;
|
||||||
|
}
|
||||||
String(const char *str,uint32 len)
|
String(const char *str,uint32 len)
|
||||||
{ Ptr=(char*) str; str_length=len; Alloced_length=0; alloced=0;}
|
{
|
||||||
|
Ptr=(char*) str; str_length=len; Alloced_length=0; alloced=0;
|
||||||
|
str_charset=default_charset_info;
|
||||||
|
}
|
||||||
String(char *str,uint32 len)
|
String(char *str,uint32 len)
|
||||||
{ Ptr=(char*) str; Alloced_length=str_length=len; alloced=0;}
|
{
|
||||||
|
Ptr=(char*) str; Alloced_length=str_length=len; alloced=0;
|
||||||
|
str_charset=default_charset_info;
|
||||||
|
}
|
||||||
String(const String &str)
|
String(const String &str)
|
||||||
{ Ptr=str.Ptr ; str_length=str.str_length ;
|
{
|
||||||
Alloced_length=str.Alloced_length; alloced=0; }
|
Ptr=str.Ptr ; str_length=str.str_length ;
|
||||||
|
Alloced_length=str.Alloced_length; alloced=0;
|
||||||
|
str_charset=str.str_charset;
|
||||||
|
}
|
||||||
static void *operator new(size_t size) { return (void*) sql_alloc((uint) size); }
|
static void *operator new(size_t size) { return (void*) sql_alloc((uint) size); }
|
||||||
static void operator delete(void *ptr_arg,size_t size) /*lint -e715 */
|
static void operator delete(void *ptr_arg,size_t size) /*lint -e715 */
|
||||||
{ sql_element_free(ptr_arg); }
|
{ sql_element_free(ptr_arg); }
|
||||||
~String() { free(); }
|
~String() { free(); }
|
||||||
|
|
||||||
|
inline CHARSET_INFO *charset() const { return str_charset; }
|
||||||
inline uint32 length() const { return str_length;}
|
inline uint32 length() const { return str_length;}
|
||||||
inline uint32 alloced_length() const { return Alloced_length;}
|
inline uint32 alloced_length() const { return Alloced_length;}
|
||||||
inline char& operator [] (uint32 i) const { return Ptr[i]; }
|
inline char& operator [] (uint32 i) const { return Ptr[i]; }
|
||||||
|
|
Loading…
Add table
Reference in a new issue