[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-exchange] branch master updated (96381a251 -> d16350ef1)
From: |
gnunet |
Subject: |
[taler-exchange] branch master updated (96381a251 -> d16350ef1) |
Date: |
Wed, 28 Aug 2024 22:42:37 +0200 |
This is an automated email from the git hooks/post-receive script.
grothoff pushed a change to branch master
in repository exchange.
from 96381a251 Revert "updated table creation files"
new 94339b2d7 Reapply "updated table creation files"
new d16350ef1 fix patch from Nic and also fix various other auditor bugs
found during review
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
src/auditor/taler-helper-auditor-aggregation.c | 8 ++++---
src/auditor/taler-helper-auditor-coins.c | 12 +++++++++-
src/auditor/taler-helper-auditor-purses.c | 9 +++----
src/auditor/taler-helper-auditor-reserves.c | 16 ++++++-------
src/auditor/taler-helper-auditor-wire-debit.c | 1 +
...002-auditor_amount_arithmetic_inconsistency.sql | 15 +++++-------
src/auditordb/0002-auditor_bad_sig_losses.sql | 11 ++++-----
src/auditordb/0002-auditor_balances.sql | 2 +-
src/auditordb/0002-auditor_closure_lags.sql | 10 ++++----
src/auditordb/0002-auditor_coin_inconsistency.sql | 13 +++++-----
...ination_key_validity_withdraw_inconsistency.sql | 8 +++----
.../0002-auditor_denominations_without_sigs.sql | 5 ++--
src/auditordb/0002-auditor_emergency.sql | 14 +++++------
src/auditordb/0002-auditor_emergency_by_count.sql | 15 ++++++------
.../0002-auditor_fee_time_inconsistency.sql | 8 +++----
.../0002-auditor_historic_denomination_revenue.sql | 4 ++--
.../0002-auditor_historic_reserve_summary.sql | 5 +---
...002-auditor_misattribution_in_inconsistency.sql | 8 +++----
src/auditordb/0002-auditor_pending_deposits.sql | 8 +++----
...02-auditor_purse_not_closed_inconsistencies.sql | 10 ++++----
src/auditordb/0002-auditor_purses.sql | 6 ++---
src/auditordb/0002-auditor_refreshes_hanging.sql | 8 +++----
..._reserve_balance_insufficient_inconsistency.sql | 5 ++--
...reserve_balance_summary_wrong_inconsistency.sql | 8 +++----
.../0002-auditor_reserve_in_inconsistency.sql | 2 +-
...02-auditor_reserve_not_closed_inconsistency.sql | 5 ++--
src/auditordb/0002-auditor_row_inconsistency.sql | 2 +-
.../0002-auditor_wire_format_inconsistency.sql | 8 +++----
src/auditordb/pg_helper.c | 1 +
src/auditordb/pg_helper.h | 28 +++++++++++-----------
.../pg_insert_amount_arithmetic_inconsistency.c | 20 ++++++----------
src/auditordb/pg_insert_auditor_closure_lags.c | 13 +++++-----
src/auditordb/pg_insert_bad_sig_losses.c | 22 +++++------------
src/auditordb/pg_insert_coin_inconsistency.c | 14 ++---------
...omination_key_validity_withdraw_inconsistency.c | 9 ++++---
.../pg_insert_denominations_without_sigs.c | 7 +-----
src/auditordb/pg_insert_emergency.c | 15 ++++++------
src/auditordb/pg_insert_fee_time_inconsistency.c | 11 ++++-----
.../pg_insert_misattribution_in_inconsistency.c | 1 +
.../pg_insert_purse_not_closed_inconsistencies.c | 13 +++-------
src/auditordb/pg_insert_refreshes_hanging.c | 16 +++++--------
src/auditordb/pg_insert_row_inconsistency.c | 1 +
.../pg_insert_wire_format_inconsistency.c | 9 ++++---
src/auditordb/plugin_auditordb_postgres.c | 2 +-
src/include/taler_auditordb_plugin.h | 8 +++++--
45 files changed, 187 insertions(+), 229 deletions(-)
diff --git a/src/auditor/taler-helper-auditor-aggregation.c
b/src/auditor/taler-helper-auditor-aggregation.c
index a6122e513..22ba23b4c 100644
--- a/src/auditor/taler-helper-auditor-aggregation.c
+++ b/src/auditor/taler-helper-auditor-aggregation.c
@@ -140,13 +140,14 @@ report_amount_arithmetic_inconsistency (
}
{
- enum GNUNET_DB_QueryStatus qs;
struct TALER_AUDITORDB_AmountArithmeticInconsistency aai = {
+ .problem_row_id = rowid,
.profitable = profitable,
.operation = (char *) operation,
.exchange_amount = *exchange,
.auditor_amount = *auditor
};
+ enum GNUNET_DB_QueryStatus qs;
qs = TALER_ARL_adb->insert_amount_arithmetic_inconsistency (
TALER_ARL_adb->cls,
@@ -899,7 +900,7 @@ wire_transfer_information_cb (
denom_pub))
{
struct TALER_AUDITORDB_BadSigLosses bsl = {
- .row_id = rowid,
+ .problem_row_id = rowid,
.operation = "wire",
.loss = *coin_value,
.operation_specific_pub = coin.coin_pub.eddsa_pub
@@ -1128,6 +1129,7 @@ get_wire_fee (struct AggregationContext *ac,
wfi->start_date))
{
struct TALER_AUDITORDB_FeeTimeInconsistency ftib = {
+ .problem_row_id = 0, /* FIXME: fetch above! */
.diagnostic = "start date before previous end date",
.time = wfi->start_date.abs_time,
.type = (char *) method
@@ -1136,7 +1138,6 @@ get_wire_fee (struct AggregationContext *ac,
qs = TALER_ARL_adb->insert_fee_time_inconsistency (
TALER_ARL_adb->cls,
&ftib);
-
if (qs < 0)
{
GNUNET_break (GNUNET_DB_STATUS_SOFT_ERROR == qs);
@@ -1150,6 +1151,7 @@ get_wire_fee (struct AggregationContext *ac,
wfi->end_date))
{
struct TALER_AUDITORDB_FeeTimeInconsistency ftia = {
+ .problem_row_id = 0, /* FIXME: fetch above! */
.diagnostic = "end date date after next start date",
.time = wfi->end_date.abs_time,
.type = (char *) method
diff --git a/src/auditor/taler-helper-auditor-coins.c
b/src/auditor/taler-helper-auditor-coins.c
index 8a9f8f0ac..6e530ef37 100644
--- a/src/auditor/taler-helper-auditor-coins.c
+++ b/src/auditor/taler-helper-auditor-coins.c
@@ -364,6 +364,7 @@ report_amount_arithmetic_inconsistency (
{
struct TALER_AUDITORDB_AmountArithmeticInconsistency aai = {
.profitable = profitable,
+ .problem_row_id = rowid,
.operation = (char *) operation,
.exchange_amount = *exchange,
.auditor_amount = *auditor
@@ -1207,6 +1208,7 @@ check_known_coin (
denom_pub))
{
struct TALER_AUDITORDB_BadSigLosses bsl = {
+ .problem_row_id = rowid,
.operation = (char *) operation,
.loss = *loss_potential,
.operation_specific_pub = coin_pub->eddsa_pub
@@ -1386,6 +1388,7 @@ refresh_session_cb (void *cls,
coin_sig))
{
struct TALER_AUDITORDB_BadSigLosses bsl = {
+ .problem_row_id = rowid,
.operation = "melt",
.loss = *amount_with_fee,
.operation_specific_pub = coin_pub->eddsa_pub
@@ -1442,7 +1445,7 @@ refresh_session_cb (void *cls,
with invalid data, even if the exchange is correctly operating. We
still report it. */
struct TALER_AUDITORDB_RefreshesHanging rh = {
- .row_id = rowid,
+ .problem_row_id = rowid,
.amount = *amount_with_fee,
.coin_pub = coin_pub->eddsa_pub
};
@@ -1731,6 +1734,7 @@ deposit_cb (void *cls,
&deposit->csig))
{
struct TALER_AUDITORDB_BadSigLosses bsl = {
+ .problem_row_id = rowid,
.operation = "deposit",
.loss = deposit->amount_with_fee,
.operation_specific_pub = deposit->coin.coin_pub.eddsa_pub
@@ -1867,6 +1871,7 @@ refund_cb (void *cls,
merchant_sig))
{
struct TALER_AUDITORDB_BadSigLosses bsl = {
+ .problem_row_id = rowid,
.operation = "refund",
.loss = *amount_with_fee,
.operation_specific_pub = coin_pub->eddsa_pub
@@ -2145,6 +2150,7 @@ check_recoup (struct CoinContext *cc,
denom_pub))
{
struct TALER_AUDITORDB_BadSigLosses bsl = {
+ .problem_row_id = rowid,
.operation = (char *) operation,
.loss = *amount,
.operation_specific_pub = coin->coin_pub.eddsa_pub
@@ -2217,6 +2223,7 @@ check_recoup (struct CoinContext *cc,
if (! ds->was_revoked)
{
struct TALER_AUDITORDB_BadSigLosses bsldnr = {
+ .problem_row_id = rowid,
.operation = (char *) operation,
.loss = *amount,
.operation_specific_pub = coin->coin_pub.eddsa_pub
@@ -2286,6 +2293,7 @@ recoup_cb (void *cls,
coin_sig))
{
struct TALER_AUDITORDB_BadSigLosses bsl = {
+ .problem_row_id = rowid,
.operation = "recoup",
.loss = *amount,
.operation_specific_pub = coin->coin_pub.eddsa_pub
@@ -2416,6 +2424,7 @@ recoup_refresh_cb (void *cls,
coin_sig))
{
struct TALER_AUDITORDB_BadSigLosses bsl = {
+ .problem_row_id = rowid,
.operation = "recoup-refresh",
.loss = *amount,
.operation_specific_pub = coin->coin_pub.eddsa_pub
@@ -2607,6 +2616,7 @@ purse_deposit_cb (
&deposit->coin_sig))
{
struct TALER_AUDITORDB_BadSigLosses bsl = {
+ .problem_row_id = rowid,
.operation = "purse-deposit",
.loss = deposit->amount,
.operation_specific_pub = deposit->coin_pub.eddsa_pub
diff --git a/src/auditor/taler-helper-auditor-purses.c
b/src/auditor/taler-helper-auditor-purses.c
index 8d86bba85..f9988fb52 100644
--- a/src/auditor/taler-helper-auditor-purses.c
+++ b/src/auditor/taler-helper-auditor-purses.c
@@ -146,6 +146,7 @@ report_amount_arithmetic_inconsistency (
{
struct TALER_AUDITORDB_AmountArithmeticInconsistency aai = {
.profitable = profitable,
+ .problem_row_id = rowid,
.operation = (char *) operation,
.exchange_amount = *exchange,
.auditor_amount = *auditor
@@ -504,7 +505,7 @@ handle_purse_requested (
purse_sig))
{
struct TALER_AUDITORDB_BadSigLosses bsl = {
- .row_id = rowid,
+ .problem_row_id = rowid,
.operation = "purse-request",
.loss = *target_amount,
.operation_specific_pub = purse_pub->eddsa_pub
@@ -629,7 +630,7 @@ handle_purse_deposits (
&deposit->coin_sig))
{
struct TALER_AUDITORDB_BadSigLosses bsl = {
- .row_id = rowid,
+ .problem_row_id = rowid,
.operation = "purse-deposit",
.loss = deposit->amount,
.operation_specific_pub = deposit->coin_pub.eddsa_pub
@@ -736,7 +737,7 @@ handle_purse_merged (
merge_sig))
{
struct TALER_AUDITORDB_BadSigLosses bsl = {
- .row_id = rowid,
+ .problem_row_id = rowid,
.operation = "merge-purse",
.loss = *amount,
.operation_specific_pub = merge_pub->eddsa_pub
@@ -845,7 +846,7 @@ handle_account_merged (
reserve_sig))
{
struct TALER_AUDITORDB_BadSigLosses bsl = {
- .row_id = rowid,
+ .problem_row_id = rowid,
.operation = "account-merge",
.loss = *purse_fee,
.operation_specific_pub = reserve_pub->eddsa_pub
diff --git a/src/auditor/taler-helper-auditor-reserves.c
b/src/auditor/taler-helper-auditor-reserves.c
index 111290adf..54fa043f5 100644
--- a/src/auditor/taler-helper-auditor-reserves.c
+++ b/src/auditor/taler-helper-auditor-reserves.c
@@ -170,7 +170,7 @@ report_amount_arithmetic_inconsistency (
{
struct TALER_AUDITORDB_AmountArithmeticInconsistency aai = {
- .row_id = rowid,
+ .problem_row_id = rowid,
.profitable = profitable,
.operation = (char *) operation,
.exchange_amount = *exchange,
@@ -581,7 +581,7 @@ handle_reserve_out (
execution_date))
{
struct TALER_AUDITORDB_DenominationKeyValidityWithdrawInconsistency dkvwi
={
- .row_id = rowid,
+ .problem_row_id = rowid,
.execution_date = execution_date.abs_time,
.denompub_h = *&h_denom_pub,
.reserve_pub = *reserve_pub
@@ -609,7 +609,7 @@ handle_reserve_out (
reserve_sig))
{
struct TALER_AUDITORDB_BadSigLosses bsl = {
- .row_id = rowid,
+ .problem_row_id = rowid,
.operation = "withdraw",
.loss = *amount_with_fee,
.operation_specific_pub = reserve_pub->eddsa_pub
@@ -720,7 +720,7 @@ handle_recoup_by_reserve (
coin_sig))
{
struct TALER_AUDITORDB_BadSigLosses bslr = {
- .row_id = rowid,
+ .problem_row_id = rowid,
.operation = "recoup",
.loss = *amount,
.operation_specific_pub = coin->coin_pub.eddsa_pub
@@ -799,7 +799,7 @@ handle_recoup_by_reserve (
"master signature invalid")))
{
struct TALER_AUDITORDB_BadSigLosses bslrm = {
- .row_id = rev_rowid,
+ .problem_row_id = rev_rowid,
.operation = "recoup-master",
.loss = *amount,
.operation_specific_pub = TALER_ARL_master_pub.eddsa_pub
@@ -945,7 +945,7 @@ handle_reserve_open (
reserve_sig))
{
struct TALER_AUDITORDB_BadSigLosses bsl = {
- .row_id = rowid,
+ .problem_row_id = rowid,
.operation = "reserve-open",
.loss = *reserve_payment,
.operation_specific_pub = reserve_pub->eddsa_pub
@@ -1100,7 +1100,7 @@ handle_reserve_closed (
&reserve_sig))
{
struct TALER_AUDITORDB_BadSigLosses bsl = {
- .row_id = close_request_row,
+ .problem_row_id = close_request_row,
.operation = "close-request",
.loss = *amount_with_fee,
.operation_specific_pub = reserve_pub->eddsa_pub
@@ -1246,7 +1246,7 @@ handle_account_merged (
reserve_sig))
{
struct TALER_AUDITORDB_BadSigLosses bsl = {
- .row_id = rowid,
+ .problem_row_id = rowid,
.operation = "account-merge",
.loss = *purse_fee,
.operation_specific_pub = reserve_pub->eddsa_pub
diff --git a/src/auditor/taler-helper-auditor-wire-debit.c
b/src/auditor/taler-helper-auditor-wire-debit.c
index 2a714d3f3..d3f9aacc0 100644
--- a/src/auditor/taler-helper-auditor-wire-debit.c
+++ b/src/auditor/taler-helper-auditor-wire-debit.c
@@ -455,6 +455,7 @@ check_pending_rc (void *cls,
if (! TALER_amount_is_zero (&rc->amount))
{
struct TALER_AUDITORDB_ClosureLags cl = {
+ .problem_row_id = rc->rowid,
.account = rc->receiver_account,
.amount = rc->amount,
.deadline = rc->execution_date.abs_time,
diff --git a/src/auditordb/0002-auditor_amount_arithmetic_inconsistency.sql
b/src/auditordb/0002-auditor_amount_arithmetic_inconsistency.sql
index 69b64bc41..8dcf7b742 100644
--- a/src/auditordb/0002-auditor_amount_arithmetic_inconsistency.sql
+++ b/src/auditordb/0002-auditor_amount_arithmetic_inconsistency.sql
@@ -14,17 +14,14 @@
-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
--
--- TODO: The constraints of operation are just for testing
-
CREATE TABLE auditor_amount_arithmetic_inconsistency
(
- row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE,
- -- TODO: correct constraintcheck, currently wrong
- --operation BYTEA NOT NULL CHECK (LENGTH(operation)=16),
- operation TEXT NOT NULL PRIMARY KEY,
- exchange_amount taler_amount,
- auditor_amount taler_amount,
- profitable BOOLEAN,
+ row_id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
+ problem_row_id BIGINT NOT NULL,
+ operation TEXT NOT NULL,
+ exchange_amount taler_amount NOT NULL,
+ auditor_amount taler_amount NOT NULL,
+ profitable BOOLEAN NOT NULL,
suppressed BOOLEAN NOT NULL DEFAULT FALSE
);
COMMENT ON TABLE auditor_amount_arithmetic_inconsistency
diff --git a/src/auditordb/0002-auditor_bad_sig_losses.sql
b/src/auditordb/0002-auditor_bad_sig_losses.sql
index c5a222251..bcaaf4987 100644
--- a/src/auditordb/0002-auditor_bad_sig_losses.sql
+++ b/src/auditordb/0002-auditor_bad_sig_losses.sql
@@ -14,15 +14,14 @@
-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
--
-SET search_path TO auditor;
CREATE TABLE IF NOT EXISTS auditor_bad_sig_losses
(
- row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE,
- operation TEXT,
- loss taler_amount,
+ row_id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
+ problem_row_id BIGINT NOT NULL,
+ operation TEXT NOT NULL,
+ loss taler_amount NOT NULL,
operation_specific_pub BYTEA NOT NULL CHECK
(LENGTH(operation_specific_pub)=32),
- suppressed BOOLEAN NOT NULL DEFAULT FALSE,
- PRIMARY KEY (operation, operation_specific_pub)
+ suppressed BOOLEAN NOT NULL DEFAULT FALSE
);
COMMENT ON TABLE auditor_bad_sig_losses
IS 'Report a (serious) inconsistency with losses due to bad signatures';
diff --git a/src/auditordb/0002-auditor_balances.sql
b/src/auditordb/0002-auditor_balances.sql
index 78ff8a414..e25c3049c 100644
--- a/src/auditordb/0002-auditor_balances.sql
+++ b/src/auditordb/0002-auditor_balances.sql
@@ -16,7 +16,7 @@
CREATE TABLE IF NOT EXISTS auditor_balances
(
- row_id BIGINT GENERATED BY DEFAULT AS IDENTITY,
+ row_id BIGINT GENERATED BY DEFAULT AS IDENTITY,
balance_key TEXT PRIMARY KEY NOT NULL,
balance_value taler_amount
diff --git a/src/auditordb/0002-auditor_closure_lags.sql
b/src/auditordb/0002-auditor_closure_lags.sql
index 93484f399..73743e8a1 100644
--- a/src/auditordb/0002-auditor_closure_lags.sql
+++ b/src/auditordb/0002-auditor_closure_lags.sql
@@ -14,14 +14,14 @@
-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
--
-SET search_path TO auditor;
CREATE TABLE IF NOT EXISTS auditor_closure_lags
(
row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE PRIMARY KEY,
- amount taler_amount,
- deadline BIGINT,
- wtid BYTEA,
- account BYTEA,
+ problem_row_id BIGINT NOT NULL,
+ amount taler_amount NOT NULL,
+ deadline BIGINT NOT NULL,
+ wtid BYTEA NOT NULL CHECK (LENGTH(wtid)=32),
+ account BYTEA NOT NULL,
suppressed BOOLEAN NOT NULL DEFAULT FALSE
);
COMMENT ON TABLE auditor_closure_lags
diff --git a/src/auditordb/0002-auditor_coin_inconsistency.sql
b/src/auditordb/0002-auditor_coin_inconsistency.sql
index ea5210d68..73ac1db13 100644
--- a/src/auditordb/0002-auditor_coin_inconsistency.sql
+++ b/src/auditordb/0002-auditor_coin_inconsistency.sql
@@ -14,17 +14,16 @@
-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
--
-SET search_path TO auditor;
+
CREATE TABLE IF NOT EXISTS auditor_coin_inconsistency
(
- row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE,
+ row_id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
operation TEXT NOT NULL,
- exchange_amount taler_amount,
- auditor_amount taler_amount,
+ exchange_amount taler_amount NOT NULL,
+ auditor_amount taler_amount NOT NULL,
coin_pub BYTEA NOT NULL CHECK (LENGTH(coin_pub)=32),
- profitable BOOLEAN,
- suppressed BOOLEAN NOT NULL DEFAULT FALSE,
- PRIMARY KEY (operation, coin_pub)
+ profitable BOOLEAN NOT NULL,
+ suppressed BOOLEAN NOT NULL DEFAULT FALSE
);
COMMENT ON TABLE auditor_coin_inconsistency
IS 'Report a (serious) inconsistency in the exchange''s database with
respect to calculations involving amounts';
diff --git
a/src/auditordb/0002-auditor_denomination_key_validity_withdraw_inconsistency.sql
b/src/auditordb/0002-auditor_denomination_key_validity_withdraw_inconsistency.sql
index 029bc90e0..6bde7400b 100644
---
a/src/auditordb/0002-auditor_denomination_key_validity_withdraw_inconsistency.sql
+++
b/src/auditordb/0002-auditor_denomination_key_validity_withdraw_inconsistency.sql
@@ -14,13 +14,13 @@
-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
--
-SET search_path TO auditor;
CREATE TABLE IF NOT EXISTS
auditor_denomination_key_validity_withdraw_inconsistency
(
row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE PRIMARY KEY,
- execution_date BIGINT,
- reserve_pub BYTEA,
- denompub_h BYTEA,
+ problem_row_id BIGINT NOT NULL,
+ execution_date BIGINT NOT NULL,
+ reserve_pub BYTEA NOT NULL CHECK (LENGTH(reserve_pub)=32),
+ denompub_h BYTEA NOT NULL CHECK (LENGTH(denompub_h)=64),
suppressed BOOLEAN NOT NULL DEFAULT FALSE
);
COMMENT ON TABLE auditor_denomination_key_validity_withdraw_inconsistency
diff --git a/src/auditordb/0002-auditor_denominations_without_sigs.sql
b/src/auditordb/0002-auditor_denominations_without_sigs.sql
index 94ea0a351..abd7d981f 100644
--- a/src/auditordb/0002-auditor_denominations_without_sigs.sql
+++ b/src/auditordb/0002-auditor_denominations_without_sigs.sql
@@ -14,13 +14,12 @@
-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
--
-SET search_path TO auditor;
CREATE TABLE IF NOT EXISTS auditor_denominations_without_sigs
(
row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE,
denompub_h BYTEA PRIMARY KEY,
- value taler_amount,
- start_time BIGINT,
+ value taler_amount NOT NULL,
+ start_time BIGINT NOT NULL,
end_time BIGINT,
suppressed BOOLEAN NOT NULL DEFAULT FALSE
);
diff --git a/src/auditordb/0002-auditor_emergency.sql
b/src/auditordb/0002-auditor_emergency.sql
index 5fcd3cd06..90f0ca8b8 100644
--- a/src/auditordb/0002-auditor_emergency.sql
+++ b/src/auditordb/0002-auditor_emergency.sql
@@ -1,5 +1,3 @@
-
-
--
-- This file is part of TALER
-- Copyright (C) 2014--2024 Taler Systems SA
@@ -16,16 +14,16 @@
-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
--
-SET search_path TO auditor;
CREATE TABLE IF NOT EXISTS auditor_emergency
(
row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE PRIMARY KEY,
denompub_h BYTEA CHECK (LENGTH(denompub_h)=64),
- denom_risk taler_amount,
- denom_loss taler_amount,
- deposit_start BIGINT,
- deposit_end BIGINT,
- value taler_amount
+ denom_risk taler_amount NOT NULL,
+ denom_loss taler_amount NOT NULL,
+ deposit_start BIGINT NOT NULL,
+ deposit_end BIGINT NOT NULL,
+ value taler_amount NOT NULL,
+ suppressed BOOLEAN NOT NULL DEFAULT FALSE
);
COMMENT ON TABLE auditor_emergency
IS 'Report an emergency denomination.';
diff --git a/src/auditordb/0002-auditor_emergency_by_count.sql
b/src/auditordb/0002-auditor_emergency_by_count.sql
index ff8ba405a..6d2be80aa 100644
--- a/src/auditordb/0002-auditor_emergency_by_count.sql
+++ b/src/auditordb/0002-auditor_emergency_by_count.sql
@@ -14,17 +14,16 @@
-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
--
-SET search_path TO auditor;
CREATE TABLE IF NOT EXISTS auditor_emergency_by_count
(
row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE PRIMARY KEY,
- denompub_h BYTEA,
- num_issued BIGINT,
- num_known BIGINT,
- risk taler_amount,
- start BIGINT,
- deposit_end BIGINT,
- value taler_amount,
+ denompub_h BYTEA NOT NULL CHECK (LENGTH(denompub_h)=64),
+ num_issued BIGINT NOT NULL,
+ num_known BIGINT NOT NULL,
+ risk taler_amount NOT NULL,
+ start BIGINT NOT NULL,
+ deposit_end BIGINT NOT NULL,
+ value taler_amount NOT NULL,
suppressed BOOLEAN NOT NULL DEFAULT FALSE
);
COMMENT ON TABLE auditor_emergency_by_count
diff --git a/src/auditordb/0002-auditor_fee_time_inconsistency.sql
b/src/auditordb/0002-auditor_fee_time_inconsistency.sql
index 1cea6caa6..b8cf3c212 100644
--- a/src/auditordb/0002-auditor_fee_time_inconsistency.sql
+++ b/src/auditordb/0002-auditor_fee_time_inconsistency.sql
@@ -14,13 +14,13 @@
-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
--
-SET search_path TO auditor;
CREATE TABLE IF NOT EXISTS auditor_fee_time_inconsistency
(
row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE PRIMARY KEY,
- type BYTEA,
- time BIGINT,
- diagnostic BYTEA,
+ problem_row_id BIGINT NOT NULL,
+ fee_type BYTEA NOT NULL,
+ fee_time BIGINT NOT NULL,
+ diagnostic BYTEA NOT NULL,
suppressed BOOLEAN NOT NULL DEFAULT FALSE
);
COMMENT ON TABLE auditor_fee_time_inconsistency
diff --git a/src/auditordb/0002-auditor_historic_denomination_revenue.sql
b/src/auditordb/0002-auditor_historic_denomination_revenue.sql
index d711ac7fc..a902fe456 100644
--- a/src/auditordb/0002-auditor_historic_denomination_revenue.sql
+++ b/src/auditordb/0002-auditor_historic_denomination_revenue.sql
@@ -15,8 +15,8 @@
--
CREATE TABLE auditor_historic_denomination_revenue
- (row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE,
- denom_pub_hash BYTEA PRIMARY KEY CHECK (LENGTH(denom_pub_hash)=64)
+ (row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE
+ ,denom_pub_hash BYTEA PRIMARY KEY CHECK (LENGTH(denom_pub_hash)=64)
,revenue_timestamp BIGINT NOT NULL
,revenue_balance taler_amount NOT NULL
,loss_balance taler_amount NOT NULL
diff --git a/src/auditordb/0002-auditor_historic_reserve_summary.sql
b/src/auditordb/0002-auditor_historic_reserve_summary.sql
index 0dc68d594..742a59f32 100644
--- a/src/auditordb/0002-auditor_historic_reserve_summary.sql
+++ b/src/auditordb/0002-auditor_historic_reserve_summary.sql
@@ -14,16 +14,13 @@
-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
--
-SET search_path TO auditor;
CREATE TABLE IF NOT EXISTS auditor_historic_reserve_summary
(
row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE,
- start_date BIGINT,
+ start_date BIGINT NOT NULL,
end_date BIGINT NOT NULL,
reserve_profits taler_amount NOT NULL,
PRIMARY KEY (start_date, end_date)
-
-
);
COMMENT ON TABLE auditor_historic_reserve_summary
IS 'historic profits from reserves; we eventually GC
auditor_historic_reserve_revenue, and then store the totals in here (by time
intervals).';
diff --git a/src/auditordb/0002-auditor_misattribution_in_inconsistency.sql
b/src/auditordb/0002-auditor_misattribution_in_inconsistency.sql
index 48050412d..a351f7dfd 100644
--- a/src/auditordb/0002-auditor_misattribution_in_inconsistency.sql
+++ b/src/auditordb/0002-auditor_misattribution_in_inconsistency.sql
@@ -14,13 +14,13 @@
-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
--
-SET search_path TO auditor;
+
CREATE TABLE IF NOT EXISTS auditor_misattribution_in_inconsistency
(
row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE PRIMARY KEY,
- amount taler_amount,
- bank_row BIGINT,
- reserve_pub BYTEA,
+ amount taler_amount NOT NULL,
+ bank_row BIGINT NOT NULL,
+ reserve_pub BYTEA NOT NULL CHECK (LENGTH(reserve_pub)=32),
suppressed BOOLEAN NOT NULL DEFAULT FALSE
);
COMMENT ON TABLE auditor_misattribution_in_inconsistency
diff --git a/src/auditordb/0002-auditor_pending_deposits.sql
b/src/auditordb/0002-auditor_pending_deposits.sql
index 5cef7bf8c..083c81fb5 100644
--- a/src/auditordb/0002-auditor_pending_deposits.sql
+++ b/src/auditordb/0002-auditor_pending_deposits.sql
@@ -17,9 +17,9 @@
CREATE TABLE IF NOT EXISTS auditor_pending_deposits
(
row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE PRIMARY KEY,
- total_amount taler_amount,
- wire_target_h_payto BYTEA,
- batch_deposit_serial_id BIGINT,
- deadline BIGINT,
+ total_amount taler_amount NOT NULL,
+ wire_target_payto TEXT NOT NULL,
+ batch_deposit_serial_id BIGINT NOT NULL,
+ deadline BIGINT NOT NULL,
suppressed BOOLEAN NOT NULL DEFAULT FALSE
);
diff --git a/src/auditordb/0002-auditor_purse_not_closed_inconsistencies.sql
b/src/auditordb/0002-auditor_purse_not_closed_inconsistencies.sql
index e7f6078f0..79a6ec432 100644
--- a/src/auditordb/0002-auditor_purse_not_closed_inconsistencies.sql
+++ b/src/auditordb/0002-auditor_purse_not_closed_inconsistencies.sql
@@ -14,13 +14,13 @@
-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
--
-SET search_path TO auditor;
+
CREATE TABLE IF NOT EXISTS auditor_purse_not_closed_inconsistencies
(
- row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE ,
- purse_pub BYTEA PRIMARY KEY,
- amount taler_amount,
- expiration_date BIGINT,
+ row_id BIGINT GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
+ purse_pub BYTEA NOT NULL CHECK (LENGTH(purse_pub)=32),
+ amount taler_amount NOT NULL,
+ expiration_date BIGINT NOT NULL,
suppressed BOOLEAN NOT NULL DEFAULT FALSE
);
COMMENT ON TABLE auditor_purse_not_closed_inconsistencies
diff --git a/src/auditordb/0002-auditor_purses.sql
b/src/auditordb/0002-auditor_purses.sql
index 9cfe2b095..c9c108dc9 100644
--- a/src/auditordb/0002-auditor_purses.sql
+++ b/src/auditordb/0002-auditor_purses.sql
@@ -1,6 +1,6 @@
--
-- This file is part of TALER
--- Copyright (C) 2014--2022 Taler Systems SA
+-- Copyright (C) 2014--2024 Taler Systems SA
--
-- TALER is free software; you can redistribute it and/or modify it under the
-- terms of the GNU General Public License as published by the Free Software
@@ -15,8 +15,8 @@
--
CREATE TABLE auditor_purses
- (auditor_purses_rowid BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE
- ,purse_pub BYTEA PRIMARY KEY CHECK(LENGTH(purse_pub)=32)
+ (auditor_purses_rowid BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE NOT NULL
+ ,purse_pub BYTEA PRIMARY KEY CHECK(LENGTH(purse_pub)=32) NOT NULL
,balance taler_amount NOT NULL DEFAULT(0,0)
,target taler_amount NOT NULL
,expiration_date BIGINT NOT NULL
diff --git a/src/auditordb/0002-auditor_refreshes_hanging.sql
b/src/auditordb/0002-auditor_refreshes_hanging.sql
index c42d17c6c..ebe3368ca 100644
--- a/src/auditordb/0002-auditor_refreshes_hanging.sql
+++ b/src/auditordb/0002-auditor_refreshes_hanging.sql
@@ -14,12 +14,12 @@
-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
--
-SET search_path TO auditor;
+
CREATE TABLE IF NOT EXISTS auditor_refreshes_hanging
(
- row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE,
- amount taler_amount,
- coin_pub BYTEA PRIMARY KEY,
+ row_id BIGINT NOT NULL GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
+ problem_row_id BIGINT NOT NULL,
+ amount taler_amount NOT NULL,
suppressed BOOLEAN NOT NULL DEFAULT FALSE
);
COMMENT ON TABLE auditor_refreshes_hanging
diff --git
a/src/auditordb/0002-auditor_reserve_balance_insufficient_inconsistency.sql
b/src/auditordb/0002-auditor_reserve_balance_insufficient_inconsistency.sql
index 533f35681..83e93a4e7 100644
--- a/src/auditordb/0002-auditor_reserve_balance_insufficient_inconsistency.sql
+++ b/src/auditordb/0002-auditor_reserve_balance_insufficient_inconsistency.sql
@@ -14,13 +14,12 @@
-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
--
-SET search_path TO auditor;
CREATE TABLE IF NOT EXISTS auditor_reserve_balance_insufficient_inconsistency
(
row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE PRIMARY KEY,
reserve_pub BYTEA NOT NULL CHECK (LENGTH(reserve_pub)=32),
- inconsistency_gain BOOLEAN,
- inconsistency_amount taler_amount,
+ inconsistency_gain BOOLEAN NOT NULL,
+ inconsistency_amount taler_amount NOT NULL,
suppressed BOOLEAN NOT NULL DEFAULT FALSE
);
COMMENT ON TABLE auditor_reserve_balance_insufficient_inconsistency
diff --git
a/src/auditordb/0002-auditor_reserve_balance_summary_wrong_inconsistency.sql
b/src/auditordb/0002-auditor_reserve_balance_summary_wrong_inconsistency.sql
index 12618d101..7679f93f0 100644
--- a/src/auditordb/0002-auditor_reserve_balance_summary_wrong_inconsistency.sql
+++ b/src/auditordb/0002-auditor_reserve_balance_summary_wrong_inconsistency.sql
@@ -14,13 +14,13 @@
-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
--
-SET search_path TO auditor;
+
CREATE TABLE IF NOT EXISTS auditor_reserve_balance_summary_wrong_inconsistency
(
row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE PRIMARY KEY,
- reserve_pub BYTEA,
- exchange_amount taler_amount,
- auditor_amount taler_amount,
+ reserve_pub BYTEA NOT NULL CHECK (LENGTH(reserve_pub)=32),
+ exchange_amount taler_amount NOT NULL,
+ auditor_amount taler_amount NOT NULL,
suppressed BOOLEAN NOT NULL DEFAULT FALSE
);
COMMENT ON TABLE auditor_reserve_balance_summary_wrong_inconsistency
diff --git a/src/auditordb/0002-auditor_reserve_in_inconsistency.sql
b/src/auditordb/0002-auditor_reserve_in_inconsistency.sql
index 088aab597..5e14f0189 100644
--- a/src/auditordb/0002-auditor_reserve_in_inconsistency.sql
+++ b/src/auditordb/0002-auditor_reserve_in_inconsistency.sql
@@ -21,7 +21,7 @@ CREATE TABLE IF NOT EXISTS auditor_reserve_in_inconsistency
bank_row_id INT8 NOT NULL,
amount_exchange_expected taler_amount NOT NULL,
amount_wired taler_amount NOT NULL,
- reserve_pub BYTEA NOT NULL,
+ reserve_pub BYTEA NOT NULL CHECK (LENGTH(reserve_pub)=32),
timestamp BIGINT NOT NULL,
account BYTEA NOT NULL,
diagnostic BYTEA NOT NULL,
diff --git a/src/auditordb/0002-auditor_reserve_not_closed_inconsistency.sql
b/src/auditordb/0002-auditor_reserve_not_closed_inconsistency.sql
index ef0381bd1..82d378a44 100644
--- a/src/auditordb/0002-auditor_reserve_not_closed_inconsistency.sql
+++ b/src/auditordb/0002-auditor_reserve_not_closed_inconsistency.sql
@@ -14,12 +14,11 @@
-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
--
-SET search_path TO auditor;
CREATE TABLE IF NOT EXISTS auditor_reserve_not_closed_inconsistency
(
row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE ,
- reserve_pub BYTEA PRIMARY KEY,
- balance taler_amount,
+ reserve_pub BYTEA PRIMARY KEY NOT NULL CHECK (LENGTH(reserve_pub)=32),
+ balance taler_amount NOT NULL,
expiration_time BIGINT,
diagnostic BYTEA,
suppressed BOOLEAN NOT NULL DEFAULT FALSE
diff --git a/src/auditordb/0002-auditor_row_inconsistency.sql
b/src/auditordb/0002-auditor_row_inconsistency.sql
index 6fae517bf..c033814e4 100644
--- a/src/auditordb/0002-auditor_row_inconsistency.sql
+++ b/src/auditordb/0002-auditor_row_inconsistency.sql
@@ -14,7 +14,7 @@
-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
--
-SET search_path TO auditor;
+
CREATE TABLE IF NOT EXISTS auditor_row_inconsistency
(
row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE PRIMARY KEY,
diff --git a/src/auditordb/0002-auditor_wire_format_inconsistency.sql
b/src/auditordb/0002-auditor_wire_format_inconsistency.sql
index dc95f7956..c11d8e63a 100644
--- a/src/auditordb/0002-auditor_wire_format_inconsistency.sql
+++ b/src/auditordb/0002-auditor_wire_format_inconsistency.sql
@@ -14,13 +14,13 @@
-- TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
--
-SET search_path TO auditor;
+
CREATE TABLE IF NOT EXISTS auditor_wire_format_inconsistency
(
row_id BIGINT GENERATED BY DEFAULT AS IDENTITY UNIQUE PRIMARY KEY,
- amount taler_amount,
- wire_offset BIGINT,
- diagnostic BYTEA,
+ amount taler_amount NOT NULL,
+ wire_offset BIGINT NOT NULL,
+ diagnostic BYTEA NOT NULL,
suppressed BOOLEAN NOT NULL DEFAULT FALSE
);
COMMENT ON TABLE auditor_wire_format_inconsistency
diff --git a/src/auditordb/pg_helper.c b/src/auditordb/pg_helper.c
index f022d8e57..242b85efd 100644
--- a/src/auditordb/pg_helper.c
+++ b/src/auditordb/pg_helper.c
@@ -22,6 +22,7 @@
#include "platform.h"
#include "taler_auditordb_plugin.h"
#include <ltdl.h>
+#include "pg_helper.h"
const char *
diff --git a/src/auditordb/pg_helper.h b/src/auditordb/pg_helper.h
index 3c22dd424..9f354c2c1 100644
--- a/src/auditordb/pg_helper.h
+++ b/src/auditordb/pg_helper.h
@@ -75,27 +75,27 @@ struct PostgresClosure
* @param name name to prepare the statement under
* @param sql actual SQL text
*/
-#define PREPARE(pg,name,sql) \
+#define PREPARE(pg,name,sql) \
do { \
static struct { \
unsigned long long cnt; \
struct PostgresClosure *pg; \
- } preps[2]; /* 2 ctrs for taler-auditor-sync*/ \
- unsigned int off = 0; \
- \
- while ( (NULL != preps[off].pg) && \
- (pg != preps[off].pg) && \
- (off < sizeof(preps) / sizeof(*preps)) ) \
- off++; \
- GNUNET_assert (off < \
- sizeof(preps) / sizeof(*preps)); \
- if (preps[off].cnt < pg->prep_gen) \
+ } preps_[2]; /* 2 ctrs for taler-auditor-sync*/ \
+ unsigned int off_ = 0; \
+ \
+ while ( (NULL != preps_[off_].pg) && \
+ (pg != preps_[off_].pg) && \
+ (off_ < sizeof(preps_) / sizeof(*preps_)) ) \
+ off_++; \
+ GNUNET_assert (off_ < \
+ sizeof(preps_) / sizeof(*preps_)); \
+ if (preps_[off_].cnt < pg->prep_gen) \
{ \
struct GNUNET_PQ_PreparedStatement ps[] = { \
GNUNET_PQ_make_prepare (name, sql), \
GNUNET_PQ_PREPARED_STATEMENT_END \
}; \
- \
+ \
if (GNUNET_OK != \
GNUNET_PQ_prepare_statements (pg->conn, \
ps)) \
@@ -103,8 +103,8 @@ struct PostgresClosure
GNUNET_break (0); \
return GNUNET_DB_STATUS_HARD_ERROR; \
} \
- preps[off].pg = pg; \
- preps[off].cnt = pg->prep_gen; \
+ preps_[off_].pg = pg; \
+ preps_[off_].cnt = pg->prep_gen; \
} \
} while (0)
diff --git a/src/auditordb/pg_insert_amount_arithmetic_inconsistency.c
b/src/auditordb/pg_insert_amount_arithmetic_inconsistency.c
index afc84e5ba..4a58c5985 100644
--- a/src/auditordb/pg_insert_amount_arithmetic_inconsistency.c
+++ b/src/auditordb/pg_insert_amount_arithmetic_inconsistency.c
@@ -13,12 +13,9 @@
You should have received a copy of the GNU General Public License along with
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-
#include "platform.h"
#include "taler_pq_lib.h"
-
#include "pg_helper.h"
-
#include "pg_insert_amount_arithmetic_inconsistency.h"
enum GNUNET_DB_QueryStatus
@@ -28,12 +25,13 @@ TAH_PG_insert_amount_arithmetic_inconsistency (
{
struct PostgresClosure *pg = cls;
struct GNUNET_PQ_QueryParam params[] = {
-
GNUNET_PQ_query_param_string (dc->operation),
- TALER_PQ_query_param_amount (pg->conn, &dc->exchange_amount),
- TALER_PQ_query_param_amount (pg->conn, &dc->auditor_amount),
+ GNUNET_PQ_query_param_uint64 (&dc->problem_row_id),
+ TALER_PQ_query_param_amount (pg->conn,
+ &dc->exchange_amount),
+ TALER_PQ_query_param_amount (pg->conn,
+ &dc->auditor_amount),
GNUNET_PQ_query_param_bool (dc->profitable),
-
GNUNET_PQ_query_param_end
};
@@ -41,15 +39,11 @@ TAH_PG_insert_amount_arithmetic_inconsistency (
"auditor_amount_arithmetic_inconsistency_insert",
"INSERT INTO auditor_amount_arithmetic_inconsistency "
"(operation"
+ ",problem_row_id"
",exchange_amount"
",auditor_amount"
",profitable"
- ") VALUES ($1,$2,$3,$4)"
- " ON CONFLICT (operation) DO UPDATE"
- " SET exchange_amount = excluded.exchange_amount,"
- " auditor_amount = excluded.auditor_amount,"
- " profitable = excluded.profitable,"
- " suppressed = false;"
+ ") VALUES ($1,$2,$3,$4,$5);"
);
return GNUNET_PQ_eval_prepared_non_select (pg->conn,
"auditor_amount_arithmetic_inconsistency_insert",
diff --git a/src/auditordb/pg_insert_auditor_closure_lags.c
b/src/auditordb/pg_insert_auditor_closure_lags.c
index e858f5ac7..b437a5d7f 100644
--- a/src/auditordb/pg_insert_auditor_closure_lags.c
+++ b/src/auditordb/pg_insert_auditor_closure_lags.c
@@ -13,14 +13,12 @@
You should have received a copy of the GNU General Public License along with
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-
-
#include "platform.h"
#include "taler_pq_lib.h"
#include "pg_helper.h"
-
#include "pg_insert_auditor_closure_lags.h"
+
enum GNUNET_DB_QueryStatus
TAH_PG_insert_auditor_closure_lags (
void *cls,
@@ -28,12 +26,12 @@ TAH_PG_insert_auditor_closure_lags (
{
struct PostgresClosure *pg = cls;
struct GNUNET_PQ_QueryParam params[] = {
-
- TALER_PQ_query_param_amount (pg->conn, &dc->amount),
+ TALER_PQ_query_param_amount (pg->conn,
+ &dc->amount),
+ GNUNET_PQ_query_param_uint64 (&dc->problem_row_id),
GNUNET_PQ_query_param_absolute_time (&dc->deadline),
GNUNET_PQ_query_param_auto_from_type (&dc->wtid),
GNUNET_PQ_query_param_string (dc->account),
-
GNUNET_PQ_query_param_end
};
@@ -41,10 +39,11 @@ TAH_PG_insert_auditor_closure_lags (
"auditor_closure_lags_insert",
"INSERT INTO auditor_closure_lags "
"(amount"
+ ",problem_row_id"
",deadline"
",wtid"
",account"
- ") VALUES ($1,$2,$3,$4);");
+ ") VALUES ($1,$2,$3,$4,$5);");
return GNUNET_PQ_eval_prepared_non_select (pg->conn,
"auditor_closure_lags_insert",
params);
diff --git a/src/auditordb/pg_insert_bad_sig_losses.c
b/src/auditordb/pg_insert_bad_sig_losses.c
index 88ce7d2aa..7cf7cf5cc 100644
--- a/src/auditordb/pg_insert_bad_sig_losses.c
+++ b/src/auditordb/pg_insert_bad_sig_losses.c
@@ -13,14 +13,12 @@
You should have received a copy of the GNU General Public License along with
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-
-
#include "platform.h"
#include "taler_pq_lib.h"
#include "pg_helper.h"
-
#include "pg_insert_bad_sig_losses.h"
+
enum GNUNET_DB_QueryStatus
TAH_PG_insert_bad_sig_losses (
void *cls,
@@ -28,30 +26,22 @@ TAH_PG_insert_bad_sig_losses (
{
struct PostgresClosure *pg = cls;
struct GNUNET_PQ_QueryParam params[] = {
-
GNUNET_PQ_query_param_string (dc->operation),
- TALER_PQ_query_param_amount (pg->conn, &dc->loss),
+ GNUNET_PQ_query_param_uint64 (&dc->problem_row_id),
+ TALER_PQ_query_param_amount (pg->conn,
+ &dc->loss),
GNUNET_PQ_query_param_auto_from_type (&dc->operation_specific_pub),
-
GNUNET_PQ_query_param_end
};
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, "--storing new bsl\n");
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, "--operation %s\n", dc->operation);
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, "--loss %s\n", TALER_amount_to_string (
- &dc->loss));
- GNUNET_log (GNUNET_ERROR_TYPE_INFO, "--operation_specific_pub %s\n",
- TALER_B2S (&dc->operation_specific_pub));
PREPARE (pg,
"auditor_bad_sig_losses_insert",
"INSERT INTO auditor_bad_sig_losses "
"(operation"
+ ",problem_row_id"
",loss"
",operation_specific_pub"
- ") VALUES ($1,$2,$3)"
- " ON CONFLICT (operation, operation_specific_pub) DO UPDATE"
- " SET loss = excluded.loss,"
- " suppressed = false;"
+ ") VALUES ($1,$2,$3,$4);"
);
return GNUNET_PQ_eval_prepared_non_select (pg->conn,
"auditor_bad_sig_losses_insert",
diff --git a/src/auditordb/pg_insert_coin_inconsistency.c
b/src/auditordb/pg_insert_coin_inconsistency.c
index 32c57a3c8..70d105175 100644
--- a/src/auditordb/pg_insert_coin_inconsistency.c
+++ b/src/auditordb/pg_insert_coin_inconsistency.c
@@ -13,13 +13,9 @@
You should have received a copy of the GNU General Public License along with
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-
-
#include "platform.h"
#include "taler_pq_lib.h"
-
#include "pg_helper.h"
-
#include "pg_insert_coin_inconsistency.h"
@@ -30,7 +26,6 @@ TAH_PG_insert_coin_inconsistency (
{
struct PostgresClosure *pg = cls;
struct GNUNET_PQ_QueryParam params[] = {
-
GNUNET_PQ_query_param_string (dc->operation),
TALER_PQ_query_param_amount (pg->conn,
&dc->exchange_amount),
@@ -38,7 +33,6 @@ TAH_PG_insert_coin_inconsistency (
&dc->auditor_amount),
GNUNET_PQ_query_param_auto_from_type (&dc->coin_pub),
GNUNET_PQ_query_param_bool (dc->profitable),
-
GNUNET_PQ_query_param_end
};
@@ -46,16 +40,12 @@ TAH_PG_insert_coin_inconsistency (
"auditor_coin_inconsistency_insert",
"INSERT INTO auditor_coin_inconsistency "
"(operation"
+ ",problem_row_id"
",exchange_amount"
",auditor_amount"
",coin_pub"
",profitable"
- ") VALUES ($1,$2,$3,$4,$5)"
- " ON CONFLICT (operation, coin_pub) DO UPDATE"
- " SET exchange_amount = excluded.exchange_amount,"
- " auditor_amount = excluded.auditor_amount,"
- " profitable = excluded.profitable,"
- " suppressed = false;"
+ ") VALUES ($1,$2,$3,$4,$5,$6)"
);
return GNUNET_PQ_eval_prepared_non_select (pg->conn,
"auditor_coin_inconsistency_insert",
diff --git
a/src/auditordb/pg_insert_denomination_key_validity_withdraw_inconsistency.c
b/src/auditordb/pg_insert_denomination_key_validity_withdraw_inconsistency.c
index 2d0cb3cf5..9755739f3 100644
--- a/src/auditordb/pg_insert_denomination_key_validity_withdraw_inconsistency.c
+++ b/src/auditordb/pg_insert_denomination_key_validity_withdraw_inconsistency.c
@@ -13,14 +13,12 @@
You should have received a copy of the GNU General Public License along with
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-
-
#include "platform.h"
#include "taler_pq_lib.h"
#include "pg_helper.h"
-
#include "pg_insert_denomination_key_validity_withdraw_inconsistency.h"
+
enum GNUNET_DB_QueryStatus
TAH_PG_insert_denomination_key_validity_withdraw_inconsistency (
void *cls,
@@ -28,8 +26,8 @@
TAH_PG_insert_denomination_key_validity_withdraw_inconsistency (
{
struct PostgresClosure *pg = cls;
struct GNUNET_PQ_QueryParam params[] = {
-
GNUNET_PQ_query_param_absolute_time (&dc->execution_date),
+ GNUNET_PQ_query_param_uint64 (&dc->problem_row_id),
GNUNET_PQ_query_param_auto_from_type (&dc->reserve_pub),
GNUNET_PQ_query_param_auto_from_type (&dc->denompub_h),
@@ -40,9 +38,10 @@
TAH_PG_insert_denomination_key_validity_withdraw_inconsistency (
"auditor_denomination_key_validity_withdraw_inconsistency_insert",
"INSERT INTO
auditor_denomination_key_validity_withdraw_inconsistency "
"(execution_date"
+ ",problem_row_id"
",reserve_pub"
",denompub_h"
- ") VALUES ($1,$2,$3);");
+ ") VALUES ($1,$2,$3,$4);");
return GNUNET_PQ_eval_prepared_non_select (pg->conn,
"auditor_denomination_key_validity_withdraw_inconsistency_insert",
params);
diff --git a/src/auditordb/pg_insert_denominations_without_sigs.c
b/src/auditordb/pg_insert_denominations_without_sigs.c
index f06034602..d8aacbd0b 100644
--- a/src/auditordb/pg_insert_denominations_without_sigs.c
+++ b/src/auditordb/pg_insert_denominations_without_sigs.c
@@ -13,14 +13,12 @@
You should have received a copy of the GNU General Public License along with
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-
-
#include "platform.h"
#include "taler_pq_lib.h"
#include "pg_helper.h"
-
#include "pg_insert_denominations_without_sigs.h"
+
enum GNUNET_DB_QueryStatus
TAH_PG_insert_denominations_without_sigs (
void *cls,
@@ -28,13 +26,10 @@ TAH_PG_insert_denominations_without_sigs (
{
struct PostgresClosure *pg = cls;
struct GNUNET_PQ_QueryParam params[] = {
-
GNUNET_PQ_query_param_auto_from_type (&dc->denompub_h),
TALER_PQ_query_param_amount (pg->conn, &dc->value),
GNUNET_PQ_query_param_absolute_time (&dc->start_time),
GNUNET_PQ_query_param_absolute_time (&dc->end_time),
-
-
GNUNET_PQ_query_param_end
};
diff --git a/src/auditordb/pg_insert_emergency.c
b/src/auditordb/pg_insert_emergency.c
index a966be43b..6af7c527f 100644
--- a/src/auditordb/pg_insert_emergency.c
+++ b/src/auditordb/pg_insert_emergency.c
@@ -13,14 +13,12 @@
You should have received a copy of the GNU General Public License along with
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-
-
#include "platform.h"
#include "taler_pq_lib.h"
#include "pg_helper.h"
-
#include "pg_insert_emergency.h"
+
enum GNUNET_DB_QueryStatus
TAH_PG_insert_emergency (
void *cls,
@@ -28,14 +26,15 @@ TAH_PG_insert_emergency (
{
struct PostgresClosure *pg = cls;
struct GNUNET_PQ_QueryParam params[] = {
-
GNUNET_PQ_query_param_auto_from_type (&dc->denompub_h),
- TALER_PQ_query_param_amount (pg->conn, &dc->denom_risk),
- TALER_PQ_query_param_amount (pg->conn, &dc->denom_loss),
+ TALER_PQ_query_param_amount (pg->conn,
+ &dc->denom_risk),
+ TALER_PQ_query_param_amount (pg->conn,
+ &dc->denom_loss),
GNUNET_PQ_query_param_absolute_time (&dc->deposit_start),
GNUNET_PQ_query_param_absolute_time (&dc->deposit_end),
- TALER_PQ_query_param_amount (pg->conn,&dc->value),
-
+ TALER_PQ_query_param_amount (pg->conn,
+ &dc->value),
GNUNET_PQ_query_param_end
};
diff --git a/src/auditordb/pg_insert_fee_time_inconsistency.c
b/src/auditordb/pg_insert_fee_time_inconsistency.c
index ad1a8b25f..852e58018 100644
--- a/src/auditordb/pg_insert_fee_time_inconsistency.c
+++ b/src/auditordb/pg_insert_fee_time_inconsistency.c
@@ -13,14 +13,12 @@
You should have received a copy of the GNU General Public License along with
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-
-
#include "platform.h"
#include "taler_pq_lib.h"
#include "pg_helper.h"
-
#include "pg_insert_fee_time_inconsistency.h"
+
enum GNUNET_DB_QueryStatus
TAH_PG_insert_fee_time_inconsistency (
void *cls,
@@ -28,12 +26,10 @@ TAH_PG_insert_fee_time_inconsistency (
{
struct PostgresClosure *pg = cls;
struct GNUNET_PQ_QueryParam params[] = {
-
-
GNUNET_PQ_query_param_string (dc->type),
+ GNUNET_PQ_query_param_uint64 (&dc->problem_row_id),
GNUNET_PQ_query_param_absolute_time (&dc->time),
GNUNET_PQ_query_param_string (dc->diagnostic),
-
GNUNET_PQ_query_param_end
};
@@ -41,9 +37,10 @@ TAH_PG_insert_fee_time_inconsistency (
"auditor_fee_time_inconsistency_insert",
"INSERT INTO auditor_fee_time_inconsistency "
"(type"
+ ",problem_row_id"
",time"
",diagnostic"
- ") VALUES ($1,$2,$3);");
+ ") VALUES ($1,$2,$3,$4);");
return GNUNET_PQ_eval_prepared_non_select (pg->conn,
"auditor_fee_time_inconsistency_insert",
params);
diff --git a/src/auditordb/pg_insert_misattribution_in_inconsistency.c
b/src/auditordb/pg_insert_misattribution_in_inconsistency.c
index c557160da..e1641c61c 100644
--- a/src/auditordb/pg_insert_misattribution_in_inconsistency.c
+++ b/src/auditordb/pg_insert_misattribution_in_inconsistency.c
@@ -18,6 +18,7 @@
#include "pg_helper.h"
#include "pg_insert_misattribution_in_inconsistency.h"
+
enum GNUNET_DB_QueryStatus
TAH_PG_insert_misattribution_in_inconsistency (
void *cls,
diff --git a/src/auditordb/pg_insert_purse_not_closed_inconsistencies.c
b/src/auditordb/pg_insert_purse_not_closed_inconsistencies.c
index 7ae2dc7d8..ff8100376 100644
--- a/src/auditordb/pg_insert_purse_not_closed_inconsistencies.c
+++ b/src/auditordb/pg_insert_purse_not_closed_inconsistencies.c
@@ -13,14 +13,12 @@
You should have received a copy of the GNU General Public License along with
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-
-
#include "platform.h"
#include "taler_pq_lib.h"
#include "pg_helper.h"
-
#include "pg_insert_purse_not_closed_inconsistencies.h"
+
enum GNUNET_DB_QueryStatus
TAH_PG_insert_purse_not_closed_inconsistencies (
void *cls,
@@ -28,11 +26,10 @@ TAH_PG_insert_purse_not_closed_inconsistencies (
{
struct PostgresClosure *pg = cls;
struct GNUNET_PQ_QueryParam params[] = {
-
GNUNET_PQ_query_param_auto_from_type (&dc->purse_pub),
- TALER_PQ_query_param_amount (pg->conn, &dc->amount),
+ TALER_PQ_query_param_amount (pg->conn,
+ &dc->amount),
GNUNET_PQ_query_param_absolute_time (&dc->expiration_date),
-
GNUNET_PQ_query_param_end
};
@@ -43,10 +40,6 @@ TAH_PG_insert_purse_not_closed_inconsistencies (
",amount"
",expiration_date"
") VALUES ($1,$2,$3)"
- " ON CONFLICT (purse_pub) DO UPDATE"
- " SET amount = excluded.amount,"
- " expiration_date = excluded.expiration_date,"
- " suppressed = false;"
);
return GNUNET_PQ_eval_prepared_non_select (pg->conn,
"auditor_purse_not_closed_inconsistencies_insert",
diff --git a/src/auditordb/pg_insert_refreshes_hanging.c
b/src/auditordb/pg_insert_refreshes_hanging.c
index 5a7fe018c..fead922cf 100644
--- a/src/auditordb/pg_insert_refreshes_hanging.c
+++ b/src/auditordb/pg_insert_refreshes_hanging.c
@@ -13,14 +13,12 @@
You should have received a copy of the GNU General Public License along with
TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
*/
-
-
#include "platform.h"
#include "taler_pq_lib.h"
#include "pg_helper.h"
-
#include "pg_insert_refreshes_hanging.h"
+
enum GNUNET_DB_QueryStatus
TAH_PG_insert_refreshes_hanging (
void *cls,
@@ -28,10 +26,10 @@ TAH_PG_insert_refreshes_hanging (
{
struct PostgresClosure *pg = cls;
struct GNUNET_PQ_QueryParam params[] = {
-
- TALER_PQ_query_param_amount (pg->conn, &dc->amount),
+ TALER_PQ_query_param_amount (pg->conn,
+ &dc->amount),
+ GNUNET_PQ_query_param_uint64 (&dc->problem_row_id),
GNUNET_PQ_query_param_auto_from_type (&dc->coin_pub),
-
GNUNET_PQ_query_param_end
};
@@ -39,11 +37,9 @@ TAH_PG_insert_refreshes_hanging (
"auditor_refreshes_hanging_insert",
"INSERT INTO auditor_refreshes_hanging "
"(amount"
+ ",problem_row_id"
",coin_pub"
- ") VALUES ($1,$2)"
- " ON CONFLICT (coin_pub) DO UPDATE"
- " SET amount = excluded.amount,"
- " suppressed = false;"
+ ") VALUES ($1,$2);"
);
return GNUNET_PQ_eval_prepared_non_select (pg->conn,
"auditor_refreshes_hanging_insert",
diff --git a/src/auditordb/pg_insert_row_inconsistency.c
b/src/auditordb/pg_insert_row_inconsistency.c
index 8ab92dbb7..f5cc630f2 100644
--- a/src/auditordb/pg_insert_row_inconsistency.c
+++ b/src/auditordb/pg_insert_row_inconsistency.c
@@ -19,6 +19,7 @@
#include "pg_helper.h"
#include "pg_insert_row_inconsistency.h"
+
enum GNUNET_DB_QueryStatus
TAH_PG_insert_row_inconsistency (
void *cls,
diff --git a/src/auditordb/pg_insert_wire_format_inconsistency.c
b/src/auditordb/pg_insert_wire_format_inconsistency.c
index 73fe677b4..a824ae76d 100644
--- a/src/auditordb/pg_insert_wire_format_inconsistency.c
+++ b/src/auditordb/pg_insert_wire_format_inconsistency.c
@@ -26,8 +26,8 @@ TAH_PG_insert_wire_format_inconsistency (
{
struct PostgresClosure *pg = cls;
struct GNUNET_PQ_QueryParam params[] = {
-
- TALER_PQ_query_param_amount (pg->conn, &dc->amount),
+ TALER_PQ_query_param_amount (pg->conn,
+ &dc->amount),
GNUNET_PQ_query_param_uint64 (&dc->wire_offset),
GNUNET_PQ_query_param_auto_from_type (&dc->diagnostic),
GNUNET_PQ_query_param_end
@@ -36,11 +36,10 @@ TAH_PG_insert_wire_format_inconsistency (
PREPARE (pg,
"auditor_wire_format_inconsistency_insert",
"INSERT INTO auditor_wire_format_inconsistency "
- "(row_id,"
- " amount,"
+ "(amount,"
" wire_offset,"
" diagnostic"
- ") VALUES ($1,$2,$3,$4);"
+ ") VALUES ($1,$2,$3);"
);
return GNUNET_PQ_eval_prepared_non_select (pg->conn,
"auditor_wire_format_inconsistency_insert",
diff --git a/src/auditordb/plugin_auditordb_postgres.c
b/src/auditordb/plugin_auditordb_postgres.c
index 5c55e65e6..14d2e4377 100644
--- a/src/auditordb/plugin_auditordb_postgres.c
+++ b/src/auditordb/plugin_auditordb_postgres.c
@@ -477,7 +477,7 @@ postgres_rollback (void *cls)
* @param cls the `struct PostgresClosure` with the plugin-specific state
* @return transaction status code
*/
-enum GNUNET_DB_QueryStatus
+static enum GNUNET_DB_QueryStatus
postgres_commit (void *cls)
{
struct PostgresClosure *pg = cls;
diff --git a/src/include/taler_auditordb_plugin.h
b/src/include/taler_auditordb_plugin.h
index 176e1b45b..5a7bd61ed 100644
--- a/src/include/taler_auditordb_plugin.h
+++ b/src/include/taler_auditordb_plugin.h
@@ -215,8 +215,8 @@ struct TALER_AUDITORDB_Generic_Update
*/
struct TALER_AUDITORDB_AmountArithmeticInconsistency
{
- // FIXME: which row?
uint64_t row_id;
+ uint64_t problem_row_id;
char *operation;
struct TALER_Amount exchange_amount;
struct TALER_Amount auditor_amount;
@@ -253,6 +253,7 @@ struct TALER_AUDITORDB_RowInconsistency
struct TALER_AUDITORDB_BadSigLosses
{
uint64_t row_id;
+ uint64_t problem_row_id;
char *operation;
struct TALER_Amount loss;
struct GNUNET_CRYPTO_EddsaPublicKey operation_specific_pub;
@@ -264,6 +265,7 @@ struct TALER_AUDITORDB_BadSigLosses
struct TALER_AUDITORDB_ClosureLags
{
uint64_t row_id;
+ uint64_t problem_row_id;
struct TALER_Amount amount;
struct GNUNET_TIME_Absolute deadline;
struct TALER_WireTransferIdentifierRawP wtid;
@@ -316,6 +318,7 @@ struct TALER_AUDITORDB_Progress
struct TALER_AUDITORDB_RefreshesHanging
{
uint64_t row_id;
+ uint64_t problem_row_id;
struct TALER_Amount amount;
struct GNUNET_CRYPTO_EddsaPublicKey coin_pub;
};
@@ -326,6 +329,7 @@ struct TALER_AUDITORDB_RefreshesHanging
struct TALER_AUDITORDB_FeeTimeInconsistency
{
uint64_t row_id;
+ uint64_t problem_row_id;
char *type;
struct GNUNET_TIME_Absolute time;
char *diagnostic;
@@ -337,6 +341,7 @@ struct TALER_AUDITORDB_FeeTimeInconsistency
struct TALER_AUDITORDB_DenominationKeyValidityWithdrawInconsistency
{
uint64_t row_id;
+ uint64_t problem_row_id;
struct GNUNET_TIME_Absolute execution_date;
struct TALER_ReservePublicKeyP reserve_pub;
struct TALER_DenominationHashP denompub_h;
@@ -688,7 +693,6 @@ struct TALER_AUDITORDB_DenominationsWithoutSigs
struct GNUNET_TIME_Absolute start_time;
struct GNUNET_TIME_Absolute end_time;
bool suppressed;
-
};
struct TALER_AUDITORDB_MisattributionInInconsistency
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-exchange] branch master updated (96381a251 -> d16350ef1),
gnunet <=