#include <table.h>
Inheritance diagram for Natural_join_column:


Public Member Functions | |
| Natural_join_column (Field_translator *field_param, st_table_list *tab) | |
| Natural_join_column (Field *field_param, st_table_list *tab) | |
| const char * | name () |
| Item * | create_item (THD *thd) |
| Field * | field () |
| const char * | table_name () |
| const char * | db_name () |
| GRANT_INFO * | grant () |
Public Attributes | |
| Field_translator * | view_field |
| Field * | table_field |
| st_table_list * | table_ref |
| bool | is_common |
Definition at line 572 of file table.h.
| Natural_join_column::Natural_join_column | ( | Field_translator * | field_param, | |
| st_table_list * | tab | |||
| ) |
Definition at line 3341 of file table.cc.
References DBUG_ASSERT, FALSE, st_table_list::field_translation, is_common, NULL, table_field, table_ref, and view_field.
03343 { 03344 DBUG_ASSERT(tab->field_translation); 03345 view_field= field_param; 03346 table_field= NULL; 03347 table_ref= tab; 03348 is_common= FALSE; 03349 }
| Natural_join_column::Natural_join_column | ( | Field * | field_param, | |
| st_table_list * | tab | |||
| ) |
Definition at line 3352 of file table.cc.
References DBUG_ASSERT, FALSE, is_common, NULL, Field::table, st_table_list::table, table_field, table_ref, and view_field.
03354 { 03355 DBUG_ASSERT(tab->table == field_param->table); 03356 table_field= field_param; 03357 view_field= NULL; 03358 table_ref= tab; 03359 is_common= FALSE; 03360 }
| Item * Natural_join_column::create_item | ( | THD * | thd | ) |
Definition at line 3375 of file table.cc.
References create_view_field(), DBUG_ASSERT, Field_translator::item, Field_translator::name, NULL, table_field, table_ref, and view_field.
Referenced by Field_iterator_natural_join::create_item(), find_field_in_natural_join(), and mark_common_columns().
03376 { 03377 if (view_field) 03378 { 03379 DBUG_ASSERT(table_field == NULL); 03380 return create_view_field(thd, table_ref, &view_field->item, 03381 view_field->name); 03382 } 03383 return new Item_field(thd, &thd->lex->current_select->context, table_field); 03384 }
Here is the call graph for this function:

Here is the caller graph for this function:

| const char * Natural_join_column::db_name | ( | ) |
Definition at line 3404 of file table.cc.
References st_table_share::db, st_table_list::db, DBUG_ASSERT, st_table::s, st_table_list::schema_table, LEX_STRING::str, strcmp(), st_table_list::table, table_ref, st_table_list::view_db, and view_field.
Referenced by Field_iterator_table_ref::db_name().
03405 { 03406 if (view_field) 03407 return table_ref->view_db.str; 03408 03409 /* 03410 Test that TABLE_LIST::db is the same as st_table_share::db to 03411 ensure consistency. An exception are I_S schema tables, which 03412 are inconsistent in this respect. 03413 */ 03414 DBUG_ASSERT(!strcmp(table_ref->db, 03415 table_ref->table->s->db.str) || 03416 (table_ref->schema_table && 03417 table_ref->table->s->db.str[0] == 0)); 03418 return table_ref->db; 03419 }
Here is the call graph for this function:

Here is the caller graph for this function:

| Field * Natural_join_column::field | ( | ) |
Definition at line 3387 of file table.cc.
References DBUG_ASSERT, NULL, table_field, and view_field.
Referenced by Field_iterator_natural_join::field(), and mark_common_columns().
03388 { 03389 if (view_field) 03390 { 03391 DBUG_ASSERT(table_field == NULL); 03392 return NULL; 03393 } 03394 return table_field; 03395 }
Here is the caller graph for this function:

| GRANT_INFO * Natural_join_column::grant | ( | ) |
Definition at line 3422 of file table.cc.
References st_table::grant, st_table_list::grant, st_table_list::table, table_ref, and view_field.
Referenced by Field_iterator_table_ref::grant().
03423 { 03424 if (view_field) 03425 return &(table_ref->grant); 03426 return &(table_ref->table->grant); 03427 }
Here is the caller graph for this function:

| const char * Natural_join_column::name | ( | ) |
Definition at line 3363 of file table.cc.
References DBUG_ASSERT, Field::field_name, Field_translator::name, NULL, table_field, and view_field.
Referenced by find_field_in_natural_join(), mark_common_columns(), Field_iterator_natural_join::name(), and store_natural_using_join_columns().
03364 { 03365 if (view_field) 03366 { 03367 DBUG_ASSERT(table_field == NULL); 03368 return view_field->name; 03369 } 03370 03371 return table_field->field_name; 03372 }
Here is the caller graph for this function:

| const char * Natural_join_column::table_name | ( | ) |
Definition at line 3398 of file table.cc.
References st_table_list::alias, and table_ref.
Referenced by Field_iterator_table_ref::table_name().
Here is the caller graph for this function:

Definition at line 585 of file table.h.
Referenced by mark_common_columns(), Natural_join_column(), and store_natural_using_join_columns().
Definition at line 576 of file table.h.
Referenced by create_item(), field(), find_field_in_natural_join(), Field_iterator_table_ref::get_natural_column_ref(), Field_iterator_table_ref::get_or_create_column_ref(), insert_fields(), name(), Natural_join_column(), and Field_iterator_natural_join::next().
Definition at line 577 of file table.h.
Referenced by create_item(), db_name(), find_field_in_natural_join(), Field_iterator_table_ref::get_natural_column_ref(), Field_iterator_table_ref::get_or_create_column_ref(), grant(), insert_fields(), mark_common_columns(), Natural_join_column(), Field_iterator_natural_join::next(), and table_name().
Definition at line 575 of file table.h.
Referenced by create_item(), db_name(), field(), find_field_in_natural_join(), grant(), name(), and Natural_join_column().
1.4.7

