From 3c1fd34223220690747a11e43a2d5833a8e7e3f7 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Wed, 11 Mar 1998 11:19:04 +0000 Subject: [PATCH] Changed the way sequence numbers are generated. --- include/recctrl.h | 8 ++++++-- index/extract.c | 22 +++++++++++++++------- recctrl/recgrs.c | 10 ++++------ recctrl/rectext.c | 8 +++++--- 4 files changed, 30 insertions(+), 18 deletions(-) diff --git a/include/recctrl.h b/include/recctrl.h index 9fe90e7..30b85e8 100644 --- a/include/recctrl.h +++ b/include/recctrl.h @@ -4,7 +4,10 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: recctrl.h,v $ - * Revision 1.24 1998-03-05 08:38:46 adam + * Revision 1.25 1998-03-11 11:19:04 adam + * Changed the way sequence numbers are generated. + * + * Revision 1.24 1998/03/05 08:38:46 adam * New member recordSize in recRetrieveCtrl. * * Revision 1.23 1998/02/10 12:03:05 adam @@ -110,7 +113,7 @@ typedef struct { unsigned reg_type; char *string; int length; - int seqno; + int *seqnos; ZebraMaps zebra_maps; } RecWord; @@ -127,6 +130,7 @@ struct recExtractCtrl { void (*add)(RecWord *p); ZebraMaps zebra_maps; int flagShowRecords; + int seqno[256]; data1_handle dh; }; diff --git a/index/extract.c b/index/extract.c index 32aed36..013784c 100644 --- a/index/extract.c +++ b/index/extract.c @@ -4,7 +4,10 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: extract.c,v $ - * Revision 1.80 1998-03-05 08:45:11 adam + * Revision 1.81 1998-03-11 11:19:04 adam + * Changed the way sequence numbers are generated. + * + * Revision 1.80 1998/03/05 08:45:11 adam * New result set model and modular ranking system. Moved towards * descent server API. System information stored as "SGML" records. * @@ -558,6 +561,7 @@ int key_close (int rw) static void wordInit (struct recExtractCtrl *p, RecWord *w) { w->zebra_maps = p->zebra_maps; + w->seqnos = p->seqno; w->attrSet = 1; w->attrUse = 1016; w->reg_type = 'w'; @@ -587,6 +591,7 @@ static void addIndexString (RecWord *p, const char *string, int length) short attrUse; int lead = 0; int diff = 0; + int *pseqno = &p->seqnos[p->reg_type]; if (reckeys.buf_used+1024 > reckeys.buf_max) { @@ -611,14 +616,14 @@ static void addIndexString (RecWord *p, const char *string, int length) else reckeys.prevAttrUse = attrUse; #if 1 - diff = 1 + p->seqno - reckeys.prevSeqNo; + diff = 1 + *pseqno - reckeys.prevSeqNo; if (diff >= 1 && diff <= 15) lead |= (diff << 2); else diff = 0; #endif - reckeys.prevSeqNo = p->seqno; - + reckeys.prevSeqNo = *pseqno; + *dst++ = lead; if (!(lead & 1)) @@ -638,11 +643,11 @@ static void addIndexString (RecWord *p, const char *string, int length) if (!diff) { - memcpy (dst, &p->seqno, sizeof(p->seqno)); - dst += sizeof(p->seqno); + memcpy (dst, pseqno, sizeof(*pseqno)); + dst += sizeof(*pseqno); } reckeys.buf_used = dst - reckeys.buf; - (p->seqno)++; + (*pseqno)++; } static void addSortString (RecWord *p, const char *string, int length) @@ -1162,6 +1167,7 @@ static int recordExtract (SYSNO *sysno, const char *fname, if (fi->fd != -1) { + int i; /* we are going to read from a file, so prepare the extraction */ extractCtrl.fh = fi; extractCtrl.subType = subType; @@ -1174,6 +1180,8 @@ static int recordExtract (SYSNO *sysno, const char *fname, reckeys.prevAttrSet = -1; reckeys.prevSeqNo = 0; + for (i = 0; i<256; i++) + extractCtrl.seqno[i] = 0; recordOffset = fi->file_moffset; extractCtrl.offset = recordOffset; extractCtrl.readf = file_read; diff --git a/recctrl/recgrs.c b/recctrl/recgrs.c index 9b07e13..b831663 100644 --- a/recctrl/recgrs.c +++ b/recctrl/recgrs.c @@ -4,7 +4,10 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: recgrs.c,v $ - * Revision 1.18 1998-03-05 08:41:31 adam + * Revision 1.19 1998-03-11 11:19:05 adam + * Changed the way sequence numbers are generated. + * + * Revision 1.18 1998/03/05 08:41:31 adam * Minor changes. * * Revision 1.17 1998/02/10 12:03:06 adam @@ -162,8 +165,6 @@ #define GRS_MAX_WORD 512 -static int seqno = 0; - static data1_node *read_grs_type (struct grs_read_info *p, const char *type) { static struct { @@ -291,13 +292,11 @@ static int dumpkeys(data1_node *n, struct recExtractCtrl *p, int level) else { wrd.reg_type = *tlist->structure; - wrd.seqno = seqno; wrd.string = n->u.data.data; wrd.length = n->u.data.len; wrd.attrSet = tlist->att->parent->ordinal; wrd.attrUse = tlist->att->locals->local; (*p->add)(&wrd); - seqno = wrd.seqno; } } } @@ -314,7 +313,6 @@ static int grs_extract(struct recExtractCtrl *p) data1_node *n; NMEM mem; struct grs_read_info gri; - seqno = 0; mem = nmem_create (); gri.readf = p->readf; diff --git a/recctrl/rectext.c b/recctrl/rectext.c index 9993d70..1b5ab74 100644 --- a/recctrl/rectext.c +++ b/recctrl/rectext.c @@ -4,7 +4,10 @@ * Sebastian Hammer, Adam Dickmeiss * * $Log: rectext.c,v $ - * Revision 1.6 1998-02-10 12:03:06 adam + * Revision 1.7 1998-03-11 11:19:05 adam + * Changed the way sequence numbers are generated. + * + * Revision 1.6 1998/02/10 12:03:06 adam * Implemented Sort. * * Revision 1.5 1997/10/27 14:33:06 adam @@ -104,7 +107,7 @@ static int text_extract (struct recExtractCtrl *p) { char w[512]; RecWord recWord; - int r, seqno = 1; + int r; struct buf_info *fi = buf_open (p); (*p->init)(p, &recWord); @@ -121,7 +124,6 @@ static int text_extract (struct recExtractCtrl *p) } if (i) { - recWord.seqno = seqno++; recWord.string = w; recWord.length = i; (*p->add)(&recWord); -- 1.7.10.4