lselect.h
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:1k
- /*-------------------------------------------------------------------------
- *
- * lselect.h
- * definitions for the replacement selection algorithm.
- *
- *
- * Copyright (c) 1994, Regents of the University of California
- *
- * $Id: lselect.h,v 1.12.2.1 1999/08/02 05:25:25 scrappy Exp $
- *
- *-------------------------------------------------------------------------
- */
- #ifndef LSELECT_H
- #define LSELECT_H
- #include "utils/syscache.h"
- struct leftist
- {
- short lt_dist; /* distance to leaf/empty node */
- short lt_devnum; /* device number of tuple */
- HeapTuple lt_tuple;
- struct leftist *lt_left;
- struct leftist *lt_right;
- };
- /* replaces global variables in lselect.c to make it reentrant */
- typedef struct
- {
- TupleDesc tupDesc;
- int nKeys;
- ScanKey scanKeys;
- int sortMem; /* needed for psort */
- } LeftistContextData;
- typedef LeftistContextData *LeftistContext;
- extern struct leftist *lmerge(struct leftist * pt, struct leftist * qt,
- LeftistContext context);
- extern HeapTuple gettuple(struct leftist ** treep, short *devnum,
- LeftistContext context);
- extern void puttuple(struct leftist ** treep, HeapTuple newtuple, short devnum,
- LeftistContext context);
- extern int tuplecmp(HeapTuple ltup, HeapTuple rtup, LeftistContext context);
- #ifdef EBUG
- extern void checktree(struct leftist * tree, LeftistContext context);
- extern int checktreer(struct leftist * tree, int level, LeftistContext context);
- #endif /* EBUG */
- #endif /* LSELECT_H */