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());
36 out <<
"create_table " << name <<
'\n';
51 const std::string &name
54 out <<
"rename_table " << schema.get_table_name(table_id);
55 out <<
' ' << name <<
'\n';
63 const std::string &name,
67 out <<
"add_field " << schema.get_table_name(table_id);
68 out <<
' ' << name <<
' ';
81 out <<
"drop_field " << schema.get_table_name(table_id) <<
' ';
82 out << schema.get_field_name(table_id, field_id) <<
'\n';
91 const std::string &name
94 out <<
"rename_field " << schema.get_table_name(table_id) <<
' ';
95 out << schema.get_field_name(table_id, field_id) <<
' ' << name <<
'\n';
102 out <<
"custom " << name <<
'\n';
126 out <<
"valid_data\n";
137 out <<
"insert_into " << schema.get_table_name(table_id) <<
' ';
138 out << record_id <<
'\n';
150 out <<
"insert_vector " << schema.get_table_name(table_id) <<
' ';
151 out << record_id <<
' ' << size <<
'\n';
162 out <<
"delete_from " << schema.get_table_name(table_id) <<
' ';
163 out << record_id <<
'\n';
176 out << command << schema.get_table_name(table_id) <<
' ';
177 out << record_id <<
' ';
178 out << schema.get_field_name(table_id, field_id) <<
' ';
181 #define TYPE_MACRO(type, return_type, type_id, R, W)\
182 void Interpreter_Writable::update_##type_id\
185 Record_Id record_id,\
190 write_update("update ", table_id, record_id, field_id);\
191 write_##type_id(out, value);\
194 void Interpreter_Writable::update_vector_##type_id\
197 Record_Id record_id,\
203 write_update("update_vector ", table_id, record_id, field_id);\
205 for (size_t i = 0; i < size; i++)\
208 write_##type_id(out, value[i]);\
227 out <<
"write_blob ";
void timestamp(int64_t timestamp) final
void drop_field(Table_Id table_id, Field_Id field_id) final
void create_table(const std::string &name) final
void add_field(Table_Id table_id, const std::string &name, Type type) final
void delete_from(Table_Id table_id, Record_Id record_id) final
void rename_table(Table_Id table_id, const std::string &name) final
void drop_table(Table_Id table_id) final
void rename_field(Table_Id table_id, Field_Id field_id, const std::string &name) final
void insert_into(Table_Id table_id, Record_Id record_id) final
void custom(const std::string &name) final
Blob write_blob_data(const std::string &data) final
void on_blob(Blob blob) final
void insert_vector(Table_Id table_id, Record_Id record_id, size_t size) final
void comment(const std::string &comment) final
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)