X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=index%2Fkinput.c;h=06607ffd6cdb6b8628de308e8ac06cf3d40b67b4;hb=12c6db025bffd23e760ceb31120468cf363256df;hp=3ed7512df8a5e4b90f4203f98f01aae18e69f044;hpb=2e4e9c6def27f1e1463dcb6f205fab6a98054f38;p=idzebra-moved-to-github.git diff --git a/index/kinput.c b/index/kinput.c index 3ed7512..06607ff 100644 --- a/index/kinput.c +++ b/index/kinput.c @@ -1,4 +1,4 @@ -/* $Id: kinput.c,v 1.60 2004-08-04 08:35:23 adam Exp $ +/* $Id: kinput.c,v 1.62 2004-09-15 08:13:51 adam Exp $ Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Index Data Aps @@ -47,12 +47,7 @@ struct key_file { size_t chunk; /* number of bytes allocated */ size_t buf_ptr; /* current position in buffer */ char *prev_name; /* last word read */ -#if IT_KEY_NEW void *decode_handle; -#else - int sysno; /* last sysno */ - int seqno; /* last seqno */ -#endif off_t length; /* length of file */ /* handler invoked in each read */ void (*readHandler)(struct key_file *keyp, void *rinfo); @@ -126,9 +121,7 @@ void key_file_chunk_read (struct key_file *f) void key_file_destroy (struct key_file *f) { -#if IT_KEY_NEW iscz1_stop(f->decode_handle); -#endif xfree (f->buf); xfree (f->prev_name); xfree (f); @@ -140,12 +133,7 @@ struct key_file *key_file_init (int no, int chunk, Res res) f = (struct key_file *) xmalloc (sizeof(*f)); f->res = res; -#if IT_KEY_NEW f->decode_handle = iscz1_start(); -#else - f->sysno = 0; - f->seqno = 0; -#endif f->no = no; f->chunk = chunk; f->offset = 0; @@ -202,14 +190,9 @@ int key_file_read (struct key_file *f, char *key) { int i, c; char srcbuf[128]; -#if IT_KEY_NEW const char *src = srcbuf; char *dst; int j; -#else - struct it_key itkey; - int d; -#endif c = key_file_getc (f); if (c == 0) @@ -226,11 +209,8 @@ int key_file_read (struct key_file *f, char *key) while ((key[i++] = key_file_getc (f))) ; strcpy (f->prev_name, key); -#if IT_KEY_NEW iscz1_reset(f->decode_handle); -#endif } -#if IT_KEY_NEW c = key_file_getc(f); /* length + insert/delete combined */ key[i++] = c & 128; c = c & 127; @@ -239,22 +219,6 @@ int key_file_read (struct key_file *f, char *key) dst = key + i; iscz1_decode(f->decode_handle, &dst, &src); return i + sizeof(struct it_key); -#else - d = key_file_decode (f); - key[i++] = d & 1; - d = d >> 1; - itkey.sysno = d + f->sysno; - if (d) - { - f->sysno = itkey.sysno; - f->seqno = 0; - } - d = key_file_decode (f); - itkey.seqno = d + f->seqno; - f->seqno = itkey.seqno; - memcpy (key + i, &itkey, sizeof(struct it_key)); - return i + sizeof (struct it_key); -#endif } struct heap_info { @@ -704,77 +668,6 @@ int heap_inpb (struct heap_info *hi) return 0; } -int heap_inp (struct heap_info *hi) -{ - char *info; - char next_name[INP_NAME_MAX]; - char cur_name[INP_NAME_MAX]; - int key_buf_size = INP_BUF_START; - int key_buf_ptr; - char *next_key; - char *key_buf; - int more; - - next_key = (char *) xmalloc (KEY_SIZE); - key_buf = (char *) xmalloc (key_buf_size); - more = heap_read_one (hi, cur_name, key_buf); - while (more) /* EOF ? */ - { - int nmemb; - key_buf_ptr = KEY_SIZE; - while (1) - { - if (!(more = heap_read_one (hi, next_name, next_key))) - break; - if (*next_name && strcmp (next_name, cur_name)) - break; - memcpy (key_buf + key_buf_ptr, next_key, KEY_SIZE); - key_buf_ptr += KEY_SIZE; - if (key_buf_ptr+(int) KEY_SIZE >= key_buf_size) - { - char *new_key_buf; - new_key_buf = (char *) xmalloc (key_buf_size + INP_BUF_ADD); - memcpy (new_key_buf, key_buf, key_buf_size); - key_buf_size += INP_BUF_ADD; - xfree (key_buf); - key_buf = new_key_buf; - } - } - hi->no_diffs++; - nmemb = key_buf_ptr / KEY_SIZE; - assert (nmemb * (int) KEY_SIZE == key_buf_ptr); - if ((info = dict_lookup (hi->reg->dict, cur_name))) - { - ISAM_P isam_p, isam_p2; - memcpy (&isam_p, info+1, sizeof(ISAM_P)); - isam_p2 = is_merge (hi->reg->isam, isam_p, nmemb, key_buf); - if (!isam_p2) - { - hi->no_deletions++; - if (!dict_delete (hi->reg->dict, cur_name)) - abort (); - } - else - { - hi->no_updates++; - if (isam_p2 != isam_p) - dict_insert (hi->reg->dict, cur_name, - sizeof(ISAM_P), &isam_p2); - } - } - else - { - ISAM_P isam_p; - hi->no_insertions++; - isam_p = is_merge (hi->reg->isam, 0, nmemb, key_buf); - dict_insert (hi->reg->dict, cur_name, sizeof(ISAM_P), &isam_p); - } - memcpy (key_buf, next_key, KEY_SIZE); - strcpy (cur_name, next_name); - } - return 0; -} - int heap_inps (struct heap_info *hi) { struct heap_cread_info hci; @@ -913,8 +806,6 @@ void zebra_index_merge (ZebraHandle zh) heap_inps (hi); if (zh->reg->isamc) heap_inpc (hi); - if (zh->reg->isam) - heap_inp (hi); if (zh->reg->isamb) heap_inpb (hi);