Skip to content

Commit

Permalink
optimisation efforts
Browse files Browse the repository at this point in the history
  • Loading branch information
dostrelith678 committed Sep 16, 2021
1 parent 06cbbbc commit 854ec00
Showing 1 changed file with 19 additions and 25 deletions.
44 changes: 19 additions & 25 deletions files/grest/rpc/assets/asset_address_list.sql
@@ -1,32 +1,26 @@
DROP FUNCTION IF EXISTS grest.asset_address_list (text);

CREATE FUNCTION grest.asset_address_list (_asset_identifier text DEFAULT NULL)
RETURNS TABLE (
address varchar,
quantity numeric)
LANGUAGE PLPGSQL
AS $$
RETURNS TABLE (
address varchar,
quantity numeric)
LANGUAGE PLPGSQL
AS $$
BEGIN
RETURN QUERY
SELECT
TXO.ADDRESS,
sum(MTX.QUANTITY)
FROM
MA_TX_OUT MTX
INNER JOIN TX_OUT TXO ON TXO.ID = MTX.TX_OUT_ID
WHERE
DECODE(_asset_identifier, 'hex') = MTX.POLICY || MTX.NAME
AND NOT EXISTS (
SELECT
TX_OUT.ID
FROM
TX_OUT
INNER JOIN TX_IN ON TX_OUT.TX_ID = TX_IN.TX_OUT_ID
AND TX_OUT.INDEX = TX_IN.TX_OUT_INDEX
WHERE
TXO.ID = TX_OUT.ID)
GROUP BY
TXO.ADDRESS;
RETURN QUERY
SELECT
TXO.ADDRESS,
SUM(MTX.QUANTITY)
FROM
MA_TX_OUT MTX
INNER JOIN TX_OUT TXO ON TXO.ID = MTX.TX_OUT_ID
LEFT JOIN TX_IN ON TXO.TX_ID = TX_IN.TX_OUT_ID
AND TXO.INDEX::smallint = TX_IN.TX_OUT_INDEX::smallint
WHERE
DECODE(_asset_identifier, 'hex') = MTX.POLICY || MTX.NAME
AND TX_IN.TX_IN_ID IS NULL
GROUP BY
TXO.ADDRESS;
END;
$$;

Expand Down

0 comments on commit 854ec00

Please sign in to comment.