MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Field_longstr Class Reference
Inheritance diagram for Field_longstr:
Collaboration diagram for Field_longstr:

Public Member Functions

 Field_longstr (uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, uchar null_bit_arg, utype unireg_check_arg, const char *field_name_arg, const CHARSET_INFO *charset_arg)
type_conversion_status store_decimal (const my_decimal *d)
uint32 max_data_length () const
- Public Member Functions inherited from Field_str
 Field_str (uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, uchar null_bit_arg, utype unireg_check_arg, const char *field_name_arg, const CHARSET_INFO *charset)
Item_result result_type () const
Item_result numeric_context_result_type () const
uint decimals () const
void make_field (Send_field *field)
type_conversion_status store (double nr)
type_conversion_status store (longlong nr, bool unsigned_val)=0
type_conversion_status store (const char *to, uint length, const CHARSET_INFO *cs)=0
uint repertoire (void) const
const CHARSET_INFOcharset (void) const
void set_charset (const CHARSET_INFO *charset_arg)
enum Derivation derivation (void) const
virtual void set_derivation (enum Derivation derivation_arg)
bool binary () const
uint32 max_display_length ()
virtual bool str_needs_quotes ()
uint is_equal (Create_field *new_field)
- Public Member Functions inherited from Field
bool has_insert_default_function () const
bool has_update_default_function () const
 Field (uchar *ptr_arg, uint32 length_arg, uchar *null_ptr_arg, uchar null_bit_arg, utype unireg_check_arg, const char *field_name_arg)
 This is used as a table name when the table structure is not set up.
