tldm-universe/Ardent/UV/gcidir/include/inlist.h
2024-09-09 17:51:08 -04:00

82 lines
2.0 KiB
C
Executable File

#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