summaryrefslogtreecommitdiff
path: root/src/auditordb/pg_get_purse_not_closed_inconsistencies.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/auditordb/pg_get_purse_not_closed_inconsistencies.c')
-rw-r--r--src/auditordb/pg_get_purse_not_closed_inconsistencies.c38
1 files changed, 28 insertions, 10 deletions
diff --git a/src/auditordb/pg_get_purse_not_closed_inconsistencies.c b/src/auditordb/pg_get_purse_not_closed_inconsistencies.c
index 4ba51e0a3..7489f7ccb 100644
--- a/src/auditordb/pg_get_purse_not_closed_inconsistencies.c
+++ b/src/auditordb/pg_get_purse_not_closed_inconsistencies.c
@@ -100,18 +100,20 @@ purse_not_closed_inconsistencies_cb (void *cls,
enum GNUNET_DB_QueryStatus
TAH_PG_get_purse_not_closed_inconsistencies (
void *cls,
- uint64_t start_id,
- bool return_suppressed, // maybe not needed
+ int64_t limit,
+ uint64_t offset,
+ bool return_suppressed, // maybe not needed
TALER_AUDITORDB_PurseNotClosedInconsistenciesCallback cb,
void *cb_cls)
{
struct PostgresClosure *pg = cls;
- struct GNUNET_PQ_QueryParam params[] = {
- GNUNET_PQ_query_param_uint64 (&start_id),
- GNUNET_PQ_query_param_bool (return_suppressed),
- GNUNET_PQ_query_param_end
- };
+ struct GNUNET_PQ_QueryParam params[] = {
+ GNUNET_PQ_query_param_uint64 (&offset),
+ GNUNET_PQ_query_param_bool (return_suppressed),
+ GNUNET_PQ_query_param_int64 (&limit),
+ GNUNET_PQ_query_param_end
+ };
struct PurseNotClosedInconsistenciesContext dcc = {
.cb = cb,
.cb_cls = cb_cls,
@@ -120,17 +122,33 @@ TAH_PG_get_purse_not_closed_inconsistencies (
enum GNUNET_DB_QueryStatus qs;
PREPARE (pg,
- "auditor_purse_not_closed_inconsistencies_get",
+ "auditor_purse_not_closed_inconsistencies_get_desc",
"SELECT"
" row_id"
",purse_pub"
",amount"
",expiration_date"
" FROM auditor_purse_not_closed_inconsistencies"
- " WHERE row_id>$1"
+ " WHERE (row_id < $1)"
+ " AND ($2 OR suppressed is false)"
+ " ORDER BY row_id DESC"
+ " LIMIT $3"
);
+ PREPARE (pg,
+ "auditor_purse_not_closed_inconsistencies_get_asc",
+ "SELECT"
+ " row_id"
+ ",purse_pub"
+ ",amount"
+ ",expiration_date"
+ " FROM auditor_purse_not_closed_inconsistencies"
+ " WHERE (row_id > $1)"
+ " AND ($2 OR suppressed is false)"
+ " ORDER BY row_id ASC"
+ " LIMIT $3"
+ );
qs = GNUNET_PQ_eval_prepared_multi_select (pg->conn,
- "auditor_purse_not_closed_inconsistencies_get",
+ (limit > 0) ? "auditor_purse_not_closed_inconsistencies_get_asc" : "auditor_purse_not_closed_inconsistencies_get_desc",
params,
&
purse_not_closed_inconsistencies_cb,