* Sebastian Hammer, Adam Dickmeiss
*
* $Log: zrpn.c,v $
- * Revision 1.25 1995-10-10 13:59:24 adam
+ * Revision 1.26 1995-10-12 12:40:54 adam
+ * Bug fixes in rpn_prox.
+ *
+ * Revision 1.25 1995/10/10 13:59:24 adam
* Function rset_open changed its wflag parameter to general flags.
*
* Revision 1.24 1995/10/09 16:18:37 adam
rsfd = xmalloc (sizeof(*rsfd)*rset_no);
more = xmalloc (sizeof(*more)*rset_no);
buf = xmalloc (sizeof(*buf)*rset_no);
-
+
for (i = 0; i<rset_no; i++)
{
buf[i] = xmalloc (sizeof(**buf));
rsfd[i] = rset_open (rset[i], RSETF_READ|RSETF_SORT_SYSNO);
- more[i] = rset_read (rset[i], rsfd[i], buf[i]);
+ if (!(more[i] = rset_read (rset[i], rsfd[i], buf[i])))
+ {
+ while (i >= 0)
+ {
+ rset_close (rset[i], rsfd[i]);
+ xfree (buf[i]);
+ --i;
+ }
+ xfree (rsfd);
+ xfree (more);
+ xfree (buf);
+ return rset_create (rset_kind_null, NULL);
+ }
}
parms.key_size = sizeof (struct it_key);
result = rset_create (rset_kind_temp, &parms);
grep_info.isam_p_indx = 0;
if (trunc_term (zi, zapt, term_sub, attributeSet, &grep_info))
return NULL;
- if (grep_info.isam_p_indx > 0)
+ if (grep_info.isam_p_indx == 0)
+ rset[rset_no] = rset_create (rset_kind_null, NULL);
+ else if (grep_info.isam_p_indx > 1)
+ rset[rset_no] = rset_trunc (zi->wordIsam,
+ grep_info.isam_p_buf, 0,
+ grep_info.isam_p_indx, 400);
+ else
{
- if (grep_info.isam_p_indx > 1)
- rset[rset_no] = rset_trunc (zi->wordIsam,
- grep_info.isam_p_buf, 0,
- grep_info.isam_p_indx, 400);
- else
- {
- rset_isam_parms parms;
-
- parms.is = zi->wordIsam;
- parms.pos = *grep_info.isam_p_buf;
- rset[rset_no] = rset_create (rset_kind_isam, &parms);
- }
- rset_no++;
- if (rset_no >= sizeof(rset)/sizeof(*rset))
- break;
+ rset_isam_parms parms;
+
+ parms.is = zi->wordIsam;
+ parms.pos = *grep_info.isam_p_buf;
+ rset[rset_no] = rset_create (rset_kind_isam, &parms);
}
+ assert (rset[rset_no]);
+ if (++rset_no >= sizeof(rset)/sizeof(*rset))
+ break;
if (!p1)
break;
p0 = p1;
* Sebastian Hammer, Adam Dickmeiss
*
* $Log: zserver.c,v $
- * Revision 1.14 1995-10-09 16:18:37 adam
+ * Revision 1.15 1995-10-12 12:40:55 adam
+ * Bug fixes in rpn_prox.
+ *
+ * Revision 1.14 1995/10/09 16:18:37 adam
* Function dict_lookup_grep got extra client data parameter.
*
* Revision 1.13 1995/10/06 14:38:00 adam
r.errstring = 0;
r.handle = name;
+ logf (LOG_DEBUG, "bend_init");
server_info.sets = NULL;
if (!(server_info.sys_idx_fd = open (FNAME_SYS_IDX, O_RDONLY)))
{
+ logf (LOG_WARN|LOG_ERRNO, "sys_idx open fail");
r.errcode = 1;
- r.errstring = "dict_open fail: filedict";
+ r.errstring = "sys_idx open fail";
return &r;
}
if (!(server_info.fileDict = dict_open (FNAME_FILE_DICT, 10, 0)))
{
+ logf (LOG_WARN, "dict_open fail: fname dict");
r.errcode = 1;
- r.errstring = "dict_open fail: filedict";
+ r.errstring = "dict_open fail: fname dict";
return &r;
}
if (!(server_info.wordDict = dict_open (FNAME_WORD_DICT, 40, 0)))
{
+ logf (LOG_WARN, "dict_open fail: word dict");
dict_close (server_info.fileDict);
r.errcode = 1;
- r.errstring = "dict_open fail: worddict";
+ r.errstring = "dict_open fail: word dict";
return &r;
}
if (!(server_info.wordIsam = is_open (FNAME_WORD_ISAM, key_compare, 0,
sizeof (struct it_key))))
{
+ logf (LOG_WARN, "is_open fail: word isam");
dict_close (server_info.wordDict);
dict_close (server_info.fileDict);
r.errcode = 1;
- r.errstring = "is_open fail: wordisam";
+ r.errstring = "is_open fail: word isam";
return &r;
}
server_info.odr = odr_createmem (ODR_ENCODE);
file_type);
exit (1);
}
+ logf (LOG_DEBUG, "retrieve localno=%d score=%d", sysno, score);
if ((retrieveCtrl.fd = open (fname, O_RDONLY)) == -1)
{
- logf (LOG_FATAL|LOG_ERRNO, "Retrieve: Open record file %s", fname);
- exit (1);
+ logf (LOG_WARN|LOG_ERRNO, "Retrieve: Open record file %s", fname);
+ return 14; /* System error in presenting records */
}
- logf (LOG_DEBUG, "retrieve localno=%d score=%d", sysno, score);
retrieveCtrl.localno = sysno;
retrieveCtrl.score = score;
retrieveCtrl.odr = stream;