+ // Dump ratings.
+ {
+ txn.exec("TRUNCATE ratings");
+ pqxx::tablewriter writer(txn, "ratings");
+ for (unsigned i = 0; i < rating_db_tuples.size(); ++i) {
+ char player_str[128], mu_str[128], mu_stddev_str[128];
+ snprintf(player_str, 128, "%d", rating_db_tuples[i].player);
+ snprintf(mu_str, 128, "%f", rating_db_tuples[i].mu);
+ snprintf(mu_stddev_str, 128, "%f", rating_db_tuples[i].mu_stddev);
+
+ vector<string> tuple;
+ tuple.push_back(player_str);
+ tuple.push_back(mu_str);
+ tuple.push_back(mu_stddev_str);
+ writer.push_back(tuple);
+ }
+ writer.complete();
+ }
+
+ // Create a table new_covariance, and dump covariance into it.
+ {
+ txn.exec("CREATE TABLE new_covariance ( player1 smallint NOT NULL, player2 smallint NOT NULL, cov float NOT NULL )");
+ pqxx::tablewriter writer(txn, "new_covariance");
+ for (unsigned i = 0; i < covariance_db_tuples.size(); ++i) {
+ char player1_str[128], player2_str[128], cov_str[128];
+ snprintf(player1_str, 128, "%d", covariance_db_tuples[i].player1);
+ snprintf(player2_str, 128, "%d", covariance_db_tuples[i].player2);
+ snprintf(cov_str, 128, "%f", covariance_db_tuples[i].covariance);
+
+ vector<string> tuple;
+ tuple.push_back(player1_str);
+ tuple.push_back(player2_str);
+ tuple.push_back(cov_str);
+ writer.push_back(tuple);
+ }
+ writer.complete();
+ }