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

Public Types

enum  row_version_type { OLD_ROW, NEW_ROW }

Public Member Functions

 Item_trigger_field (Name_resolution_context *context_arg, row_version_type row_ver_arg, const char *field_name_arg, ulong priv, const bool ro)
void setup_field (THD *thd, TABLE *table, GRANT_INFO *table_grant_info)
enum Type type () const
bool eq (const Item *item, bool binary_cmp) const
bool fix_fields (THD *, Item **)
virtual void print (String *str, enum_query_type query_type)
table_map used_tables () const
Fieldget_tmp_table_field ()
Itemcopy_or_same (THD *thd)
Itemget_tmp_table_item (THD *thd)
void cleanup ()
Settable_routine_parameterget_settable_routine_parameter ()
bool set_value (THD *thd, Item **it)
- Public Member Functions inherited from Item_field
 Item_field (Name_resolution_context *context_arg, const char *db_arg, const char *table_name_arg, const char *field_name_arg)
 Item_field (THD *thd, Item_field *item)
 Item_field (THD *thd, Name_resolution_context *context_arg, Field *field)
 Item_field (Field *field)
enum Type type () const
bool eq (const Item *item, bool binary_cmp) const
double val_real ()
longlong val_int ()
longlong val_time_temporal ()
longlong val_date_temporal ()
my_decimalval_decimal (my_decimal *)
Stringval_str (String *)
double val_result ()
longlong val_int_result ()
longlong val_time_temporal_result ()
longlong val_date_temporal_result ()
Stringstr_result (String *tmp)
my_decimalval_decimal_result (my_decimal *)
bool val_bool_result ()
bool is_null_result ()
bool send (Protocol *protocol, String *str_arg)
void reset_field (Field *f)
bool fix_fields (THD *, Item **)
void make_field (Send_field *tmp_field)
type_conversion_status save_in_field (Field *field, bool no_conversions)
void save_org_in_field (Field *field)
table_map used_tables () const
virtual table_map resolved_used_tables () const
enum Item_result result_type () const
enum Item_result numeric_context_result_type () const
Item_result cast_to_int_type () const
enum_field_types field_type () const
enum_monotonicity_info get_monotonicity_info () const
longlong val_int_endpoint (bool left_endp, bool *incl_endp)
Fieldget_tmp_table_field ()
Fieldtmp_table_field (TABLE *t_arg)
bool get_date (MYSQL_TIME *ltime, uint fuzzydate)
bool get_date_result (MYSQL_TIME *ltime, uint fuzzydate)
bool get_time (MYSQL_TIME *ltime)
bool get_timeval (struct timeval *tm, int *warnings)
bool is_null ()
void update_null_value ()
Itemget_tmp_table_item (THD *thd)
bool collect_item_field_processor (uchar *arg)
bool add_field_to_set_processor (uchar *arg)
bool remove_column_from_bitmap (uchar *arg)
bool find_item_in_field_list_processor (uchar *arg)
bool register_field_in_read_map (uchar *arg)
bool check_partition_func_processor (uchar *int_arg)
void cleanup ()
Item_equalfind_item_equal (COND_EQUAL *cond_equal)
bool subst_argument_checker (uchar **arg)
Itemequal_fields_propagator (uchar *arg)
bool set_no_const_sub (uchar *arg)
Itemreplace_equal_field (uchar *arg)
uint32 max_disp_length ()
Item_fieldfield_for_view_update ()
Itemsafe_charset_converter (const CHARSET_INFO *tocs)
int fix_outer_field (THD *thd, Field **field, Item **reference)
virtual Itemupdate_value_transformer (uchar *select_arg)
virtual bool item_field_by_name_analyzer (uchar **arg)
virtual Itemitem_field_by_name_transformer (uchar *arg)
virtual void print (String *str, enum_query_type query_type)
bool is_outer_field () const
Field::geometry_type get_geometry_type () const
const CHARSET_INFOcharset_for_protocol (void) const
void dbug_print ()
bool push_to_non_agg_fields (st_select_lex *select_lex)
 Pushes the item to select_lex.non_agg_fields() and updates its marker.
