From f1fe4e67063da54d6bcd871c48a4061c77e3e36f Mon Sep 17 00:00:00 2001 From: spacedandy-agents-simplex <342056592+spacedandy-agents-simplex@users.noreply.github.com> Date: Wed, 14 Oct 2026 10:17:40 +0000 Subject: [PATCH] core: update query plans getBadgePurchase derives the purchase kind from the ledger replica, and a subscription test makes a held store receipt due. Run: 001-badge-subscriptions, final verification --- .../Store/SQLite/Migrations/chat_query_plans.txt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt b/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt index 38fbea289a..fdc42dcae6 100644 --- a/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt +++ b/src/Simplex/Chat/Store/SQLite/Migrations/chat_query_plans.txt @@ -4094,7 +4094,11 @@ Query: SELECT p.badge_purchase_id, p.purchase_key, p.purchase_priv_key, p.master_key, p.current_badge_type, (CASE WHEN u.shown_badge_id = p.badge_purchase_id THEN 1 ELSE 0 END), p.alert_acked_kind, p.alert_acked_episode, p.alert_snooze_until, - p.issue_failed_since, p.issue_error_at, p.issue_error, p.next_wake_at + p.issue_failed_since, p.issue_error_at, p.issue_error, p.next_wake_at, + (CASE WHEN EXISTS ( + SELECT 1 FROM badge_ledger l + WHERE l.badge_purchase_id = p.badge_purchase_id AND l.entry_type = 'credit' AND l.entry_credit_type = 'charge' + ) THEN 1 ELSE 0 END) FROM badge_purchases p JOIN users u ON u.user_id = p.user_id WHERE p.badge_purchase_id = ? AND p.purchase_priv_key IS NOT NULL @@ -4102,6 +4106,8 @@ Query: Plan: SEARCH p USING INTEGER PRIMARY KEY (rowid=?) SEARCH u USING INTEGER PRIMARY KEY (rowid=?) +CORRELATED SCALAR SUBQUERY 1 +SEARCH l USING INDEX idx_badge_ledger_purchase (badge_purchase_id=?) Query: SELECT pgm.message_id, m.shared_msg_id, m.msg_body, m.msg_chat_binding, m.msg_signatures @@ -7924,6 +7930,10 @@ Query: UPDATE badge_purchases SET next_wake_at = ? WHERE badge_purchase_id = ? Plan: SEARCH badge_purchases USING INTEGER PRIMARY KEY (rowid=?) +Query: UPDATE badge_store_receipts SET next_attempt_at = ? +Plan: +SCAN badge_store_receipts + Query: UPDATE badge_store_receipts SET payment = ? Plan: SCAN badge_store_receipts