* Sebastian Hammer, Adam Dickmeiss
*
* $Log: zserver.c,v $
- * Revision 1.17 1995-10-16 09:32:40 adam
+ * Revision 1.21 1995-11-01 16:25:52 quinn
+ * *** empty log message ***
+ *
+ * Revision 1.20 1995/10/27 14:00:12 adam
+ * Implemented detection of database availability.
+ *
+ * Revision 1.19 1995/10/17 18:02:11 adam
+ * New feature: databases. Implemented as prefix to words in dictionary.
+ *
+ * Revision 1.18 1995/10/16 14:03:09 quinn
+ * Changes to support element set names and espec1
+ *
+ * Revision 1.17 1995/10/16 09:32:40 adam
* More work on relational op.
*
* Revision 1.16 1995/10/13 12:26:44 adam
#include <unistd.h>
#include <fcntl.h>
+#include <common.h>
+#include <data1.h>
#include <recctrl.h>
#include <dmalloc.h>
#include "zserver.h"
r.handle = name;
logf (LOG_DEBUG, "bend_init");
+ data1_tabpath = res_get(common_resource, "data1_tabpath");
server_info.sets = NULL;
if (!(server_info.sys_idx_fd = open (FNAME_SYS_IDX, O_RDONLY)))
{
odr_reset (server_info.odr);
server_info.errCode = 0;
+ server_info.errString = NULL;
switch (q->query->which)
{
case Z_Query_type_1:
r.errcode = rpn_search (&server_info, q->query->u.type_1,
q->num_bases, q->basenames, q->setname,
&r.hits);
+ r.errstring = server_info.errString;
break;
default:
r.errcode = 107;
}
static int record_fetch (ZServerInfo *zi, int sysno, int score, ODR stream,
- oid_value input_format, oid_value *output_format,
- char **rec_bufp, int *rec_lenp)
+ oid_value input_format, Z_RecordComposition *comp,
+ oid_value *output_format, char **rec_bufp,
+ int *rec_lenp)
{
char record_info[SYS_IDX_ENTRY_LEN];
char *fname, *file_type;
retrieveCtrl.odr = stream;
retrieveCtrl.readf = record_read;
retrieveCtrl.input_format = retrieveCtrl.output_format = input_format;
+ retrieveCtrl.comp = comp;
retrieveCtrl.diagnostic = 0;
(*rt->retrieve)(&retrieveCtrl);
*output_format = retrieveCtrl.output_format;
return &r;
}
r.errcode = record_fetch (&server_info, records[0].sysno,
- records[0].score, q->stream,
- q->format, &r.format, &r.record, &r.len);
+ records[0].score, q->stream, q->format,
+ q->comp, &r.format, &r.record, &r.len);
+ resultSetSysnoDel (&server_info, records, 1);
return &r;
}
odr_reset (server_info.odr);
server_info.errCode = 0;
+ server_info.errString = 0;
- r.errstring = 0;
r.term_position = q->term_position;
r.num_entries = q->num_entries;
- r.errcode = rpn_scan (&server_info, server_info.odr, q->term,
+ r.errcode = rpn_scan (&server_info, q->term,
+ q->num_bases, q->basenames,
&r.term_position,
&r.num_entries, &r.entries, &status);
+ r.errstring = server_info.errString;
r.status = status;
return &r;
}