commit 66472c927d16f35b57d3d22d2d64ff6cd1195398
parent 707c726a458fb52fac5ba62d44b77e1ffdd1cd3f
Author: Christian Grothoff <christian@grothoff.org>
Date: Wed, 27 May 2026 17:21:22 +0200
fix bad LEFT JOIN / COALESCE combination (#10612)
Diffstat:
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/src/backenddb/lookup_token_family_key.c b/src/backenddb/lookup_token_family_key.c
@@ -50,9 +50,9 @@ TALER_MERCHANTDB_lookup_token_family_key (
PREPARE (pg,
"lookup_token_family_key",
"SELECT"
- " h_pub"
- ",pub"
- ",priv"
+ " mtfk.h_pub"
+ ",mtfk.pub"
+ ",mtfk.priv"
",cipher_choice"
",mtfk.signature_validity_start"
",mtfk.signature_validity_end"
@@ -71,14 +71,16 @@ TALER_MERCHANTDB_lookup_token_family_key (
",used"
" FROM merchant_token_families mtf"
" LEFT JOIN merchant_token_family_keys mtfk"
- " USING (token_family_serial)"
+ " ON ( (mtf.token_family_serial = mtfk.token_family_serial)"
+ " AND ($3 >= mtfk.signature_validity_start)"
+ " AND ($3 <= mtfk.signature_validity_end)"
+ " AND ($4 <= mtfk.private_key_deleted_at) )"
" JOIN merchant_instances mi"
" USING (merchant_serial)"
" WHERE mi.merchant_id=$1"
" AND slug=$2"
- " AND COALESCE ($3 >= mtfk.signature_validity_start, TRUE)"
- " AND COALESCE ($3 <= mtfk.signature_validity_end, TRUE)"
- " AND COALESCE ($4 <= mtfk.private_key_deleted_at, TRUE)"
+ " AND ($3 >= valid_after)"
+ " AND ($3 <= valid_before)"
" ORDER BY mtfk.signature_validity_start ASC"
" LIMIT 1");