fix for foreign key constraint problem for free purses on purse creation from reserve
This commit is contained in:
parent
402ca17600
commit
6596e6c723
@ -18,6 +18,8 @@ CREATE OR REPLACE FUNCTION exchange_do_reserve_purse(
|
||||
IN in_purse_pub BYTEA,
|
||||
IN in_merge_sig BYTEA,
|
||||
IN in_merge_timestamp INT8,
|
||||
IN in_reserve_expiration INT8,
|
||||
IN in_reserve_gc INT8,
|
||||
IN in_reserve_sig BYTEA,
|
||||
IN in_reserve_quota BOOLEAN,
|
||||
IN in_purse_fee_val INT8,
|
||||
@ -105,6 +107,14 @@ ELSE
|
||||
out_no_funds=TRUE;
|
||||
RETURN;
|
||||
END IF;
|
||||
INSERT INTO exchange.reserves
|
||||
(reserve_pub
|
||||
,expiration_date
|
||||
,gc_date)
|
||||
VALUES
|
||||
(in_reserve_pub
|
||||
,in_reserve_expiration
|
||||
,in_reserve_gc);
|
||||
ELSE
|
||||
UPDATE exchange.reserves
|
||||
SET
|
||||
@ -149,7 +159,7 @@ INSERT INTO exchange.account_merges
|
||||
|
||||
END $$;
|
||||
|
||||
COMMENT ON FUNCTION exchange_do_reserve_purse(BYTEA, BYTEA, INT8, BYTEA, BOOLEAN, INT8, INT4, BYTEA, BYTEA)
|
||||
COMMENT ON FUNCTION exchange_do_reserve_purse(BYTEA, BYTEA, INT8, INT8, INT8, BYTEA, BOOLEAN, INT8, INT4, BYTEA, BYTEA)
|
||||
IS 'Create a purse for a reserve.';
|
||||
|
||||
|
||||
|
@ -57,10 +57,21 @@ TEH_PG_do_reserve_purse (
|
||||
struct PostgresClosure *pg = cls;
|
||||
struct TALER_Amount zero_fee;
|
||||
struct TALER_PaytoHashP h_payto;
|
||||
struct GNUNET_TIME_Timestamp reserve_expiration
|
||||
= GNUNET_TIME_absolute_to_timestamp (
|
||||
GNUNET_TIME_absolute_add (GNUNET_TIME_absolute_get (),
|
||||
pg->idle_reserve_expiration_time));
|
||||
struct GNUNET_TIME_Timestamp reserve_gc
|
||||
= GNUNET_TIME_absolute_to_timestamp (
|
||||
GNUNET_TIME_absolute_add (GNUNET_TIME_absolute_get (),
|
||||
pg->legal_reserve_expiration_time));
|
||||
|
||||
struct GNUNET_PQ_QueryParam params[] = {
|
||||
GNUNET_PQ_query_param_auto_from_type (purse_pub),
|
||||
GNUNET_PQ_query_param_auto_from_type (merge_sig),
|
||||
GNUNET_PQ_query_param_timestamp (&merge_timestamp),
|
||||
GNUNET_PQ_query_param_timestamp (&reserve_expiration),
|
||||
GNUNET_PQ_query_param_timestamp (&reserve_gc),
|
||||
GNUNET_PQ_query_param_auto_from_type (reserve_sig),
|
||||
GNUNET_PQ_query_param_bool (NULL == purse_fee),
|
||||
TALER_PQ_query_param_amount (NULL == purse_fee
|
||||
|
@ -199,7 +199,7 @@ TEH_PG_reserves_in_insert (void *cls,
|
||||
(We are only run in a larger transaction for performance.) */
|
||||
enum GNUNET_DB_QueryStatus cs;
|
||||
|
||||
cs = TEH_PG_commit(pg);
|
||||
cs = TEH_PG_commit (pg);
|
||||
if (cs < 0)
|
||||
return cs;
|
||||
if (GNUNET_OK !=
|
||||
|
Loading…
Reference in New Issue
Block a user