projects
/
pazpar2-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Change session_search to get all sort parameters, so it can configure the correct...
[pazpar2-moved-to-github.git]
/
src
/
session.c
diff --git
a/src/session.c
b/src/session.c
index
4a817a2
..
a2d4c99
100644
(file)
--- a/
src/session.c
+++ b/
src/session.c
@@
-638,6
+638,9
@@
static void session_clear_set(struct session *se,
se->sorted_results->position = position;
se->sorted_results->next = 0;
se->sorted_results->position = position;
se->sorted_results->next = 0;
+ session_log(se, YLOG_DEBUG, "clear_set search_sort: field=%s increasing=%d position=%d configured",
+ sort_field, increasing, position);
+
se->reclist = reclist_create(se->nmem);
}
se->reclist = reclist_create(se->nmem);
}
@@
-651,7
+654,6
@@
void session_sort(struct session *se, const char *field, int increasing,
yaz_log(YLOG_LOG, "session_sort field=%s increasing=%d position=%d", field, increasing, position);
/* see if we already have sorted for this critieria */
yaz_log(YLOG_LOG, "session_sort field=%s increasing=%d position=%d", field, increasing, position);
/* see if we already have sorted for this critieria */
- /* TODO I do not see the point in saving all previous sorts. Dont we re-sort anyway ? */
for (sr = se->sorted_results; sr; sr = sr->next)
{
if (!strcmp(field, sr->field) && increasing == sr->increasing && sr->position == position)
for (sr = se->sorted_results; sr; sr = sr->next)
{
if (!strcmp(field, sr->field) && increasing == sr->increasing && sr->position == position)
@@
-701,8
+703,7
@@
enum pazpar2_error_code session_search(struct session *se,
const char *filter,
const char *limit,
const char **addinfo,
const char *filter,
const char *limit,
const char **addinfo,
- const char *sort_field,
- int increasing)
+ struct reclist_sortparms *sp)
{
int live_channels = 0;
int no_working = 0;
{
int live_channels = 0;
int no_working = 0;
@@
-723,7
+724,7
@@
enum pazpar2_error_code session_search(struct session *se,
session_enter(se);
se->settings_modified = 0;
session_enter(se);
se->settings_modified = 0;
- session_clear_set(se, sort_field, increasing, 0); /* hardcoded position */
+ session_clear_set(se, sp->name, sp->increasing, sp->type == Metadata_sortkey_position);
relevance_destroy(&se->relevance);
live_channels = select_targets(se, filter);
relevance_destroy(&se->relevance);
live_channels = select_targets(se, filter);