Line data Source code
1 : /* 2 : This file is part of TALER 3 : Copyright (C) 2022 Taler Systems SA 4 : 5 : TALER is free software; you can redistribute it and/or modify it under the 6 : terms of the GNU General Public License as published by the Free Software 7 : Foundation; either version 3, or (at your option) any later version. 8 : 9 : TALER is distributed in the hope that it will be useful, but WITHOUT ANY 10 : WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR 11 : A PARTICULAR PURPOSE. See the GNU General Public License for more details. 12 : 13 : You should have received a copy of the GNU General Public License along with 14 : TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/> 15 : */ 16 : /** 17 : * @file exchangedb/pg_rollback.c 18 : * @brief Implementation of the rollback function for Postgres 19 : * @author Christian Grothoff 20 : */ 21 : #include "platform.h" 22 : #include "taler_error_codes.h" 23 : #include "taler_dbevents.h" 24 : #include "taler_pq_lib.h" 25 : #include "pg_rollback.h" 26 : #include "pg_helper.h" 27 : 28 : 29 : void 30 741 : TEH_PG_rollback (void *cls) 31 : { 32 741 : struct PostgresClosure *pg = cls; 33 741 : struct GNUNET_PQ_ExecuteStatement es[] = { 34 741 : GNUNET_PQ_make_execute ("ROLLBACK"), 35 : GNUNET_PQ_EXECUTE_STATEMENT_END 36 : }; 37 : 38 741 : if (NULL == pg->transaction_name) 39 : { 40 132 : GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 41 : "Skipping rollback, no transaction active\n"); 42 132 : return; 43 : } 44 609 : GNUNET_log (GNUNET_ERROR_TYPE_INFO, 45 : "Rolling back transaction\n"); 46 609 : GNUNET_break (GNUNET_OK == 47 : GNUNET_PQ_exec_statements (pg->conn, 48 : es)); 49 609 : pg->transaction_name = NULL; 50 : }