exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

commit cb623d44cba8b60a0d5120dbfeefe93fac2f79ff
parent a166ca7fece8bbe3c66dcf0217cc81d20d185ab0
Author: Christian Grothoff <christian@grothoff.org>
Date:   Mon, 12 Mar 2018 11:39:31 +0100

ensure transaction_name is also set for deferred_wire_out transaction, re-use postgres_start logic

Diffstat:
Msrc/exchangedb/plugin_exchangedb_postgres.c | 21++++++++-------------
1 file changed, 8 insertions(+), 13 deletions(-)

diff --git a/src/exchangedb/plugin_exchangedb_postgres.c b/src/exchangedb/plugin_exchangedb_postgres.c @@ -1560,7 +1560,6 @@ postgres_start (void *cls, PQerrorMessage (session->conn)); GNUNET_break (0); PQclear (result); - session->transaction_name = NULL; return GNUNET_SYSERR; } PQclear (result); @@ -4852,19 +4851,13 @@ postgres_start_deferred_wire_out (void *cls, PGresult *result; ExecStatusType ex; - result = PQexec (session->conn, - "START TRANSACTION ISOLATION LEVEL SERIALIZABLE"); - if (PGRES_COMMAND_OK != - (ex = PQresultStatus (result))) - { - TALER_LOG_ERROR ("Failed to start transaction (%s): %s\n", - PQresStatus (ex), - PQerrorMessage (session->conn)); - GNUNET_break (0); - PQclear (result); + postgres_preflight (cls, + session); + if (GNUNET_OK != + postgres_start (cls, + session, + "deferred wire out")) return GNUNET_SYSERR; - } - PQclear (result); result = PQexec (session->conn, "SET CONSTRAINTS wire_out_ref DEFERRED"); if (PGRES_COMMAND_OK != @@ -4875,6 +4868,8 @@ postgres_start_deferred_wire_out (void *cls, PQerrorMessage (session->conn)); GNUNET_break (0); PQclear (result); + postgres_rollback (cls, + session); return GNUNET_SYSERR; } PQclear (result);