virtual type_conversion_status store_packed (longlong nr)
virtual type_conversion_status store_time (MYSQL_TIME *ltime, uint8 dec)
type_conversion_status store_time (MYSQL_TIME *ltime)
type_conversion_status store (const char *to, uint length, const CHARSET_INFO *cs, enum_check_fields check_level)
virtual double val_real (void)=0
virtual longlong val_int (void)=0
virtual longlong val_time_temporal ()
virtual longlong val_date_temporal ()
longlong val_temporal_by_field_type ()
virtual my_decimalval_decimal (my_decimal *)=0
Stringval_str (String *str)
virtual Stringval_str (String *, String *)=0
Stringval_int_as_str (String *val_buffer, my_bool unsigned_flag)
virtual Item_result cmp_type () const
virtual Item_result cast_to_int_type () const
virtual bool eq (Field *field)
virtual bool eq_def (Field *field)
virtual uint32 pack_length () const
virtual uint32 pack_length_in_rec () const
virtual bool compatible_field_size (uint metadata, Relay_log_info *rli, uint16 mflags, int *order)
virtual uint pack_length_from_metadata (uint field_metadata)
virtual uint row_pack_length () const
virtual int save_field_metadata (uchar *first_byte)
virtual uint32 data_length ()
virtual uint32 sort_length () const
virtual type_conversion_status reset (void)
virtual void reset_fields ()
virtual bool get_timestamp (struct timeval *tm, int *warnings)
virtual void store_timestamp (const timeval *tm)
void store_timestamp (my_time_t sec)
virtual void set_default ()
void evaluate_insert_default_function ()
void evaluate_update_default_function ()
virtual bool zero_pack () const
virtual enum ha_base_keytype key_type () const
virtual uint32 key_length () const
virtual enum_field_types type () const =0
virtual enum_field_types real_type () const
virtual enum_field_types binlog_type () const
int cmp (const uchar *str)
virtual int cmp_max (const uchar *a, const uchar *b, uint max_len)
virtual int cmp (const uchar *, const uchar *)=0
virtual int cmp_binary (const uchar *a, const uchar *b, uint32 max_length=~0L)
virtual int cmp_offset (uint row_offset)
virtual int cmp_binary_offset (uint row_offset)
virtual int key_cmp (const uchar *a, const uchar *b)
virtual int key_cmp (const uchar *str, uint length)
virtual void sql_type (String &str) const =0
bool is_temporal () const
bool is_temporal_with_date () const
bool is_temporal_with_time () const
bool is_temporal_with_date_and_time () const
bool is_null (my_ptrdiff_t row_offset=0) const
bool is_real_null (my_ptrdiff_t row_offset=0) const
bool is_null_in_record (const uchar *record) const
void set_null (my_ptrdiff_t row_offset=0)
void set_notnull (my_ptrdiff_t row_offset=0)
bool maybe_null (void) const
bool real_maybe_null (void) const
uint null_offset (const uchar *record) const
uint null_offset () const
void set_null_ptr (uchar *p_null_ptr, uint p_null_bit)
size_t last_null_byte () const
virtual void make_sort_key (uchar *buff, uint length)=0
virtual bool optimize_range (uint idx, uint part)
virtual bool can_be_compared_as_longlong () const
virtual void free ()
virtual Fieldnew_field (MEM_ROOT *root, TABLE *new_table, bool keep_type)
virtual Fieldnew_key_field (MEM_ROOT *root, TABLE *new_table, uchar *new_ptr, uchar *new_null_ptr, uint new_null_bit)
Fieldnew_key_field (MEM_ROOT *root, TABLE *new_table, uchar *new_ptr)
virtual Fieldclone () const =0
virtual Fieldclone (MEM_ROOT *mem_root) const =0
void move_field (uchar *ptr_arg, uchar *null_ptr_arg, uchar null_bit_arg)
void move_field (uchar *ptr_arg)
virtual void move_field_offset (my_ptrdiff_t ptr_diff)
virtual void get_image (uchar *buff, uint length, const CHARSET_INFO *cs)
virtual void set_image (const uchar *buff, uint length, const CHARSET_INFO *cs)
virtual uint get_key_image (uchar *buff, uint length, imagetype type)
virtual void set_key_image (const uchar *buff, uint length)
longlong val_int_offset (uint row_offset)
longlong val_int (const uchar *new_ptr)
Stringval_str (String *str, const uchar *new_ptr)
virtual bool send_binary (Protocol *protocol)
virtual uchar * pack (uchar *to, const uchar *from, uint max_length, bool low_byte_first)
uchar * pack (uchar *to, const uchar *from)
virtual const uchar * unpack (uchar *to, const uchar *from, uint param_data, bool low_byte_first)
const uchar * unpack (uchar *to, const uchar *from)
virtual uint packed_col_length (const uchar *to, uint length)
virtual uint max_packed_col_length (uint max_length)
uint offset (uchar *record)
void copy_from_tmp (int offset)
uint fill_cache_field (struct st_cache_field *copy)
virtual bool get_date (MYSQL_TIME *ltime, uint fuzzydate)
virtual bool get_time (MYSQL_TIME *ltime)
virtual const CHARSET_INFOcharset_for_protocol (void) const
virtual const CHARSET_INFOsort_charset (void) const
virtual bool has_charset (void) const
virtual bool match_collation_to_optimize_range () const
bool set_warning (Sql_condition::enum_warning_level, unsigned int code, int cuted_increment) const
bool check_overflow (int op_result)
bool check_truncated (int op_result)
bool warn_if_overflow (int op_result)
void init (TABLE *table_arg)
longlong convert_decimal2longlong (const my_decimal *val, bool unsigned_flag, bool *has_overflow)
virtual uint32 char_length ()
virtual geometry_type get_geometry_type ()
void dbug_print ()
ha_storage_media field_storage_type () const
void set_storage_type (ha_storage_media storage_type_arg)
column_format_type column_format () const
void set_column_format (column_format_type column_format_arg)
virtual type_conversion_status validate_stored_val (THD *thd)
virtual void hash (ulong *nr, ulong *nr2)

Protected Member Functions

type_conversion_status report_if_important_data (const char *ptr, const char *end, bool count_spaces) const
type_conversion_status check_string_copy_error (const char *well_formed_error_pos, const char *cannot_convert_error_pos, const char *from_end_pos, const char *end, bool count_spaces, const CHARSET_INFO *cs) const

Additional Inherited Members

