diff options
Diffstat (limited to 'src/exchangedb/pg_select_purse_merge.c')
-rw-r--r-- | src/exchangedb/pg_select_purse_merge.c | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/src/exchangedb/pg_select_purse_merge.c b/src/exchangedb/pg_select_purse_merge.c index ce9f03618..ecc047cc5 100644 --- a/src/exchangedb/pg_select_purse_merge.c +++ b/src/exchangedb/pg_select_purse_merge.c @@ -33,14 +33,14 @@ TEH_PG_select_purse_merge ( struct TALER_PurseMergeSignatureP *merge_sig, struct GNUNET_TIME_Timestamp *merge_timestamp, char **partner_url, - struct TALER_ReservePublicKeyP *reserve_pub) + struct TALER_ReservePublicKeyP *reserve_pub, + bool *refunded) { struct PostgresClosure *pg = cls; struct GNUNET_PQ_QueryParam params[] = { GNUNET_PQ_query_param_auto_from_type (purse_pub), GNUNET_PQ_query_param_end }; - bool is_null; struct GNUNET_PQ_ResultSpec rs[] = { GNUNET_PQ_result_spec_auto_from_type ("merge_sig", merge_sig), @@ -51,22 +51,28 @@ TEH_PG_select_purse_merge ( GNUNET_PQ_result_spec_allow_null ( GNUNET_PQ_result_spec_string ("partner_base_url", partner_url), - &is_null), + NULL), + GNUNET_PQ_result_spec_allow_null ( + GNUNET_PQ_result_spec_bool ("refunded", + refunded), + NULL), GNUNET_PQ_result_spec_end }; *partner_url = NULL; - /* Used in #postgres_select_purse_merge */ + *refunded = false; PREPARE (pg, "select_purse_merge", "SELECT " - " reserve_pub" - ",merge_sig" - ",merge_timestamp" - ",partner_base_url" - " FROM purse_merges" - " LEFT JOIN partners USING (partner_serial_id)" - " WHERE purse_pub=$1;"); + " pm.reserve_pub" + ",pm.merge_sig" + ",pm.merge_timestamp" + ",pr.partner_base_url" + ",pd.refunded" + " FROM purse_merges pm" + " LEFT JOIN purse_decision pd USING (purse_pub)" + " LEFT JOIN partners pr USING (partner_serial_id)" + " WHERE pm.purse_pub=$1;"); return GNUNET_PQ_eval_prepared_singleton_select (pg->conn, "select_purse_merge", params, |