MySQL 5.6.14 Source Code Document
|
Public Member Functions | |
Field_string (uchar *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, uchar null_bit_arg, enum utype unireg_check_arg, const char *field_name_arg, const CHARSET_INFO *cs) | |
Field_string (uint32 len_arg, bool maybe_null_arg, const char *field_name_arg, const CHARSET_INFO *cs) | |
enum_field_types | type () const |
bool | match_collation_to_optimize_range () const |
enum ha_base_keytype | key_type () const |
bool | zero_pack () const |
type_conversion_status | reset (void) |
type_conversion_status | store (const char *to, uint length, const CHARSET_INFO *charset) |
type_conversion_status | store (longlong nr, bool unsigned_val) |
type_conversion_status | store (double nr) |
double | val_real (void) |
longlong | val_int (void) |
String * | val_str (String *, String *) |
my_decimal * | val_decimal (my_decimal *) |
int | cmp (const uchar *, const uchar *) |
void | make_sort_key (uchar *buff, uint length) |
void | sql_type (String &str) const |
virtual uchar * | pack (uchar *to, const uchar *from, uint max_length, bool low_byte_first) |
virtual const uchar * | unpack (uchar *to, const uchar *from, uint param_data, bool low_byte_first) |
uint | pack_length_from_metadata (uint field_metadata) |
bool | compatible_field_size (uint field_metadata, Relay_log_info *rli, uint16 mflags, int *order_var) |
uint | row_pack_length () const |
int | pack_cmp (const uchar *a, const uchar *b, uint key_length, my_bool insert_or_update) |
int | pack_cmp (const uchar *b, uint key_length, my_bool insert_or_update) |
uint | packed_col_length (const uchar *to, uint length) |
uint | max_packed_col_length (uint max_length) |
enum_field_types | real_type () const |
bool | has_charset (void) const |
Field * | new_field (MEM_ROOT *root, TABLE *new_table, bool keep_type) |
Field_string * | clone (MEM_ROOT *mem_root) const |
Field_string * | clone () const |
virtual uint | get_key_image (uchar *buff, uint length, imagetype type) |
Public Member Functions inherited from Field_longstr | |
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) |
uint | repertoire (void) const |
const CHARSET_INFO * | charset (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 longlong | val_time_temporal () |
virtual longlong | val_date_temporal () |
longlong | val_temporal_by_field_type () |
String * | val_str (String *str) |
String * | val_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 int | save_field_metadata (uchar *first_byte) |
virtual uint32 | data_length () |
virtual uint32 | sort_length () const |
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 uint32 | key_length () 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_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) |
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 bool | optimize_range (uint idx, uint part) |
virtual bool | can_be_compared_as_longlong () const |
virtual void | free () |
virtual Field * | new_key_field (MEM_ROOT *root, TABLE *new_table, uchar *new_ptr, uchar *new_null_ptr, uint new_null_bit) |
Field * | new_key_field (MEM_ROOT *root, TABLE *new_table, uchar *new_ptr) |
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 void | set_key_image (const uchar *buff, uint length) |
longlong | val_int_offset (uint row_offset) |
longlong | val_int (const uchar *new_ptr) |
String * | val_str (String *str, const uchar *new_ptr) |
virtual bool | send_binary (Protocol *protocol) |
uchar * | pack (uchar *to, const uchar *from) |
const uchar * | unpack (uchar *to, const uchar *from) |
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_INFO * | charset_for_protocol (void) const |
virtual const CHARSET_INFO * | sort_charset (void) 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) |
Public Attributes | |
bool | can_alter_field_type |
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) |
Protected Member Functions inherited from Field_longstr | |
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 |
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_INFO * | field_charset |
enum Derivation | field_derivation |
|
inlinevirtual |
Makes a shallow copy of the Field object.
mem_root | MEM_ROOT to use for memory allocation. |
NULL | If memory allocation failed. |
Implements Field.
|
inlinevirtual |
Makes a shallow copy of the Field object.
NULL | If memory allocation failed. |
Implements Field.
|
virtual |
Check to see if field size is compatible with destination.
This method is used in row-based replication to verify that the slave's field size is less than or equal to the master's field size. The encoded field metadata (from the master or source) is decoded and compared to the size of this field (the slave or destination).
The comparison is made so that if the source data (from the master) is less than the target data (on the slave), -1 is returned in
. This implies that a conversion is necessary, but that it is lossy and can result in truncation of the value.*order_var
If the source data is strictly greater than the target data, 1 is returned in *order_var
. This implies that the source type can is contained in the target type and that a conversion is necessary but is non-lossy.
If no conversion is required to fit the source type in the target type, 0 is returned in *order_var
.
field_metadata | Encoded size in field metadata |
mflags | Flags from the table map event for the table. |
order_var | Pointer to variable where the order between the source field and this field will be returned. |
true
if this field's size is compatible with the master's field size, false
otherwise. Reimplemented from Field.
|
virtual |
Writes a copy of the current value in the record buffer, suitable for sorting using byte-by-byte comparison. Integers are always in big-endian regardless of hardware architecture. At most length bytes are written into the buffer.
buff | The buffer, assumed to be at least length bytes. |
length | Number of bytes to write. |
Implements Field.
|
virtual |
|
inlinevirtual |
Store double value in Field_string or Field_varstring.
Pretty prints double number into field_length characters buffer.
nr | number |
Reimplemented from Field_str.
Definition at line 3115 of file field.h.
|
virtual |
Unpack a string field from row data.
This method is used to unpack a string field from a master whose size of the field is less than that of the slave. Note that there can be a variety of field types represented with this class. Certain types like ENUM or SET are processed differently. Hence, the upper byte of the param_data
argument contains the result of field->real_type() from the master.
Field_string::do_save_field_metadata
to | Destination of the data |
from | Source of the data |
param_data | Real type (upper) and length (lower) values |
Reimplemented from Field.