diff options
author | Christian Grothoff <christian@grothoff.org> | 2018-08-10 19:12:57 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2018-08-10 19:12:57 +0200 |
commit | e0935af764099a203a44b03a98ef0ec8ee17aeeb (patch) | |
tree | a7744815361d10dbf9953c2946194de756a4fbe3 /src/exchangedb | |
parent | 9887077ea254163a873add1059b25144a7ddc32b (diff) |
add a few more FOR UPDATE where appropriate
Diffstat (limited to 'src/exchangedb')
-rw-r--r-- | src/exchangedb/plugin_exchangedb_postgres.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/exchangedb/plugin_exchangedb_postgres.c b/src/exchangedb/plugin_exchangedb_postgres.c index b9c577bcc..ac8d395c6 100644 --- a/src/exchangedb/plugin_exchangedb_postgres.c +++ b/src/exchangedb/plugin_exchangedb_postgres.c @@ -573,7 +573,8 @@ postgres_prepare (PGconn *db_conn) ",expiration_date" " FROM reserves" " WHERE reserve_pub=$1" - " LIMIT 1;", + " LIMIT 1" + " FOR UPDATE;", 1), /* Used in #postgres_reserves_in_insert() when the reserve is new */ GNUNET_PQ_make_prepare ("reserve_create", @@ -782,7 +783,8 @@ postgres_prepare (PGconn *db_conn) " FROM known_coins" " JOIN denominations denom" " USING (denom_pub_hash)" - " WHERE coin_pub=$1;", + " WHERE coin_pub=$1" + " FOR UPDATE;", 1), /* Used in #postgres_insert_known_coin() to store the denomination public key and signature for @@ -895,7 +897,8 @@ postgres_prepare (PGconn *db_conn) " JOIN denominations denom " " USING (denom_pub_hash)" " WHERE rc=$1" - " ORDER BY newcoin_index ASC;", + " ORDER BY newcoin_index ASC" + " FOR UPDATE;", 1), /* Used in #postgres_insert_refresh_reveal() to store the transfer @@ -1008,7 +1011,8 @@ postgres_prepare (PGconn *db_conn) " (coin_pub=$1)" " AND (h_contract_terms=$2)" " AND (merchant_pub=$3)" - " );", + " )" + " FOR UPDATE;", 3), /* Fetch deposits with rowid '\geq' the given parameter */ GNUNET_PQ_make_prepare ("audit_get_deposits_incr", @@ -1150,7 +1154,8 @@ postgres_prepare (PGconn *db_conn) " USING (coin_pub)" " JOIN denominations denom" " USING (denom_pub_hash)" - " WHERE coin_pub=$1;", + " WHERE coin_pub=$1" + " FOR UPDATE;", 1), /* Used in #postgres_get_link_data(). */ @@ -1564,7 +1569,8 @@ postgres_prepare (PGconn *db_conn) " reserve_pub" " FROM reserves_out" " WHERE h_blind_ev=$1" - " LIMIT 1;", + " LIMIT 1" + " FOR UPDATE;", 1), /* used in #postgres_commit */ GNUNET_PQ_make_prepare ("do_commit", |