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

Public Member Functions

 Item_insert_value (Name_resolution_context *context_arg, Item *a)
bool eq (const Item *item, bool binary_cmp) const
bool fix_fields (THD *, Item **)
virtual void print (String *str, enum_query_type query_type)
type_conversion_status save_in_field (Field *field_arg, bool no_conversions)
table_map used_tables () const
bool walk (Item_processor processor, bool walk_subquery, uchar *args)
- 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
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)
void make_field (Send_field *tmp_field)
void save_org_in_field (Field *field)
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)
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 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

Itemarg
- 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

- Public Types inherited from Item
enum  Type {
  FIELD_ITEM = 0, FUNC_ITEM, SUM_FUNC_ITEM, STRING_ITEM,
  INT_ITEM, REAL_ITEM, NULL_ITEM, VARBIN_ITEM,
  COPY_STR_ITEM, FIELD_AVG_ITEM, DEFAULT_VALUE_ITEM, PROC_ITEM,
  COND_ITEM, REF_ITEM, FIELD_STD_ITEM, FIELD_VARIANCE_ITEM,
  INSERT_VALUE_ITEM, SUBSELECT_ITEM, ROW_ITEM, CACHE_ITEM,
  TYPE_HOLDER, PARAM_ITEM, TRIGGER_FIELD_ITEM, DECIMAL_ITEM,
  XPATH_NODESET, XPATH_NODESET_CMP, VIEW_FIXER_ITEM
}
enum  cond_result { COND_UNDEF, COND_OK, COND_TRUE, COND_FALSE }
enum  traverse_order { POSTFIX, PREFIX }
- 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

Detailed Description

Definition at line 3996 of file item.h.

Member Function Documentation

bool Item_insert_value::eq ( const Item item,
bool  binary_cmp 
) const
virtual

This function is called when:

  • Comparing items in the WHERE clause (when doing where optimization)
  • When trying to find an ORDER BY/GROUP BY item in the SELECT part
  • When matching fields in multiple equality objects (Item_equal)

Reimplemented from Item_field.

Definition at line 8092 of file item.cc.

bool Item_insert_value::fix_fields ( THD *  thd,
Item **  reference 
)
virtual

Resolve the name of a column reference.

The method resolves the column reference represented by 'this' as a column present in one of: FROM clause, SELECT clause, GROUP BY clause of a query Q, or in outer queries that contain Q.

The name resolution algorithm used is (where [T_j] is an optional table name that qualifies the column name):

resolve_column_reference([T_j].col_ref_i)
{
search for a column or derived column named col_ref_i
[in table T_j] in the FROM clause of Q;
if such a column is NOT found AND // Lookup in outer queries.
there are outer queries
{
for each outer query Q_k beginning from the inner-most one
{
search for a column or derived column named col_ref_i
[in table T_j] in the FROM clause of Q_k;
if such a column is not found
Search for a column or derived column named col_ref_i
[in table T_j] in the SELECT and GROUP clauses of Q_k.
}
}
}

Notice that compared to Item_ref::fix_fields, here we first search the FROM clause, and then we search the SELECT and GROUP BY clauses.

Parameters
[in]thdcurrent thread
[in,out]referenceview column if this item was resolved to a view column
Return values
TRUEif error
FALSEon success

Reimplemented from Item_field.

Definition at line 8099 of file item.cc.

Here is the call graph for this function:

void Item_insert_value::print ( String str,
enum_query_type  query_type 
)
virtual

This method is used for to:

  • to generate a view definition query (SELECT-statement);
  • to generate a SQL-query for EXPLAIN EXTENDED;
  • to generate a SQL-query to be shown in INFORMATION_SCHEMA;
  • debug.

For more information about view definition query, INFORMATION_SCHEMA query and why they should be generated from the Item-tree,

See Also
mysql_register_view().

Reimplemented from Item_field.

Definition at line 8148 of file item.cc.

Here is the call graph for this function:

type_conversion_status Item_insert_value::save_in_field ( Field field,
bool  no_conversions 
)
inlinevirtual

Save a temporal value in packed longlong format into a Field. Used in optimizer.

Parameters
OUTfield The field to set the value to.
Return values
0On success.
>0In error.

Reimplemented from Item_field.

Definition at line 4007 of file item.h.


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