#include <sql_list.h>
Inheritance diagram for base_list:


Public Member Functions | |
| void | empty () |
| base_list () | |
| base_list (const base_list &tmp) | |
| base_list (bool error) | |
| bool | push_back (void *info) |
| bool | push_back (void *info, MEM_ROOT *mem_root) |
| bool | push_front (void *info) |
| void | remove (list_node **prev) |
| void | concat (base_list *list) |
| void * | pop (void) |
| void | disjoin (base_list *list) |
| void | prepand (base_list *list) |
| list_node * | last_node () |
| list_node * | first_node () |
| void * | head () |
| void ** | head_ref () |
| bool | is_empty () |
| list_node * | last_ref () |
Public Attributes | |
| uint | elements |
Protected Member Functions | |
| void | after (void *info, list_node *node) |
Protected Attributes | |
| list_node * | first |
| list_node ** | last |
Friends | |
| class | base_list_iterator |
| class | error_list |
| class | error_list_iterator |
Definition at line 85 of file sql_list.h.
| base_list::base_list | ( | ) | [inline] |
Definition at line 94 of file sql_list.h.
References empty().
00094 { empty(); }
Here is the call graph for this function:

| base_list::base_list | ( | const base_list & | tmp | ) | [inline] |
| base_list::base_list | ( | bool | error | ) | [inline] |
| void base_list::after | ( | void * | info, | |
| list_node * | node | |||
| ) | [inline, protected] |
Definition at line 246 of file sql_list.h.
References elements, last, and list_node::next.
Referenced by base_list_iterator::after().
00247 { 00248 list_node *new_node=new list_node(info,node->next); 00249 node->next=new_node; 00250 elements++; 00251 if (last == &(node->next)) 00252 last= &new_node->next; 00253 }
Here is the caller graph for this function:

