From 48fd50f922a7385dfd46c81dc6ecef65ef94812b Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 5 Feb 2018 21:49:35 +0100 Subject: exchangedb/postgres: handle duplicate wire transfers correctly --- src/exchangedb/plugin_exchangedb_postgres.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/exchangedb/plugin_exchangedb_postgres.c b/src/exchangedb/plugin_exchangedb_postgres.c index a9d5db767..a4f32cdc4 100644 --- a/src/exchangedb/plugin_exchangedb_postgres.c +++ b/src/exchangedb/plugin_exchangedb_postgres.c @@ -583,7 +583,8 @@ postgres_prepare (PGconn *db_conn) ",sender_account_details" ",execution_date" ") VALUES " - "($1, $2, $3, $4, $5, $6, $7);", + "($1, $2, $3, $4, $5, $6, $7) " + "ON CONFLICT DO NOTHING;", 7), /* Used in postgres_select_reserves_in_above_serial_id() to obtain inbound transactions for reserves with serial id '\geq' the given parameter */ @@ -1870,9 +1871,8 @@ postgres_reserves_in_insert (void *cls, return GNUNET_DB_STATUS_SOFT_ERROR; } } - /* Create new incoming transaction, SQL "primary key" logic - is used to guard against duplicates. If a duplicate is - detected, we just "succeed" with no changes. */ + /* Create new incoming transaction, "ON CONFLICT DO NOTHING" + is used to guard against duplicates. */ { struct GNUNET_PQ_QueryParam params[] = { GNUNET_PQ_query_param_auto_from_type (&reserve.pub), -- cgit v1.2.3