82 lines
2.0 KiB
C
82 lines
2.0 KiB
C
|
#ifndef INLIST_H
|
||
|
#define INLIST_H
|
||
|
/******************************************************************************
|
||
|
*
|
||
|
* Inlist structures, a bayer tree
|
||
|
*
|
||
|
* Module %M% Version %I% Date %H%
|
||
|
*
|
||
|
* (c) Copyright 1998 Ardent Software Inc. - All Rights Reserved
|
||
|
* This is unpublished proprietary source code of Ardent Software Inc.
|
||
|
* The copyright notice above does not evidence any actual or intented
|
||
|
* publication of such source code.
|
||
|
*
|
||
|
*******************************************************************************
|
||
|
*
|
||
|
* Maintenence log - insert most recent change descriptions at top
|
||
|
*
|
||
|
* Date.... GTAR# WHO Description.........................................
|
||
|
* 10/14/98 23801 SAP Change copyrights.
|
||
|
* 04/24/95 16305 CSM enhance BTscan,BTprint for a B-tree on disk
|
||
|
* 02/02/95 15893 SHK Change page to uvpage
|
||
|
* 06/22/94 14292 CSM force B-tree to remain in memory, data ptr
|
||
|
* 01/05/93 10506 ENF Add Sql NULL SEEN flag to inlist struct
|
||
|
* 10/07/92 10360 JKW Move inlist defs to inlist.h
|
||
|
*
|
||
|
*****************************************************************************/
|
||
|
|
||
|
/* inlist structures. These are the components of an inlist. */
|
||
|
#define PGN 2
|
||
|
|
||
|
struct item
|
||
|
{
|
||
|
STRING key;
|
||
|
struct uvpage *p;
|
||
|
int count;
|
||
|
STRING data;
|
||
|
};
|
||
|
typedef struct item ITEM;
|
||
|
|
||
|
struct uvpage
|
||
|
{
|
||
|
int m;
|
||
|
struct uvpage *p0;
|
||
|
ITEM *e[PGN*2];
|
||
|
};
|
||
|
typedef struct uvpage PAGE;
|
||
|
|
||
|
struct inlist
|
||
|
{
|
||
|
int memuse;
|
||
|
int count;
|
||
|
int sqlnullseen;
|
||
|
PAGE *root;
|
||
|
DBFILE *t25inlist;
|
||
|
unsigned int
|
||
|
inmem:1; /* Don't flush tree to disk */
|
||
|
};
|
||
|
typedef struct inlist INLIST;
|
||
|
|
||
|
struct inlistc {
|
||
|
union {
|
||
|
struct memcur {
|
||
|
struct inlistc *next;
|
||
|
PAGE *pptr;
|
||
|
} mem;
|
||
|
struct dskcur {
|
||
|
struct SHdata *disk_shd;
|
||
|
DBFILE *t25inlist;
|
||
|
} dsk;
|
||
|
} u;
|
||
|
int node_m;
|
||
|
};
|
||
|
typedef struct inlistc INLISTC; /* Cursor for BT scan */
|
||
|
|
||
|
#define DISKROOT(a) (a->t25inlist)
|
||
|
EXTERN INLIST *InsInitRoot();
|
||
|
EXTERN INLISTC *BTinitscan();
|
||
|
EXTERN INLISTC *BTtermscan();
|
||
|
EXTERN INLISTC *BTscan();
|
||
|
|
||
|
#endif
|