summaryrefslogtreecommitdiff
path: root/src/exchangedb/pg_select_purse_merge.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/exchangedb/pg_select_purse_merge.c')
-rw-r--r--src/exchangedb/pg_select_purse_merge.c28
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,