* Sebastian Hammer, Adam Dickmeiss
*
* $Log: zserver.c,v $
- * Revision 1.54 1998-01-29 13:39:13 adam
+ * Revision 1.55 1998-02-10 12:03:06 adam
+ * Implemented Sort.
+ *
+ * Revision 1.54 1998/01/29 13:39:13 adam
* Compress ISAM is default.
*
* Revision 1.53 1998/01/12 15:04:09 adam
{
zebTargetInfo_close (zi->zti, 0);
dict_close (zi->dict);
+ sortIdx_close (zi->sortIdx);
if (zi->isam)
is_close (zi->isam);
if (zi->isamc)
zi->records = rec_open (zi->bfs, 0);
if (!(zi->dict = dict_open (zi->bfs, FNAME_DICT, 40, 0)))
return -1;
+ if (!(zi->sortIdx = sortIdx_open (zi->bfs, 0)))
+ return -1;
zi->isam = NULL;
zi->isamc = NULL;
if (!res_get_match (zi->res, "isam", "i", NULL))
zebra_server_unlock (zi, zi->registerState);
}
+static int bend_sort (void *handle, bend_sort_rr *rr);
+
bend_initresult *bend_init (bend_initrequest *q)
{
bend_initresult *r = odr_malloc (q->stream, sizeof(*r));
r->errcode = 0;
r->errstring = 0;
r->handle = zi;
+ q->bend_sort = bend_sort;
logf (LOG_DEBUG, "bend_init");
zi->registerChange = 0;
zi->records = NULL;
- zi->odr = odr_createmem (ODR_ENCODE);
zi->registered_sets = NULL;
zi->zebra_maps = zebra_maps_open (res_get(zi->res, "profilePath"),
zi->res);
r->hits = 0;
register_lock (zi);
- odr_reset (zi->odr);
zi->errCode = 0;
zi->errString = NULL;
switch (q->query->which)
{
case Z_Query_type_1: case Z_Query_type_101:
- r->errcode = rpn_search (zi, q->query->u.type_1,
+ r->errcode = rpn_search (zi, q->stream, q->query->u.type_1,
q->num_bases, q->basenames, q->setname,
&r->hits);
r->errstring = zi->errString;
r->last_in_set = 0;
r->basename = "base";
- odr_reset (zi->odr);
zi->errCode = 0;
positions[0] = q->number;
int status;
register_lock (zi);
- odr_reset (zi->odr);
zi->errCode = 0;
zi->errString = 0;
r->term_position = q->term_position;
r->num_entries = q->num_entries;
- r->errcode = rpn_scan (zi, q->term,
+ r->errcode = rpn_scan (zi, q->stream, q->term,
q->attributeset,
q->num_bases, q->basenames,
&r->term_position,
resultSetDestroy (zi);
zebTargetInfo_close (zi->zti, 0);
dict_close (zi->dict);
+ sortIdx_close (zi->sortIdx);
if (zi->isam)
is_close (zi->isam);
if (zi->isamc)
rec_close (&zi->records);
register_unlock (zi);
}
- odr_destroy (zi->odr);
zebra_maps_close (zi->zebra_maps);
bfs_destroy (zi->bfs);
data1_destroy (zi->dh);
}
#endif
+int bend_sort (void *handle, bend_sort_rr *rr)
+{
+ ZServerInfo *zi = handle;
+
+#if 1
+ register_lock (zi);
+
+ resultSetSort (zi, rr);
+
+ register_unlock (zi);
+#endif
+ return 0;
+}
+
int main (int argc, char **argv)
{
struct statserv_options_block *sob;