| void base_list::concat | ( | base_list * | list | ) | [inline] |
Definition at line 145 of file sql_list.h.
References elements, last, and list().
Referenced by List< partition_element >::concat().
00146 { 00147 if (!list->is_empty()) 00148 { 00149 *last= list->first; 00150 last= list->last; 00151 elements+= list->elements; 00152 } 00153 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void base_list::disjoin | ( | base_list * | list | ) | [inline] |
Definition at line 163 of file sql_list.h.
References elements, first, last, list(), and list_node::next.
Referenced by List< partition_element >::disjoin().
00164 { 00165 list_node **prev= &first; 00166 list_node *node= first; 00167 list_node *list_first= list->first; 00168 elements=0; 00169 while (node && node != list_first) 00170 { 00171 prev= &node->next; 00172 node= node->next; 00173 elements++; 00174 } 00175 *prev= *last; 00176 last= prev; 00177 }
Here is the call graph for this function:

Here is the caller graph for this function:

| void base_list::empty | ( | ) | [inline] |
Definition at line 93 of file sql_list.h.
References elements, end_of_list, first, and last.
Referenced by base_list(), analyse::change_columns(), change_refs_to_tmp_fields(), change_to_use_tmp_fields(), Table_triggers_list::check_n_load(), List< partition_element >::delete_elements(), sp_pcontext::destroy(), Event_timed::execute(), get_file_options_ulllist(), imerge_list_or_list(), create_field::init(), mysql_alter_table(), mysql_prepare_table(), sp_head::optimize(), partition_info::partition_info(), JOIN::rollup_init(), select_describe(), setup_copy_fields(), sp_grant_privileges(), sp_head::sp_head(), and sp_pcontext::sp_pcontext().
00093 { elements=0; first= &end_of_list; last=&first;}
Here is the caller graph for this function:

| list_node* base_list::first_node | ( | ) | [inline] |
| void* base_list::head | ( | ) | [inline] |
Reimplemented in List< T >, List< st_ndbcluster_share >, List< Item >, List< unsigned long >, List< st_table_list >, List< Item_sum >, List< QUICK_SELECT_I >, List< sp_instr_opt_meta >, List< sp_head::bp_t >, List< LEX >, List< Natural_join_column >, List< String >, List< sp_label >, List< LEX_STRING >, List< SEL_IMERGE >, List< QUICK_RANGE >, List< Item_equal >, List< Item_field >, List< key_part_spec >, List< sp_variable >, List< p_elem_val >, List< char >, List< QUICK_RANGE_SELECT >, List< Cached_item >, List< sp_cond_type >, List< sp_pcontext >, and List< partition_element >.
Definition at line 189 of file sql_list.h.
References first, and list_node::info.
Referenced by List< partition_element >::head().
Here is the caller graph for this function:

| void** base_list::head_ref | ( | ) | [inline] |
Reimplemented in List< T >, List< st_ndbcluster_share >, List< Item >, List< unsigned long >, List< st_table_list >, List< Item_sum >, List< QUICK_SELECT_I >, List< sp_instr_opt_meta >, List< sp_head::bp_t >, List< LEX >, List< Natural_join_column >, List< String >, List< sp_label >, List< LEX_STRING >, List< SEL_IMERGE >, List< QUICK_RANGE >, List< Item_equal >, List< Item_field >, List< key_part_spec >, List< sp_variable >, List< p_elem_val >, List< char >, List< QUICK_RANGE_SELECT >, List< Cached_item >, List< sp_cond_type >, List< sp_pcontext >, and List< partition_element >.
Definition at line 190 of file sql_list.h.
References end_of_list, first, and list_node::info.
Referenced by List< partition_element >::head_ref().
00190 { return first != &end_of_list ? &first->info : 0; }
Here is the caller graph for this function:

| bool base_list::is_empty | ( | ) | [inline] |
Definition at line 191 of file sql_list.h.
References end_of_list, and first.
Referenced by sp_head::destroy(), Table_triggers_list::drop_trigger(), imerge_list_or_tree(), base_list_iterator::replace(), and SQL_SELECT::test_quick_select().
00191 { return first == &end_of_list ; }
Here is the caller graph for this function:

| list_node* base_list::last_node | ( | ) | [inline] |
| list_node* base_list::last_ref | ( | ) | [inline] |
Definition at line 192 of file sql_list.h.
References end_of_list.
Referenced by base_list_iterator::is_last().
00192 { return &end_of_list; }
Here is the caller graph for this function:

| void* base_list::pop | ( | void | ) | [inline] |
Reimplemented in List< T >, List< st_ndbcluster_share >, List< Item >, List< unsigned long >, List< st_table_list >, List< Item_sum >, List< QUICK_SELECT_I >, List< sp_instr_opt_meta >, List< sp_head::bp_t >, List< LEX >, List< Natural_join_column >, List< String >, List< sp_label >, List< LEX_STRING >, List< SEL_IMERGE >, List< QUICK_RANGE >, List< Item_equal >, List< Item_field >, List< key_part_spec >, List< sp_variable >, List< p_elem_val >, List< char >, List< QUICK_RANGE_SELECT >, List< Cached_item >, List< sp_cond_type >, List< sp_pcontext >, and List< partition_element >.
Definition at line 154 of file sql_list.h.
References elements, end_of_list, first, list_node::info, last, and list_node::next.
Referenced by List< partition_element >::pop().
00155 { 00156 if (first == &end_of_list) return 0; 00157 list_node *tmp=first; 00158 first=first->next; 00159 if (!--elements) 00160 last= &first; 00161 return tmp->info; 00162 }
Here is the caller graph for this function:

| void base_list::prepand | ( | base_list * | list | ) | [inline] |
Definition at line 178 of file sql_list.h.
References elements, first, and list().
Referenced by List< partition_element >::prepand().
00179 { 00180 if (!list->is_empty()) 00181 { 00182 *list->last= first; 00183 first= list->first; 00184 elements+= list->elements; 00185 } 00186 }
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 112 of file sql_list.h.
References elements, end_of_list, last, and list_node::next.
00113 { 00114 if (((*last)=new (mem_root) list_node(info, &end_of_list))) 00115 { 00116 last= &(*last)->next; 00117 elements++; 00118 return 0; 00119 } 00120 return 1; 00121 }
| bool base_list::push_back | ( | void * | info | ) | [inline] |
Definition at line 102 of file sql_list.h.
References elements, end_of_list, last, and list_node::next.
Referenced by List< partition_element >::push_back().
00103 { 00104 if (((*last)=new list_node(info, &end_of_list))) 00105 { 00106 last= &(*last)->next; 00107 elements++; 00108 return 0; 00109 } 00110 return 1; 00111 }
Here is the caller graph for this function:

| bool base_list::push_front | ( | void * | info | ) | [inline] |
Definition at line 122 of file sql_list.h.
References elements, first, last, and list_node::next.
Referenced by List< partition_element >::push_front().
00123 { 00124 list_node *node=new list_node(info,first); 00125 if (node) 00126 { 00127 if (last == &first) 00128 last= &node->next; 00129 first=node; 00130 elements++; 00131 return 0; 00132 } 00133 return 1; 00134 }
Here is the caller graph for this function:

| void base_list::remove | ( | list_node ** | prev | ) | [inline] |
Definition at line 135 of file sql_list.h.
References elements, first, last, and list_node::next.
Referenced by base_list_iterator::remove().
00136 { 00137 list_node *node=(*prev)->next; 00138 if (!--elements) 00139 last= &first; 00140 else if (last == &(*prev)->next) 00141 last= prev; 00142 delete *prev; 00143 *prev=node; 00144 }
Here is the caller graph for this function:

friend class base_list_iterator [friend] |
Definition at line 193 of file sql_list.h.
friend class error_list [friend] |
Definition at line 194 of file sql_list.h.
friend class error_list_iterator [friend] |
Definition at line 195 of file sql_list.h.
Definition at line 91 of file sql_list.h.
Referenced by add_group_and_distinct_keys(), after(), JOIN::alloc_func_list(), base_list(), change_refs_to_tmp_fields(), Table_triggers_list::change_table_name_in_triggers(), change_to_use_tmp_fields(), check_insert_fields(), collect_partition_expr(), compare_tables(), concat(), create_table_from_items(), create_typelib(), create_virtual_tmp_table(), disjoin(), empty(), JOIN::exec(), sp_cursor::fetch(), sp_head::fill_field_definition(), find_order_in_list(), Item_cond::fix_fields(), foreign_key_prefix(), get_all_tables(), get_best_group_min_max(), QUICK_ROR_INTERSECT_SELECT::get_next(), Field_iterator_table_ref::get_or_create_column_ref(), get_schema_partitions_record(), ha_known_exts(), QUICK_ROR_UNION_SELECT::init(), create_field::init(), JOIN::init_items_ref_array(), Item_row::Item_row(), make_cond_for_info_schema(), make_cond_for_table(), make_group_fields(), Item_equal::members(), mysql_alter_table(), mysql_create_table_internal(), mysql_ha_read(), mysql_insert(), mysql_load(), mysql_prepare_insert_check_table(), mysql_prepare_table(), mysql_table_grant(), pack_fields(), pack_header(), pack_screens(), pop(), prepand(), JOIN::prepare(), Select_fetch_into_spvars::prepare(), Protocol::prepare_for_send(), print_join(), proc_analyse_init(), push_back(), push_front(), remove(), base_list_iterator::replace(), JOIN::rollup_init(), JOIN::rollup_make_fields(), Select_fetch_into_spvars::send_data(), send_variant_2_list(), Field_iterator_table_ref::set_field_iterator(), set_row(), setup_copy_fields(), setup_fields(), setup_group(), setup_natural_join_row_types(), setup_wild(), Item::split_sum_func2(), store_natural_using_join_columns(), base_list_iterator::sublist(), typelib(), and write_record().
list_node* base_list::first [protected] |
Definition at line 88 of file sql_list.h.
Referenced by base_list(), List< partition_element >::delete_elements(), disjoin(), empty(), first_node(), head(), head_ref(), base_list_iterator::init(), is_empty(), pop(), prepand(), push_front(), remove(), base_list_iterator::replace(), base_list_iterator::rewind(), and base_list_iterator::sublist().
list_node ** base_list::last [protected] |
Definition at line 88 of file sql_list.h.
Referenced by after(), base_list(), concat(), disjoin(), empty(), last_node(), pop(), push_back(), push_front(), remove(), base_list_iterator::replace(), and base_list_iterator::sublist().
1.4.7

