lselect.h
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:1k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. /*-------------------------------------------------------------------------
  2.  *
  3.  * lselect.h
  4.  *   definitions for the replacement selection algorithm.
  5.  *
  6.  *
  7.  * Copyright (c) 1994, Regents of the University of California
  8.  *
  9.  * $Id: lselect.h,v 1.12.2.1 1999/08/02 05:25:25 scrappy Exp $
  10.  *
  11.  *-------------------------------------------------------------------------
  12.  */
  13. #ifndef LSELECT_H
  14. #define LSELECT_H
  15. #include "utils/syscache.h"
  16. struct leftist
  17. {
  18. short lt_dist; /* distance to leaf/empty node */
  19. short lt_devnum; /* device number of tuple */
  20. HeapTuple lt_tuple;
  21. struct leftist *lt_left;
  22. struct leftist *lt_right;
  23. };
  24. /* replaces global variables in lselect.c to make it reentrant */
  25. typedef struct
  26. {
  27. TupleDesc tupDesc;
  28. int nKeys;
  29. ScanKey scanKeys;
  30. int sortMem; /* needed for psort */
  31. } LeftistContextData;
  32. typedef LeftistContextData *LeftistContext;
  33. extern struct leftist *lmerge(struct leftist * pt, struct leftist * qt,
  34.    LeftistContext context);
  35. extern HeapTuple gettuple(struct leftist ** treep, short *devnum,
  36.  LeftistContext context);
  37. extern void puttuple(struct leftist ** treep, HeapTuple newtuple, short devnum,
  38.  LeftistContext context);
  39. extern int tuplecmp(HeapTuple ltup, HeapTuple rtup, LeftistContext context);
  40. #ifdef EBUG
  41. extern void checktree(struct leftist * tree, LeftistContext context);
  42. extern int checktreer(struct leftist * tree, int level, LeftistContext context);
  43. #endif  /* EBUG */
  44. #endif  /* LSELECT_H */