My Project
|
Public Member Functions | |
Item_string (const char *str, uint length, const CHARSET_INFO *cs, Derivation dv=DERIVATION_COERCIBLE, uint repertoire=MY_REPERTOIRE_UNICODE30) | |
Item_string (const CHARSET_INFO *cs, Derivation dv=DERIVATION_COERCIBLE) | |
Item_string (const Name_string name_par, const char *str, uint length, const CHARSET_INFO *cs, Derivation dv=DERIVATION_COERCIBLE, uint repertoire=MY_REPERTOIRE_UNICODE30) | |
void | set_str_with_copy (const char *str_arg, uint length_arg) |
void | set_repertoire_from_value () |
enum Type | type () const |
double | val_real () |
longlong | val_int () |
String * | val_str (String *) |
my_decimal * | val_decimal (my_decimal *) |
bool | get_date (MYSQL_TIME *ltime, uint fuzzydate) |
bool | get_time (MYSQL_TIME *ltime) |
type_conversion_status | save_in_field (Field *field, bool no_conversions) |
enum Item_result | result_type () const |
enum_field_types | field_type () const |
bool | basic_const_item () const |
bool | eq (const Item *item, bool binary_cmp) const |
Item * | clone_item () |
Item * | safe_charset_converter (const CHARSET_INFO *tocs) |
Item * | charset_converter (const CHARSET_INFO *tocs, bool lossless) |
void | append (char *str, uint length) |
virtual void | print (String *str, enum_query_type query_type) |
bool | check_partition_func_processor (uchar *int_arg) |
bool | is_cs_specified () const |
void | set_cs_specified (bool cs_specified) |
Item * Item_string::charset_converter | ( | const CHARSET_INFO * | tocs, |
bool | lossless | ||
) |
Convert a string item into the requested character set.
tocs | Character set to to convert the string to. |
lossless | Whether data loss is acceptable. |
bool Item_string::eq | ( | const Item * | item, |
bool | binary_cmp | ||
) | const [virtual] |
This function is called when:
Reimplemented from Item.
bool Item_string::is_cs_specified | ( | ) | const [inline] |
Return TRUE if character-set-introducer was explicitly specified in the original query for this item (text literal).
This operation is to be called from Item_string::print(). The idea is that when a query is generated (re-constructed) from the Item-tree, character-set-introducers should appear only for those literals, where they were explicitly specified by the user. Otherwise, that may lead to loss collation information (character set introducers implies default collation for the literal).
Basically, that makes sense only for views and hopefully will be gone one day when we start using original query as a view definition.
TRUE | if character set introducer was explicitly specified in the original query. |
FALSE | otherwise. |
void Item_string::print | ( | String * | str, |
enum_query_type | query_type | ||
) | [virtual] |
Reimplemented from Item.
Reimplemented in Item_static_string_func.
type_conversion_status Item_string::save_in_field | ( | Field * | field, |
bool | no_conversions | ||
) | [virtual] |
void Item_string::set_cs_specified | ( | bool | cs_specified | ) | [inline] |
Set the value of m_cs_specified attribute.
m_cs_specified attribute shows whether character-set-introducer was explicitly specified in the original query for this text literal or not. The attribute makes sense (is used) only for views.
This operation is to be called from the parser during parsing an input query.
longlong Item_string::val_int | ( | void | ) | [virtual] |