summaryrefslogtreecommitdiff
path: root/src/exchangedb/exchange-0001.sql
diff options
context:
space:
mode:
authorÖzgür Kesim <oec-taler@kesim.org>2023-07-28 14:29:25 +0200
committerÖzgür Kesim <oec-taler@kesim.org>2023-07-28 14:29:25 +0200
commit1c923855a31b35e28706ba2fafa2d2bccc7ee775 (patch)
tree5df5f6ed6225d3d2990e5054a5bb12de05a8d62f /src/exchangedb/exchange-0001.sql
parent0d0494ee9117c89faeda64baf7413dee1cee46ca (diff)
downloadexchange-1c923855a31b35e28706ba2fafa2d2bccc7ee775.tar.gz
exchange-1c923855a31b35e28706ba2fafa2d2bccc7ee775.tar.bz2
exchange-1c923855a31b35e28706ba2fafa2d2bccc7ee775.zip
finalize v3/v4 -> v2 exchange schema merger
Diffstat (limited to 'src/exchangedb/exchange-0001.sql')
-rw-r--r--src/exchangedb/exchange-0001.sql80
1 files changed, 0 insertions, 80 deletions
diff --git a/src/exchangedb/exchange-0001.sql b/src/exchangedb/exchange-0001.sql
index a5998b852..8f44c5664 100644
--- a/src/exchangedb/exchange-0001.sql
+++ b/src/exchangedb/exchange-0001.sql
@@ -137,90 +137,10 @@ COMMENT ON FUNCTION comment_partitioned_column
IS 'Generic function to create a comment on column of a table that is partitioned.';
---------------------------------------------------------------
--- Taler amounts and helper functiosn
--------------------------------------------------------------
-
-
-CREATE PROCEDURE amount_normalize(
- IN amount taler_amount
- ,OUT normalized taler_amount
-)
-LANGUAGE plpgsql
-AS $$
-BEGIN
- normalized.val = amount.val + amount.frac / 100000000;
- normalized.frac = amount.frac % 100000000;
-END $$;
-
-COMMENT ON PROCEDURE amount_normalize
- IS 'Returns the normalized amount by adding to the .val the value of (.frac / 100000000) and removing the modulus 100000000 from .frac.';
-
-CREATE PROCEDURE amount_add(
- IN a taler_amount
- ,IN b taler_amount
- ,OUT sum taler_amount
-)
-LANGUAGE plpgsql
-AS $$
-BEGIN
- sum = (a.val + b.val, a.frac + b.frac);
- CALL amount_normalize(sum ,sum);
-
- IF (sum.val > (1<<52))
- THEN
- RAISE EXCEPTION 'addition overflow';
- END IF;
-END $$;
-
-COMMENT ON PROCEDURE amount_add
- IS 'Returns the normalized sum of two amounts. It raises an exception when the resulting .val is larger than 2^52';
-
-CREATE FUNCTION amount_left_minus_right(
- IN l taler_amount
- ,IN r taler_amount
- ,OUT diff taler_amount
- ,OUT ok BOOLEAN
-)
-LANGUAGE plpgsql
-AS $$
-BEGIN
-
-IF (l.val > r.val)
-THEN
- ok = TRUE;
- IF (l.frac >= r.frac)
- THEN
- diff.val = l.val - r.val;
- diff.frac = l.frac - r.frac;
- ELSE
- diff.val = l.val - r.val - 1;
- diff.frac = l.frac + 100000000 - r.frac;
- END IF;
-ELSE
- IF (l.val = r.val) AND (l.frac >= r.frac)
- THEN
- diff.val = 0;
- diff.frac = l.frac - r.frac;
- ok = TRUE;
- ELSE
- diff = (-1, -1);
- ok = FALSE;
- END IF;
-END IF;
-
-RETURN;
-END $$;
-
-COMMENT ON FUNCTION amount_left_minus_right
- IS 'Subtracts the right amount from the left and returns the difference and TRUE, if the left amount is larger than the right, or an invalid amount and FALSE otherwise.';
-
-
---------------------------------------------------------------------------
-- Main DB setup loop
---------------------------------------------------------------------------
-
CREATE FUNCTION do_create_tables(
num_partitions INTEGER
-- NULL: no partitions, add foreign constraints