exchange

Base system with REST service to issue digital coins, run by the payment service provider
Log | Files | Refs | Submodules | README | LICENSE

commit 48e6db311368619c360879bf222c28c98e901879
parent b20855daf9f6afe14c41880d0d1dc7c25fa3dd5f
Author: Christian Grothoff <christian@grothoff.org>
Date:   Thu,  6 Aug 2026 22:44:56 +0200

fix cmp for amount normalization

Diffstat:
Msrc/exchangedb/sql-schema/exchange_statistics_helpers.sql | 11+++++++----
1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/exchangedb/sql-schema/exchange_statistics_helpers.sql b/src/exchangedb/sql-schema/exchange_statistics_helpers.sql @@ -614,7 +614,7 @@ BEGIN my_min_serial = my_irec.event_delimiter; my_rval.rvalue.val = (my_rval.rvalue).val + (my_irec.cumulative_value).val + (my_irec.cumulative_value).frac / 100000000; my_rval.rvalue.frac = (my_rval.rvalue).frac + (my_irec.cumulative_value).frac % 100000000; - IF (my_rval.rvalue).frac > 100000000 + IF (my_rval.rvalue).frac >= 100000000 THEN my_rval.rvalue.frac = (my_rval.rvalue).frac - 100000000; my_rval.rvalue.val = (my_rval.rvalue).val + 1; @@ -687,13 +687,16 @@ BEGIN UPDATE exchange_statistic_interval_amount AS msia SET cumulative_value.val = (cumulative_value).val + my_delta_value + CASE - WHEN (cumulative_value).frac + my_delta_frac > 100000000 + WHEN (cumulative_value).frac + my_delta_frac >= 100000000 THEN 1 ELSE 0 END, - cumulative_value.frac = (cumulative_value).frac + my_delta_value + -- Note: the fraction, not the value; this used to add + -- my_delta_value here and so replaced the fraction of the + -- carried-over amount with its integer part. + cumulative_value.frac = (cumulative_value).frac + my_delta_frac - CASE - WHEN (cumulative_value).frac + my_delta_frac > 100000000 + WHEN (cumulative_value).frac + my_delta_frac >= 100000000 THEN 100000000 ELSE 0 END,