lightning-terminal/db/sqlc/queries/accounts.sql
Viktor Tigerström 6030f650fd
db: order ListAllAccounts result by account id.
In preparation for the migration from kvdb to SQL, we update the results
of the ListAllAccounts query. After the migration has been implemented,
we will test that the result off all accounts in the SQL database
is the same as the result of the fetching all accounts in the kvdb.

By ordering the SQL query's result by account id, we ensure that all
accounts are returned in the same order as they are returned by the
kvdb.
2025-05-15 17:08:48 +02:00

93 lines
1.8 KiB
SQL

-- name: InsertAccount :one
INSERT INTO accounts (type, initial_balance_msat, current_balance_msat, last_updated, label, alias, expiration)
VALUES ($1, $2, $3, $4, $5, $6, $7)
RETURNING id;
-- name: UpdateAccountBalance :one
UPDATE accounts
SET current_balance_msat = $1
WHERE id = $2
RETURNING id;
-- name: UpdateAccountExpiry :one
UPDATE accounts
SET expiration = $1
WHERE id = $2
RETURNING id;
-- name: UpdateAccountLastUpdate :one
UPDATE accounts
SET last_updated = $1
WHERE id = $2
RETURNING id;
-- name: AddAccountInvoice :exec
INSERT INTO account_invoices (account_id, hash)
VALUES ($1, $2);
-- name: DeleteAccountPayment :exec
DELETE FROM account_payments
WHERE hash = $1
AND account_id = $2;
-- name: UpsertAccountPayment :exec
INSERT INTO account_payments (account_id, hash, status, full_amount_msat)
VALUES ($1, $2, $3, $4)
ON CONFLICT (account_id, hash)
DO UPDATE SET status = $3, full_amount_msat = $4;
-- name: GetAccountPayment :one
SELECT * FROM account_payments
WHERE hash = $1
AND account_id = $2;
-- name: GetAccount :one
SELECT *
FROM accounts
WHERE id = $1;
-- name: GetAccountIDByAlias :one
SELECT id
FROM accounts
WHERE alias = $1;
-- name: GetAccountByLabel :one
SELECT *
FROM accounts
WHERE label = $1;
-- name: DeleteAccount :exec
DELETE FROM accounts
WHERE id = $1;
-- name: ListAllAccounts :many
SELECT *
FROM accounts
ORDER BY id;
-- name: ListAccountPayments :many
SELECT *
FROM account_payments
WHERE account_id = $1;
-- name: ListAccountInvoices :many
SELECT *
FROM account_invoices
WHERE account_id = $1;
-- name: GetAccountInvoice :one
SELECT *
FROM account_invoices
WHERE account_id = $1
AND hash = $2;
-- name: SetAccountIndex :exec
INSERT INTO account_indices (name, value)
VALUES ($1, $2)
ON CONFLICT (name)
DO UPDATE SET value = $2;
-- name: GetAccountIndex :one
SELECT value
FROM account_indices
WHERE name = $1;