My Project
Public Member Functions | Public Attributes | Protected Attributes | Friends
Item_ident Class Reference
Inheritance diagram for Item_ident:
Item Item_field Item_ref Item_default_value Item_insert_value Item_trigger_field Item_aggregate_ref Item_direct_ref Item_ref_null_helper Item_direct_view_ref Item_outer_ref

List of all members.

Public Member Functions

 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)
void cleanup ()
bool remove_dependence_processor (uchar *arg)
virtual void print (String *str, enum_query_type query_type)
virtual bool change_context_processor (uchar *cntx)

Public Attributes

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

Protected Attributes

const char * orig_db_name
const char * orig_table_name
const char * orig_field_name

Friends

bool insert_fields (THD *thd, Name_resolution_context *context, const char *db_name, const char *table_name, List_iterator< Item > *it, bool any_privileges)

Constructor & Destructor Documentation

Item_ident::Item_ident ( THD *  thd,
Item_ident item 
)

Constructor used by Item_field & Item_*_ref (see Item comment)


Member Function Documentation

void Item_ident::fix_after_pullout ( st_select_lex *  parent_select,
st_select_lex *  removed_select 
) [virtual]

Fix after tables have been moved from one select_lex level to the parent level, e.g by semijoin conversion. Basically re-calculate all attributes dependent on the tables.

Parameters:
parent_selectselect_lex that tables are moved to.
removed_selectselect_lex that tables are moved away from, child of parent_select.

Reimplemented from Item.

Reimplemented in Item_outer_ref, and Item_ref.

void Item_ident::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.

Reimplemented in Item_trigger_field, Item_insert_value, Item_default_value, Item_ref_null_helper, Item_ref, Item_field, and Item_aggregate_ref.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines