-/* $Id: zrpn.c,v 1.140 2004-06-16 21:29:49 adam Exp $
+/* $Id: zrpn.c,v 1.144 2004-08-20 14:44:46 heikki Exp $
Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
Index Data Aps
#ifdef TERM_COUNT
int *term_no;
#endif
- ISAMS_P *isam_p_buf;
+ ISAMC_P *isam_p_buf;
int isam_p_size;
int isam_p_indx;
ZebraHandle zh;
{
if (p->isam_p_indx == p->isam_p_size)
{
- ISAMS_P *new_isam_p_buf;
+ ISAMC_P *new_isam_p_buf;
#ifdef TERM_COUNT
int *new_term_no;
#endif
p->isam_p_size = 2*p->isam_p_size + 100;
- new_isam_p_buf = (ISAMS_P *) xmalloc (sizeof(*new_isam_p_buf) *
+ new_isam_p_buf = (ISAMC_P *) xmalloc (sizeof(*new_isam_p_buf) *
p->isam_p_size);
if (p->isam_p_buf)
{
{
char term_dst[IT_MAX_WORD+1];
RSET rset[60], result;
- int i, rset_no = 0;
+ int rset_no = 0;
struct grep_info grep_info;
char *termz = normalize_term(zh, zapt, termz_org, stream, reg_type);
const char *termp = termz;
if (rset_no == 0)
{
rset_null_parms parms;
-
- parms.rset_term = rset_term_create (termz, -1, rank_type,
- zapt->term->which);
return rset_create (rset_kind_null, &parms);
}
else if (rset_no == 1)
if (rset_no == 0)
{
rset_null_parms parms;
-
- parms.rset_term = rset_term_create (termz, -1, rank_type,
- zapt->term->which);
return rset_create (rset_kind_null, &parms);
}
result = rset[0];
if (rset_no == 0)
{
rset_null_parms parms;
-
- parms.rset_term = rset_term_create (termz, -1, rank_type,
- zapt->term->which);
return rset_create (rset_kind_null, &parms);
}
result = rset[0];
if (rset_no == 0)
{
rset_null_parms parms;
-
- parms.rset_term = rset_term_create (term_dst, -1, rank_type,
- zapt->term->which);
return rset_create (rset_kind_null, &parms);
}
result = rset[0];
RSET result;
RSFD rsfd;
struct it_key key;
+ int sys;
rset_temp_parms parms;
- parms.rset_term = rset_term_create (termz, -1, rank_type,
- zapt->term->which);
parms.cmp = key_compare_it;
parms.key_size = sizeof (struct it_key);
parms.temp_path = res_get (zh->res, "setTmpDir");
result = rset_create (rset_kind_temp, &parms);
rsfd = rset_open (result, RSETF_WRITE);
- key.sysno = atoi (termz);
+ sys = atoi(termz);
+ if (sys <= 0)
+ sys = 1;
+#if IT_KEY_NEW
+ key.mem[0] = sys;
+ key.mem[1] = 1;
+ key.len = 2;
+#else
+ key.sysno = sys;
key.seqno = 1;
if (key.sysno <= 0)
key.sysno = 1;
+#endif
rset_write (result, rsfd, &key);
rset_close (result, rsfd);
return result;
sks->which = Z_SortKeySpec_null;
sks->u.null = odr_nullval ();
sort_sequence->specs[i] = sks;
-
- parms.rset_term = rset_term_create (termz, -1, rank_type,
- zapt->term->which);
return rset_create (rset_kind_null, &parms);
}
if (grep_info_prepare (zh, 0 /* zapt */, &grep_info, '0', stream))
{
rset_null_parms parms;
-
- parms.rset_term = rset_term_create (term, strlen(term),
- flags, term_type);
- parms.rset_term->nn = 0;
return rset_create (rset_kind_null, &parms);
}
if (ord < 0)
{
rset_null_parms parms;
-
- parms.rset_term = rset_term_create (term, strlen(term),
- flags, term_type);
- parms.rset_term->nn = 0;
return rset_create (rset_kind_null, &parms);
}
if (prefix_len)
struct scan_info_entry {
char *term;
- ISAMS_P isam_p;
+ ISAMC_P isam_p;
};
struct scan_info {
scan_info->list[idx].term = (char *)
odr_malloc (scan_info->odr, strlen(name + len_prefix)+1);
strcpy (scan_info->list[idx].term, name + len_prefix);
- assert (*info == sizeof(ISAMS_P));
- memcpy (&scan_info->list[idx].isam_p, info+1, sizeof(ISAMS_P));
+ assert (*info == sizeof(ISAMC_P));
+ memcpy (&scan_info->list[idx].isam_p, info+1, sizeof(ISAMC_P));
return 0;
}
static void count_set (RSET r, int *count)
{
- int psysno = 0;
+ zint psysno = 0;
int kno = 0;
struct it_key key;
RSFD rfd;
- int term_index;
logf (LOG_DEBUG, "count_set");
*count = 0;
rfd = rset_open (r, RSETF_READ);
- while (rset_read (r, rfd, &key, &term_index))
+ while (rset_read (r, rfd, &key))
{
+#if IT_KEY_NEW
+ if (key.mem[0] != psysno)
+ {
+ psysno = key.mem[0];
+ (*count)++;
+ }
+#else
if (key.sysno != psysno)
{
psysno = key.sysno;
(*count)++;
}
+#endif
kno++;
}
rset_close (r, rfd);