23 #include <drizzled/message/table.h>
24 #include <drizzled/charset.h>
25 #include <drizzled/catalog/local.h>
31 shared_ptr make_shared(
const identifier::Table& identifier,
const std::string &engine_arg)
33 shared_ptr shared(
new message::Table);
35 init(*shared, identifier.getTableName(), identifier.getSchemaName(), engine_arg);
40 shared_ptr make_shared(
const std::string &name_arg,
const std::string &schema_arg,
const std::string &engine_arg)
42 shared_ptr shared(
new message::Table);
44 init(*shared, name_arg, schema_arg, engine_arg);
49 void init(
drizzled::message::Table &arg,
const std::string &name_arg,
const std::string &schema_arg,
const std::string &engine_arg)
51 arg.set_name(name_arg);
52 arg.set_schema(schema_arg);
53 arg.set_creation_timestamp(time(NULL));
54 arg.set_update_timestamp(time(NULL));
55 arg.mutable_engine()->set_name(engine_arg);
60 uuid_generate_random(uu);
61 uuid_unparse(uu, uuid_string);
62 arg.set_uuid(uuid_string, 36);
66 if (not arg.has_type())
68 arg.set_type(drizzled::message::Table::STANDARD);
71 arg.mutable_options()->set_collation_id(default_charset_info->number);
72 arg.mutable_options()->set_collation(default_charset_info->name);
74 arg.set_catalog(drizzled::catalog::local()->name());
79 arg.set_version(arg.version() + 1);
80 arg.set_update_timestamp(time(NULL));