From 0209b47aeddf61686fe08e946d8909860cfb161a Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 23 Feb 2022 00:30:36 +0100 Subject: -fix datacache to return 2x num_closest in both directions --- src/datacache/plugin_datacache_postgres.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/datacache/plugin_datacache_postgres.c') diff --git a/src/datacache/plugin_datacache_postgres.c b/src/datacache/plugin_datacache_postgres.c index 4e48d89df..1a83cda86 100644 --- a/src/datacache/plugin_datacache_postgres.c +++ b/src/datacache/plugin_datacache_postgres.c @@ -108,14 +108,20 @@ init_connection (struct Plugin *plugin) "SELECT length(value) AS len,oid,key FROM gn011dc" " ORDER BY prox ASC, discard_time ASC LIMIT 1", 0), - /* FIXME: do key >= ASC + UNION key <= DESC! */ GNUNET_PQ_make_prepare ("get_closest", - "SELECT discard_time,type,value,path,key FROM gn011dc" + "(SELECT discard_time,type,value,path,key FROM gn011dc" " WHERE key >= $1" " AND discard_time >= $2" " AND ( (type = $3) OR ( 0 = $3) )" " ORDER BY key ASC" - " LIMIT $4", + " LIMIT $4)" + " UNION " + "(SELECT discard_time,type,value,path,key FROM gn011dc" + " WHERE key <= $1" + " AND discard_time >= $2" + " AND ( (type = $3) OR ( 0 = $3) )" + " ORDER BY key DESC" + " LIMIT $4)", 4), GNUNET_PQ_make_prepare ("delrow", "DELETE FROM gn011dc WHERE oid=$1", -- cgit v1.2.3