~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/table_ident.h

  • Committer: Mark Atwood
  • Date: 2011-08-01 05:22:14 UTC
  • mfrom: (1919.3.53 drizzle_pbms)
  • Revision ID: me@mark.atwood.name-20110801052214-3wdsx3xgld6b5v4f
mergeĀ lp:~barry-leslie/drizzle/drizzle_pbms

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
 
27
27
namespace drizzled {
28
28
 
 
29
extern char empty_c_string[1];
 
30
extern char internal_table_name[2];
 
31
 
29
32
/* Structure for db & table in sql_yacc */
30
 
class Table_ident : public memory::SqlAlloc
 
33
class Table_ident :public memory::SqlAlloc
31
34
{
32
35
public:
33
36
  lex_string_t db;
34
37
  lex_string_t table;
35
38
  Select_Lex_Unit *sel;
36
 
 
37
39
  inline Table_ident(lex_string_t db_arg, lex_string_t table_arg)
38
 
    : db(db_arg), table(table_arg), sel(NULL)
 
40
    :table(table_arg), sel((Select_Lex_Unit *)0)
39
41
  {
 
42
    db= db_arg;
40
43
  }
41
 
 
42
44
  explicit Table_ident(lex_string_t table_arg)
43
 
    : table(table_arg), sel(NULL)
 
45
    :table(table_arg), sel((Select_Lex_Unit *)0)
44
46
  {
45
 
    db.str= 0;
 
47
    db.str=0;
46
48
  }
47
 
 
48
49
  /*
49
50
    This constructor is used only for the case when we create a derived
50
51
    table. A derived table has no name and doesn't belong to any database.
54
55
  explicit Table_ident(Select_Lex_Unit *s) : sel(s)
55
56
  {
56
57
    /* We must have a table name here as this is used with add_table_to_list */
57
 
    db.str= const_cast<char*>("");                    /* a subject to casedn_str */
 
58
    db.str= empty_c_string;                    /* a subject to casedn_str */
58
59
    db.length= 0;
59
 
    table.str= const_cast<char*>("*");
60
 
    table.length= 1;
 
60
    table.str= internal_table_name;
 
61
    table.length=1;
61
62
  }
62
63
  bool is_derived_table() const { return test(sel); }
 
64
  inline void change_db(char *db_name)
 
65
  {
 
66
    db.str= db_name; db.length= (uint32_t) strlen(db_name);
 
67
  }
63
68
};
64
69
 
65
70
} /* namespace drizzled */