Drizzled Public API Documentation

natural_join_column.cc
1 /* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2  * vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
3  *
4  * Copyright (C) 2009 Sun Microsystems, Inc.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; version 2 of the License.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
18  */
19 
20 #include <config.h>
21 #include <drizzled/natural_join_column.h>
22 #include <drizzled/table_list.h>
23 #include <drizzled/session.h>
24 #include <drizzled/sql_lex.h>
25 
26 namespace drizzled {
27 
28 Natural_join_column::Natural_join_column(Field *field_param,
29  TableList *tab)
30 {
31  assert(tab->table == field_param->getTable());
32  table_field= field_param;
33  table_ref= tab;
34  is_common= false;
35 }
36 
37 
38 const char *Natural_join_column::name()
39 {
40  return table_field->field_name;
41 }
42 
43 
44 Item *Natural_join_column::create_item(Session *session)
45 {
46  return new Item_field(session, &session->lex().current_select->context, table_field);
47 }
48 
49 
50 Field *Natural_join_column::field()
51 {
52  return table_field;
53 }
54 
55 
56 const char *Natural_join_column::table_name()
57 {
58  assert(table_ref);
59  return table_ref->alias;
60 }
61 
62 
63 const char *Natural_join_column::db_name()
64 {
65  /*
66  Test that TableList::db is the same as TableShare::db to
67  ensure consistency.
68  */
69  assert(!strcmp(table_ref->getSchemaName(), table_ref->table->getShare()->getSchemaName()));
70 
71  return table_ref->getSchemaName();
72 }
73 
74 } /* namespace drizzled */
TODO: Rename this file - func.h is stupid.
Table * table
opened table
Definition: table_list.h:145
const char * field_name
Definition: field.h:102