~drizzle-trunk/drizzle/development

1122.2.2 by Monty Taylor
Added missing copyright headers. Added drizzled/global.h to a few things that
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
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
327.2.4 by Brian Aker
Refactoring table.h
20
#include <drizzled/server_includes.h>
21
#include <drizzled/natural_join_column.h>
584.1.15 by Monty Taylor
The mega-patch from hell. Renamed sql_class to session (since that's what it is) and removed it and field and table from common_includes.
22
#include <drizzled/table_list.h>
23
#include <drizzled/session.h>
327.2.4 by Brian Aker
Refactoring table.h
24
25
Natural_join_column::Natural_join_column(Field *field_param,
26
                                         TableList *tab)
27
{
28
  assert(tab->table == field_param->table);
29
  table_field= field_param;
30
  table_ref= tab;
31
  is_common= false;
32
}
33
34
35
const char *Natural_join_column::name()
36
{
37
  return table_field->field_name;
38
}
39
40
520.1.22 by Brian Aker
Second pass of thd cleanup
41
Item *Natural_join_column::create_item(Session *session)
327.2.4 by Brian Aker
Refactoring table.h
42
{
520.1.22 by Brian Aker
Second pass of thd cleanup
43
  return new Item_field(session, &session->lex->current_select->context, table_field);
327.2.4 by Brian Aker
Refactoring table.h
44
}
45
46
47
Field *Natural_join_column::field()
48
{
49
  return table_field;
50
}
51
52
53
const char *Natural_join_column::table_name()
54
{
55
  assert(table_ref);
56
  return table_ref->alias;
57
}
58
59
60
const char *Natural_join_column::db_name()
61
{
62
  /*
1000.1.3 by Brian Aker
Renamed TABLE_SHARE to TableShare
63
    Test that TableList::db is the same as TableShare::db to
327.2.4 by Brian Aker
Refactoring table.h
64
    ensure consistency. An exception are I_S schema tables, which
65
    are inconsistent in this respect.
66
  */
67
  assert(!strcmp(table_ref->db,
68
                      table_ref->table->s->db.str) ||
69
              (table_ref->schema_table &&
70
               table_ref->table->s->db.str[0] == 0));
71
  return table_ref->db;
72
}