- Public Member Functions inherited from Item_ident
 Item_ident (Name_resolution_context *context_arg, const char *db_name_arg, const char *table_name_arg, const char *field_name_arg)
 Item_ident (THD *thd, Item_ident *item)
const char * full_name () const
virtual void fix_after_pullout (st_select_lex *parent_select, st_select_lex *removed_select)
bool remove_dependence_processor (uchar *arg)
virtual bool change_context_processor (uchar *cntx)
- Public Member Functions inherited from Item
 Item (THD *thd, Item *item)
void rename (char *new_name)
void init_make_field (Send_field *tmp_field, enum enum_field_types type)
virtual Fieldmake_string_field (TABLE *table)
void quick_fix_field ()
type_conversion_status save_in_field_no_warnings (Field *field, bool no_conversions)
virtual type_conversion_status save_safe_in_field (Field *field)
enum Item_result temporal_with_date_as_number_result_type () const
virtual enum_field_types string_field_type () const
longlong val_temporal_by_field_type ()
longlong val_temporal_with_round (enum_field_types type, uint8 dec)
ulonglong val_uint ()
virtual Stringval_str_ascii (String *str)
virtual bool val_bool ()
virtual Stringval_nodeset (String *)
type_conversion_status save_time_in_field (Field *field)
type_conversion_status save_date_in_field (Field *field)
type_conversion_status save_str_value_in_field (Field *field, String *result)
virtual table_map not_null_tables () const
virtual bool basic_const_item () const
virtual Itemclone_item ()
virtual cond_result eq_cmp_result () const
uint float_length (uint decimals_par) const
virtual uint decimal_precision () const
int decimal_int_part () const
virtual uint time_precision ()
virtual uint datetime_precision ()
virtual bool const_item () const
virtual bool const_during_execution () const
void print_item_w_name (String *, enum_query_type query_type)
void print_for_order (String *str, enum_query_type query_type, bool used_alias)
virtual void update_used_tables ()
virtual void split_sum_func (THD *thd, Ref_ptr_array ref_pointer_array, List< Item > &fields)
void split_sum_func2 (THD *thd, Ref_ptr_array ref_pointer_array, List< Item > &fields, Item **ref, bool skip_registered)
virtual void top_level_item ()
virtual void set_result_field (Field *field)
virtual bool is_result_field ()
virtual bool is_bool_func ()
virtual void save_in_result_field (bool no_conversions)
virtual void no_rows_in_result ()
virtual Itemcopy_or_same (THD *thd)
virtual Itemcopy_andor_structure (THD *thd, bool real_items=false)
virtual Itemreal_item ()
virtual const CHARSET_INFOcompare_collation ()
virtual bool walk (Item_processor processor, bool walk_subquery, uchar *arg)
virtual Itemtransform (Item_transformer transformer, uchar *arg)
virtual Itemcompile (Item_analyzer analyzer, uchar **arg_p, Item_transformer transformer, uchar *arg_t)
virtual void traverse_cond (Cond_traverser traverser, void *arg, traverse_order order)
virtual bool intro_version (uchar *int_arg)
virtual bool remove_fixed (uchar *arg)
virtual bool cleanup_processor (uchar *arg)
virtual bool reset_query_id_processor (uchar *query_id_arg)
virtual bool find_item_processor (uchar *arg)
virtual bool inform_item_in_cond_of_tab (uchar *join_tab_index)
virtual bool clean_up_after_removal (uchar *arg)
virtual bool cache_const_expr_analyzer (uchar **arg)
virtual Itemcache_const_expr_transformer (uchar *arg)
virtual bool equality_substitution_analyzer (uchar **arg)
virtual Itemequality_substitution_transformer (uchar *arg)
virtual bool explain_subquery_checker (uchar **arg)
virtual Itemexplain_subquery_propagator (uchar *arg)
virtual bool check_valid_arguments_processor (uchar *bool_arg)
virtual bool find_function_processor (uchar *arg)
virtual Itemthis_item ()
virtual const Itemthis_item () const
virtual Item ** this_item_addr (THD *thd, Item **addr_arg)
virtual uint cols ()
virtual Itemelement_index (uint i)
virtual Item ** addr (uint i)
virtual bool check_cols (uint c)
virtual bool null_inside ()
virtual void bring_value ()
Fieldtmp_table_field_from_field_type (TABLE *table, bool fixed_length)
virtual Itemneg_transformer (THD *thd)
void delete_self ()
virtual bool is_splocal ()
virtual
Settable_routine_parameter
get_settable_routine_parameter ()
bool is_temporal_with_date () const
bool is_temporal_with_date_and_time () const
bool is_temporal_with_time () const
bool is_temporal () const
bool has_compatible_context (Item *item) const
Stringcheck_well_formed_result (String *str, bool send_error=0)
bool eq_by_collation (Item *item, bool binary_cmp, const CHARSET_INFO *cs)
virtual bool is_expensive ()
virtual bool can_be_evaluated_now () const
uint32 max_char_length () const
void fix_length_and_charset (uint32 max_char_length_arg, const CHARSET_INFO *cs)
void fix_char_length (uint32 max_char_length_arg)
void fix_char_length_ulonglong (ulonglong max_char_length_arg)
void fix_length_and_charset_datetime (uint32 max_char_length_arg)
void fix_length_and_dec_and_charset_datetime (uint32 max_char_length_arg, uint8 dec_arg)
bool is_blob_field () const
virtual bool has_subquery () const
virtual bool has_stored_program () const
virtual bool created_by_in2exists () const
 Whether this Item was created by the IN->EXISTS subquery transformation.

