10 void Interpreter_Writable::write_type(Type type)
13 switch(type.get_type_id())
19 #define TYPE_MACRO(type, return_type, type_id, read, write)\
20 case Type::Type_Id::type_id:\
23 #define TYPE_MACRO_NO_REFERENCE
26 case Type::Type_Id::reference:
27 out <<
"references " << schema.
get_table_name(type.get_table_id());
43 out <<
"create_table " << name <<
'\n';
58 const std::string &name
61 out <<
"rename_table " << schema.get_table_name(table_id);
62 out <<
' ' << name <<
'\n';
70 const std::string &name,
74 out <<
"add_field " << schema.get_table_name(table_id);
75 out <<
' ' << name <<
' ';
88 out <<
"drop_field " << schema.get_table_name(table_id) <<
' ';
89 out << schema.get_field_name(table_id, field_id) <<
'\n';
98 const std::string &name
101 out <<
"rename_field " << schema.get_table_name(table_id) <<
' ';
102 out << schema.get_field_name(table_id, field_id) <<
' ' << name <<
'\n';
109 out <<
"custom " << name <<
'\n';
133 out <<
"valid_data\n";
144 out <<
"insert_into " << schema.get_table_name(table_id) <<
' ';
145 out << record_id <<
'\n';
156 out <<
"delete_from " << schema.get_table_name(table_id) <<
' ';
157 out << record_id <<
'\n';
169 out <<
"insert_vector " << schema.get_table_name(table_id) <<
' ';
170 out << record_id <<
' ' << size <<
'\n';
182 out <<
"delete_vector " << schema.get_table_name(table_id) <<
' ';
183 out << record_id <<
' ' << size <<
'\n';
196 out << command << schema.get_table_name(table_id) <<
' ';
197 out << record_id <<
' ';
198 out << schema.get_field_name(table_id, field_id) <<
' ';
201 #define TYPE_MACRO(type, return_type, type_id, R, W)\
202 void Interpreter_Writable::update_##type_id\
205 Record_Id record_id,\
210 write_update("update ", table_id, record_id, field_id);\
211 joedb::write_##type_id(out, value);\
214 void Interpreter_Writable::update_vector_##type_id\
217 Record_Id record_id,\
223 write_update("update_vector ", table_id, record_id, field_id);\
225 for (size_t i = 0; i < size; i++)\
228 joedb::write_##type_id(out, value[i]);\
247 out <<
"write_blob ";
void create_table(const std::string &name) override
void comment(const std::string &comment) override
void insert_into(Table_Id table_id, Record_Id record_id) override
void rename_table(Table_Id table_id, const std::string &name) override
void custom(const std::string &name) override
void drop_field(Table_Id table_id, Field_Id field_id) override
void timestamp(int64_t timestamp) override
void on_blob(Blob blob) override
void add_field(Table_Id table_id, const std::string &name, Type type) override
Blob write_blob(const std::string &data) override
void delete_from(Table_Id table_id, Record_Id record_id) override
void delete_vector(Table_Id table_id, Record_Id record_id, size_t size) override
void insert_vector(Table_Id table_id, Record_Id record_id, size_t size) override
void soft_checkpoint() override
void valid_data() override
void drop_table(Table_Id table_id) override
void rename_field(Table_Id table_id, Field_Id field_id, const std::string &name) override
void write_update(const char *command, Table_Id table_id, Record_Id record_id, Field_Id field_id)
const std::string & get_table_name(Table_Id table_id) const
std::string get_time_string(int64_t timestamp)
void write_string(std::ostream &out, const std::string &s, bool json)
void write_blob(std::ostream &out, Blob blob)