commit c0a46c7de723a5d8a7b651774468da9d06a56ada
parent a5d19156a19c3b4ebaef7f3241c0c4488aa30354
Author: Christian Grothoff <christian@grothoff.org>
Date: Wed, 3 Jun 2026 00:21:35 +0200
-misc bugfixes
Diffstat:
4 files changed, 19 insertions(+), 26 deletions(-)
diff --git a/src/backend/taler-merchant-httpd_post-private-orders.c b/src/backend/taler-merchant-httpd_post-private-orders.c
@@ -3599,7 +3599,7 @@ phase_parse_choices (struct OrderContext *oc)
GNUNET_assert (0);
break;
case TALER_MERCHANT_CONTRACT_OUTPUT_TYPE_DONATION_RECEIPT:
- if (! order_output->details.donation_receipt.no_amount)
+ if (order_output->details.donation_receipt.no_amount)
{
contract_output->details.donation_receipt.amount
= ochoice->amount;
diff --git a/src/backenddb/lookup_token_family_key.c b/src/backenddb/lookup_token_family_key.c
@@ -124,13 +124,11 @@ TALER_MERCHANTDB_lookup_token_family_key (
",used"
" FROM merchant_token_families mtf"
" LEFT JOIN merchant_token_family_keys mtfk"
- " ON ( (mtf.token_family_serial = mtfk.token_family_serial)"
- " AND ($2 >= mtfk.signature_validity_start)"
- " AND ($2 <= mtfk.signature_validity_end)"
- " AND ($3 <= mtfk.private_key_deleted_at) )"
+ " USING (token_family_serial)"
" WHERE slug=$1"
- " AND ($2 >= valid_after)"
- " AND ($2 <= valid_before)"
+ " AND COALESCE ($2 >= mtfk.signature_validity_start, TRUE)"
+ " AND COALESCE ($2 <= mtfk.signature_validity_end, TRUE)"
+ " AND COALESCE ($3 <= mtfk.private_key_deleted_at, TRUE)"
" ORDER BY mtfk.signature_validity_start ASC"
" LIMIT 1");
memset (details,
diff --git a/src/backenddb/select_donau_instances.c b/src/backenddb/select_donau_instances.c
@@ -164,7 +164,7 @@ TALER_MERCHANTDB_select_donau_instances (
",di.current_year"
",dk.keys_json::TEXT"
" FROM merchant_donau_instances di"
- " LEFT JOIN merchant_donau_keys dk"
+ " LEFT JOIN merchant.merchant_donau_keys dk"
" ON di.donau_url = dk.donau_url");
qs = GNUNET_PQ_eval_prepared_multi_select (pg->conn,
"",
diff --git a/src/backenddb/upsert_donau_keys.c b/src/backenddb/upsert_donau_keys.c
@@ -47,28 +47,23 @@ TALER_MERCHANTDB_upsert_donau_keys (
};
check_connection (pg);
- // FIXME: combine these into a stored procedure
PREPARE (pg,
"insert_donau_keys",
- "INSERT INTO merchant_donau_keys"
- "(keys_json"
- ",first_retry"
- ",donau_url"
- ") VALUES ($1::TEXT::JSONB, $2, $3);");
- PREPARE (pg,
- "update_donau_keys",
- "UPDATE merchant_donau_keys SET"
- " keys_json=$1::TEXT::JSONB,"
- " first_retry=$2"
- " WHERE"
- " donau_url=$3;");
+ "INSERT INTO merchant.merchant_donau_keys"
+ " (keys_json"
+ " ,first_retry"
+ " ,donau_url"
+ " ) VALUES ("
+ " $1::TEXT::JSONB"
+ " ,$2"
+ " ,$3)"
+ " ON CONFLICT (donau_url)"
+ " DO UPDATE SET"
+ " keys_json=EXCLUDED.keys_json,"
+ " first_retry=EXCLUDED.first_retry;");
qs = GNUNET_PQ_eval_prepared_non_select (pg->conn,
- "update_donau_keys",
+ "insert_donau_keys",
params);
- if (GNUNET_DB_STATUS_SUCCESS_NO_RESULTS == qs)
- qs = GNUNET_PQ_eval_prepared_non_select (pg->conn,
- "insert_donau_keys",
- params);
}
json_decref (jkeys);