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

数据库系统

开发平台:

Unix_Linux

  1. /*-------------------------------------------------------------------------
  2.  *
  3.  * smgr.h
  4.  *   storage manager switch public interface declarations.
  5.  *
  6.  *
  7.  * Copyright (c) 1994, Regents of the University of California
  8.  *
  9.  * $Id: smgr.h,v 1.14.2.1 1999/07/30 17:07:18 scrappy Exp $
  10.  *
  11.  *-------------------------------------------------------------------------
  12.  */
  13. #ifndef SMGR_H
  14. #define SMGR_H
  15. #include "storage/block.h"
  16. #include "storage/spin.h"
  17. #include "utils/rel.h"
  18. #define SM_FAIL 0
  19. #define SM_SUCCESS 1
  20. #define DEFAULT_SMGR 0
  21. extern int smgrinit(void);
  22. extern int smgrcreate(int16 which, Relation reln);
  23. extern int smgrunlink(int16 which, Relation reln);
  24. extern int smgrextend(int16 which, Relation reln, char *buffer);
  25. extern int smgropen(int16 which, Relation reln);
  26. extern int smgrclose(int16 which, Relation reln);
  27. extern int smgrread(int16 which, Relation reln, BlockNumber blocknum,
  28.  char *buffer);
  29. extern int smgrwrite(int16 which, Relation reln, BlockNumber blocknum,
  30.   char *buffer);
  31. extern int smgrflush(int16 which, Relation reln, BlockNumber blocknum,
  32.   char *buffer);
  33. extern int smgrblindwrt(int16 which, char *dbname, char *relname, Oid dbid,
  34.  Oid relid, BlockNumber blkno, char *buffer);
  35. extern int smgrnblocks(int16 which, Relation reln);
  36. extern int smgrtruncate(int16 which, Relation reln, int nblocks);
  37. extern int smgrcommit(void);
  38. /* internals: move me elsewhere -- ay 7/94 */
  39. /* in md.c */
  40. extern int mdinit(void);
  41. extern int mdcreate(Relation reln);
  42. extern int mdunlink(Relation reln);
  43. extern int mdextend(Relation reln, char *buffer);
  44. extern int mdopen(Relation reln);
  45. extern int mdclose(Relation reln);
  46. extern int mdread(Relation reln, BlockNumber blocknum, char *buffer);
  47. extern int mdwrite(Relation reln, BlockNumber blocknum, char *buffer);
  48. extern int mdflush(Relation reln, BlockNumber blocknum, char *buffer);
  49. extern int mdblindwrt(char *dbstr, char *relstr, Oid dbid, Oid relid,
  50.    BlockNumber blkno, char *buffer);
  51. extern int mdnblocks(Relation reln);
  52. extern int mdtruncate(Relation reln, int nblocks);
  53. extern int mdcommit(void);
  54. extern int mdabort(void);
  55. /* mm.c */
  56. extern SPINLOCK MMCacheLock;
  57. extern int mminit(void);
  58. extern int mmshutdown(void);
  59. extern int mmcreate(Relation reln);
  60. extern int mmunlink(Relation reln);
  61. extern int mmextend(Relation reln, char *buffer);
  62. extern int mmopen(Relation reln);
  63. extern int mmclose(Relation reln);
  64. extern int mmread(Relation reln, BlockNumber blocknum, char *buffer);
  65. extern int mmwrite(Relation reln, BlockNumber blocknum, char *buffer);
  66. extern int mmflush(Relation reln, BlockNumber blocknum, char *buffer);
  67. extern int mmblindwrt(char *dbstr, char *relstr, Oid dbid, Oid relid,
  68.    BlockNumber blkno, char *buffer);
  69. extern int mmnblocks(Relation reln);
  70. extern int mmcommit(void);
  71. extern int mmabort(void);
  72. extern int MMShmemSize(void);
  73. /* smgrtype.c */
  74. extern char *smgrout(int2 i);
  75. extern int2 smgrin(char *s);
  76. extern bool smgreq(int2 a, int2 b);
  77. extern bool smgrne(int2 a, int2 b);
  78. #endif  /* SMGR_H */