51
51
#include <boost/functional/hash.hpp>
53
53
namespace drizzled {
57
class TableIdentifier : public SchemaIdentifier
56
namespace identifier {
58
class Table : public identifier::Schema
60
61
typedef message::Table::TableType Type;
61
typedef std::vector <TableIdentifier> vector;
62
typedef const TableIdentifier& const_reference;
63
typedef TableIdentifier& reference;
62
typedef std::vector <Table> vector;
63
typedef const Table& const_reference;
64
typedef Table& reference;
132
TableIdentifier(const Table &table);
134
Table(const drizzled::Table &table);
134
TableIdentifier( const SchemaIdentifier &schema,
135
const std::string &table_name_arg,
136
Type tmp_arg= message::Table::STANDARD) :
137
SchemaIdentifier(schema),
139
table_name(table_name_arg)
144
TableIdentifier( const std::string &db_arg,
145
const std::string &table_name_arg,
146
Type tmp_arg= message::Table::STANDARD) :
147
SchemaIdentifier(db_arg),
149
table_name(table_name_arg)
154
TableIdentifier( const std::string &schema_name_arg,
136
Table(const identifier::Schema &schema,
137
const std::string &table_name_arg,
138
Type tmp_arg= message::Table::STANDARD) :
141
table_name(table_name_arg)
146
Table( const std::string &db_arg,
147
const std::string &table_name_arg,
148
Type tmp_arg= message::Table::STANDARD) :
151
table_name(table_name_arg)
156
Table( const std::string &schema_name_arg,
155
157
const std::string &table_name_arg,
156
158
const std::string &path_arg ) :
157
SchemaIdentifier(schema_name_arg),
159
Schema(schema_name_arg),
158
160
type(message::Table::TEMPORARY),
160
162
table_name(table_name_arg)
214
216
void copyToTableMessage(message::Table &message) const;
216
friend bool operator<(TableIdentifier::const_reference left, TableIdentifier::const_reference right)
218
friend bool operator<(Table::const_reference left, Table::const_reference right)
218
220
if (left.getKey() < right.getKey())
226
friend std::ostream& operator<<(std::ostream& output, TableIdentifier::const_reference identifier)
228
friend std::ostream& operator<<(std::ostream& output, Table::const_reference identifier)
228
230
const char *type_str;
230
output << "TableIdentifier:(";
231
233
output << identifier.getSchemaName();
233
235
output << identifier.getTableName();
258
260
return output; // for multiple << operators.
261
friend bool operator==(TableIdentifier::const_reference left, TableIdentifier::const_reference right)
263
friend bool operator==(Table::const_reference left, Table::const_reference right)
263
265
if (left.getHashValue() == right.getHashValue())
291
std::size_t hash_value(TableIdentifier const& b);
292
std::size_t hash_value(TableIdentifier::Key const& b);
293
std::size_t hash_value(Table const& b);
294
std::size_t hash_value(Table::Key const& b);
296
} /* namespace identifier */
294
297
} /* namespace drizzled */
296
299
#endif /* DRIZZLED_IDENTIFIER_TABLE_H */