From ac0ef07a77d10b9ee30e81aac27e826184cbdd72 Mon Sep 17 00:00:00 2001 From: jackstar12 <62219658+jackstar12@users.noreply.github.com> Date: Thu, 24 Aug 2023 12:20:15 +0200 Subject: [PATCH] optimize balances view (#1779) * optimize balances view flake8 flake8 * fix line length --- lnbits/core/migrations.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lnbits/core/migrations.py b/lnbits/core/migrations.py index 6c3743cb..fce8e480 100644 --- a/lnbits/core/migrations.py +++ b/lnbits/core/migrations.py @@ -302,3 +302,20 @@ async def m010_create_installed_extensions_table(db): ); """ ) + + +async def m011_optimize_balances_view(db): + """ + Make the calculation of the balance a single aggregation + over the payments table instead of 2. + """ + await db.execute("DROP VIEW balances") + await db.execute( + """ + CREATE VIEW balances AS + SELECT wallet, SUM(amount - abs(fee)) AS balance + FROM apipayments + WHERE (pending = false AND amount > 0) OR amount < 0 + GROUP BY wallet + """ + )