Public Attributes

row_version_type row_version
Item_trigger_fieldnext_trg_field
uint field_idx
Table_triggers_listtriggers
- Public Attributes inherited from Item_field
Fieldfield
Fieldresult_field
Item_equalitem_equal
bool no_const_subst
uint have_privileges
bool any_privileges
- Public Attributes inherited from Item_ident
Name_resolution_contextcontext
const char * db_name
const char * table_name
const char * field_name
bool alias_name_used
uint cached_field_index
TABLE_LISTcached_table
st_select_lex * depended_from
- Public Attributes inherited from Item
uint rsize
String str_value
Item_name_string item_name
Item_name_string orig_name
Itemnext
uint32 max_length
int marker
uint8 decimals
my_bool maybe_null
my_bool null_value
my_bool unsigned_flag
my_bool with_sum_func
my_bool fixed
DTCollation collation
Item_result cmp_context

Additional Inherited Members

- Static Public Member Functions inherited from Item
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, size_t size)
static void operator delete (void *ptr, MEM_ROOT *mem_root)
static const CHARSET_INFOdefault_charset ()
- Protected Member Functions inherited from Item_field
void set_field (Field *field)
- Protected Attributes inherited from Item_ident
const char * orig_db_name
const char * orig_table_name
const char * orig_field_name
- Private Member Functions inherited from Settable_routine_parameter
virtual void set_required_privilege (bool rw)
virtual bool set_value (THD *thd, sp_rcontext *ctx, Item **it)=0
virtual void set_out_param_info (Send_field *info)
virtual const Send_fieldget_out_param_info () const

Detailed Description

Definition at line 4038 of file item.h.

Member Function Documentation

void Item_trigger_field::setup_field ( THD *  thd,
TABLE table,
GRANT_INFO table_grant_info 
)

Find index of Field object which will be appropriate for item representing field of row being changed in trigger.

Parameters
thdcurrent thread context
tabletable of trigger (and where we looking for fields)
table_grant_infoGRANT_INFO of the subject table
Note
This function does almost the same as fix_fields() for Item_field but is invoked right after trigger definition parsing. Since at this stage we can't say exactly what Field object (corresponding to TABLE::record[0] or TABLE::record[1]) should be bound to this Item, we only find out index of the Field and then select concrete Field object in fix_fields() (by that time Table_trigger_list::old_field/ new_field should point to proper array of Fields). It also binds Item_trigger_field to Table_triggers_list object for table of trigger which uses this item.

Definition at line 8176 of file item.cc.


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