summaryrefslogtreecommitdiff
path: root/src/auditordb/pg_get_auditor_closure_lags.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/auditordb/pg_get_auditor_closure_lags.c')
-rw-r--r--src/auditordb/pg_get_auditor_closure_lags.c39
1 files changed, 29 insertions, 10 deletions
diff --git a/src/auditordb/pg_get_auditor_closure_lags.c b/src/auditordb/pg_get_auditor_closure_lags.c
index 6624ca378..409be8a9b 100644
--- a/src/auditordb/pg_get_auditor_closure_lags.c
+++ b/src/auditordb/pg_get_auditor_closure_lags.c
@@ -96,18 +96,20 @@ closure_lags_cb (void *cls,
enum GNUNET_DB_QueryStatus
TAH_PG_get_auditor_closure_lags (
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_ClosureLagsCallback 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 ClosureLagsContext dcc = {
.cb = cb,
@@ -117,7 +119,7 @@ TAH_PG_get_auditor_closure_lags (
enum GNUNET_DB_QueryStatus qs;
PREPARE (pg,
- "auditor_closure_lags_get",
+ "auditor_closure_lags_get_desc",
"SELECT"
" row_id"
",amount"
@@ -125,10 +127,27 @@ TAH_PG_get_auditor_closure_lags (
",wtid"
",account"
" FROM auditor_closure_lags"
- " WHERE row_id>$1"
+ " WHERE (row_id < $1)"
+ " AND ($2 OR suppressed is false)"
+ " ORDER BY row_id DESC"
+ " LIMIT $3"
);
+ PREPARE (pg,
+ "auditor_closure_lags_get_asc",
+ "SELECT"
+ " row_id"
+ ",amount"
+ ",deadline"
+ ",wtid"
+ ",account"
+ " FROM auditor_closure_lags"
+ " 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_auditor_closure_lags_get",
+ (limit > 0) ? "auditor_auditor_closure_lags_get_asc" : "auditor_auditor_closure_lags_get_desc",
params,
&closure_lags_cb,
&dcc);