-/* $Id: tstisamb.c,v 1.16 2005-01-15 19:38:31 adam Exp $
+/* $Id: tstisamb.c,v 1.21 2005-04-14 07:48:57 adam Exp $
Copyright (C) 1995-2005
Index Data ApS
02111-1307, USA.
*/
+#include <stdlib.h>
#include <string.h>
#include <yaz/log.h>
#include <yaz/xmalloc.h>
void tst_insert(ISAMB isb, int n)
{
ISAMC_I isamc_i;
- ISAMC_P isamc_p;
+ ISAM_P isamc_p;
struct read_info ri;
ISAMB_PP pp;
char key_buf[10];
isamc_i.clientData = &ri;
isamc_i.read_item = code_read;
- isamc_p = isamb_merge (isb, 0 /* new list */ , &isamc_i);
+ isamc_p = 0; /* new list */
+ isamb_merge (isb, &isamc_p , &isamc_i);
/* read the entries */
pp = isamb_pp_open (isb, isamc_p, 1);
isamc_i.clientData = &ri;
isamc_i.read_item = code_read;
- isamc_p = isamb_merge (isb, isamc_p , &isamc_i);
+ isamb_merge (isb, &isamc_p , &isamc_i);
/* delete a number of entries (odd ones) */
ri.no = 1;
isamc_i.clientData = &ri;
isamc_i.read_item = code_read;
- isamc_p = isamb_merge (isb, isamc_p , &isamc_i);
+ isamb_merge (isb, &isamc_p, &isamc_i);
if (isamc_p)
{
void tst_forward(ISAMB isb, int n)
{
ISAMC_I isamc_i;
- ISAMC_P isamc_p;
+ ISAM_P isamc_p;
struct read_info ri;
int i;
ISAMB_PP pp;
isamc_i.clientData = &ri;
isamc_i.read_item = code_read;
- isamc_p = isamb_merge (isb, 0 /* new list */ , &isamc_i);
+ isamc_p = 0;
+ isamb_merge (isb, &isamc_p, &isamc_i);
/* read the entries */
pp = isamb_pp_open (isb, isamc_p, 1);
isamb_unlink(isb, isamc_p);
}
+void tst_x(ISAMB isb)
+{
+ ISAMC_I isamc_i;
+ ISAM_P isamb_p = 0;
+ struct read_info ri;
+
+ isamc_i.clientData = &ri;
+ isamc_i.read_item = code_read;
+ ri.no = 1000;
+ ri.step = 1;
+ ri.max = 1500;
+ ri.insertMode = 1;
+
+ isamb_merge (isb, &isamb_p , &isamc_i);
+
+ ri.no = 1;
+ ri.step = 1;
+ ri.max = 500;
+ ri.insertMode = 1;
+
+ isamb_merge (isb, &isamb_p , &isamc_i);
+}
+
+void tst_append(ISAMB isb, int n)
+{
+ ISAMC_I isamc_i;
+ ISAM_P isamb_p = 0;
+ struct read_info ri;
+ int i;
+ int chunk = 10;
+
+ for (i = 0; i < n; i += chunk)
+ {
+ /* insert a number of entries */
+ ri.no = 0;
+ ri.step = 1;
+ ri.max = i + chunk;
+ ri.insertMode = 1;
+
+ isamc_i.clientData = &ri;
+ isamc_i.read_item = code_read;
+
+ isamb_merge (isb, &isamb_p , &isamc_i);
+ }
+}
+
int main(int argc, char **argv)
{
BFiles bfs;
tst_insert(isb, 100);
tst_insert(isb, 500);
tst_insert(isb, 10000);
+
tst_forward(isb, 10000);
+
+ tst_x(isb);
+
+ tst_append(isb, 1000);
/* close isam handle */
isamb_close(isb);