00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <config.h>
00021 #include <drizzled/natural_join_column.h>
00022 #include <drizzled/table_list.h>
00023 #include <drizzled/session.h>
00024 #include <drizzled/sql_lex.h>
00025
00026 namespace drizzled {
00027
00028 Natural_join_column::Natural_join_column(Field *field_param,
00029 TableList *tab)
00030 {
00031 assert(tab->table == field_param->getTable());
00032 table_field= field_param;
00033 table_ref= tab;
00034 is_common= false;
00035 }
00036
00037
00038 const char *Natural_join_column::name()
00039 {
00040 return table_field->field_name;
00041 }
00042
00043
00044 Item *Natural_join_column::create_item(Session *session)
00045 {
00046 return new Item_field(session, &session->lex().current_select->context, table_field);
00047 }
00048
00049
00050 Field *Natural_join_column::field()
00051 {
00052 return table_field;
00053 }
00054
00055
00056 const char *Natural_join_column::table_name()
00057 {
00058 assert(table_ref);
00059 return table_ref->alias;
00060 }
00061
00062
00063 const char *Natural_join_column::db_name()
00064 {
00065
00066
00067
00068
00069 assert(!strcmp(table_ref->getSchemaName(), table_ref->table->getShare()->getSchemaName()));
00070
00071 return table_ref->getSchemaName();
00072 }
00073
00074 }