19 #include <utility/sql_database/DatabaseSessionManager.hh>
20 #include <utility/vector1.hh>
21 #include <basic/database/sql_utils.hh>
22 #include <basic/database/schema_generator/PrimaryKey.hh>
23 #include <basic/database/schema_generator/ForeignKey.hh>
24 #include <basic/database/schema_generator/Column.hh>
25 #include <basic/database/schema_generator/Schema.hh>
32 #include <cppdb/frontend.h>
33 #include <boost/uuid/uuid_io.hpp>
39 using cppdb::statement;
45 using utility::sql_database::sessionOP;
70 using namespace basic::database::schema_generator;
72 Column struct_id(
"struct_id",
new DbUUID());
73 Column resNum(
"resNum",
new DbInteger());
74 Column
phi(
"phi",
new DbReal());
75 Column
psi(
"psi",
new DbReal());
76 Column
omega(
"omega",
new DbReal());
79 Columns primary_key_columns;
80 primary_key_columns.push_back(struct_id);
81 primary_key_columns.push_back(resNum);
82 PrimaryKey primary_key(primary_key_columns);
84 Columns foreign_key_columns;
85 foreign_key_columns.push_back(struct_id);
86 foreign_key_columns.push_back(resNum);
88 reference_columns.push_back(
"struct_id");
89 reference_columns.push_back(
"resNum");
90 ForeignKey foreign_key(foreign_key_columns,
"residues", reference_columns,
true);
92 Schema table(
"protein_backbone_torsion_angles", primary_key);
93 table.add_foreign_key(foreign_key);
94 table.add_column(phi);
95 table.add_column(psi);
96 table.add_column(omega);
98 table.write(db_session);
104 dependencies.push_back(
"ResidueFeatures");
112 boost::uuids::uuid
const struct_id,
115 std::string statement_string =
"INSERT INTO protein_backbone_torsion_angles (struct_id, resNum, phi, psi, omega) VALUES (?,?,?,?,?)";
116 statement stmt(basic::database::safely_prepare_statement(statement_string,db_session));
118 if(!relevant_residues[i])
continue;
128 stmt.bind(1,struct_id);
133 basic::database::safely_write_to_database(stmt);