27 #include <boost/uuid/uuid.hpp>
34 #include <numeric/random/random.hh>
35 #include <basic/database/sql_utils.hh>
36 #include <utility/sql_database/DatabaseSessionManager.hh>
43 #include <cppdb/frontend.h>
46 #include <basic/Tracer.hh>
47 #include <basic/options/util.hh>
48 #include <basic/options/keys/helixAssembly.OptionKeys.gen.hh>
49 #include <basic/database/schema_generator/PrimaryKey.hh>
50 #include <basic/database/schema_generator/ForeignKey.hh>
51 #include <basic/database/schema_generator/Column.hh>
52 #include <basic/database/schema_generator/Schema.hh>
56 namespace helixAssembly {
61 using namespace basic::database::schema_generator;
63 PrimaryKey id(Column(
"id",
new DbUUID(),
false));
64 Column random_number(Column(
"description",
new DbInteger()));
66 Schema concurrency_test(
"concurrency_test",
id);
67 concurrency_test.add_column(random_number);
69 concurrency_test.write(db_session);
78 boost::uuids::uuid struct_id,
79 utility::sql_database::sessionOP db_session
83 std::string test_insert =
"INSERT INTO concurrency_test (id, random_num) VALUES (?);";
84 for(
int i=1; i<=100000; i++){
85 cppdb::statement test_stmt(basic::database::safely_prepare_statement(test_insert,db_session));
86 test_stmt.bind(1,struct_id);
87 test_stmt.bind(2,numeric::random::random_range(0,INT_MAX));
88 basic::database::safely_write_to_database(test_stmt);