- Public Types inherited from Field
enum  utype {
  NONE, DATE, SHIELD, NOEMPTY,
  CASEUP, PNR, BGNR, PGNR,
  YES, NO, REL, CHECK,
  EMPTY, UNKNOWN_FIELD, CASEDN, NEXT_NUMBER,
  INTERVAL_FIELD, BIT_FIELD, TIMESTAMP_OLD_FIELD, CAPITALIZE,
  BLOB_FIELD, TIMESTAMP_DN_FIELD, TIMESTAMP_UN_FIELD, TIMESTAMP_DNUN_FIELD
}
enum  geometry_type {
  GEOM_GEOMETRY = 0, GEOM_POINT = 1, GEOM_LINESTRING = 2, GEOM_POLYGON = 3,
  GEOM_MULTIPOINT = 4, GEOM_MULTILINESTRING = 5, GEOM_MULTIPOLYGON = 6, GEOM_GEOMETRYCOLLECTION = 7
}
enum  imagetype { itRAW, itMBR }
enum  { LAST_NULL_BYTE_UNDEF = 0 }
- Static Public Member Functions inherited from Field
static void * operator new (size_t size) throw ()
static void * operator new (size_t size, MEM_ROOT *mem_root) throw ()
static void operator delete (void *ptr, MEM_ROOT *mem_root)
static void operator delete (void *ptr_arg, size_t size) throw ()
static bool type_can_have_key_part (enum_field_types)
static enum_field_types field_type_merge (enum_field_types, enum_field_types)
static Item_result result_merge_type (enum_field_types)
- Public Attributes inherited from Field
uchar * ptr
TABLEtable
TABLEorig_table
const char ** table_name
const char * field_name
LEX_STRING comment
key_map key_start
key_map part_of_key
key_map part_of_key_not_clustered
key_map part_of_sortkey
utype unireg_check
uint32 field_length
uint32 flags
uint16 field_index
uchar null_bit
bool is_created_from_null_item
- Static Protected Member Functions inherited from Field
static void handle_int16 (uchar *to, const uchar *from, bool low_byte_first_from, bool low_byte_first_to)
static void handle_int24 (uchar *to, const uchar *from, bool low_byte_first_from, bool low_byte_first_to)
static void handle_int32 (uchar *to, const uchar *from, bool low_byte_first_from, bool low_byte_first_to)
static void handle_int64 (uchar *to, const uchar *from, bool low_byte_first_from, bool low_byte_first_to)
- Protected Attributes inherited from Field_str
const CHARSET_INFOfield_charset
enum Derivation field_derivation

Detailed Description

Definition at line 1508 of file field.h.

Member Function Documentation

type_conversion_status Field_longstr::check_string_copy_error ( const char *  well_formed_error_pos,
const char *  cannot_convert_error_pos,
const char *  from_end_pos,
const char *  end,
bool  count_spaces,
const CHARSET_INFO cs 
) const
protected

Report "not well formed" or "cannot convert" error after storing a character string info a field.

As of version 5.0 both cases return the same error:

"Invalid string value: 'xxx' for column 't' at row 1"

Future versions will possibly introduce a new error message:

"Cannot convert character string: 'xxx' for column 't' at row 1"
Parameters
well_formed_error_posposition of the first non-wellformed character in the source string
cannot_convert_error_posposition of the first non-convertable character in the source string
from_end_posposition where conversion stopped in the source string
endend of the source string
count_spacestreat trailing spaces as important data
cscharacter set of the string
Returns
TYPE_OK, TYPE_NOTE_TRUNCATED, TYPE_WARN_TRUNCATED

Definition at line 6567 of file field.cc.

uint32 Field_longstr::max_data_length ( ) const
virtual

Get the maximum size of the data in packed format.

Returns
Maximum data length of the field when packed using the Field::pack() function.

Reimplemented from Field.

Reimplemented in Field_blob.

Definition at line 6739 of file field.cc.

type_conversion_status Field_longstr::store_decimal ( const my_decimal d)
virtual

Decimal representation of Field_str.

Parameters
dvalue for storing
Note
Field_str is the base class for fields implemeting [VAR]CHAR, VAR[BINARY], BLOB/TEXT, GEOMETRY. String value should be converted to floating point value according our rules, so we use double to store value of decimal in string.
Todo:
use decimal2string?
Return values
0OK
!=0error

Reimplemented from Field_str.

Definition at line 6731 of file field.cc.

Here is the call graph for this function:


The documentation for this class was generated from the following files: