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

数据库系统

开发平台:

Unix_Linux

  1. /*-------------------------------------------------------------------------
  2.  *
  3.  * smgrtype.c
  4.  *   storage manager type
  5.  *
  6.  * Copyright (c) 1994, Regents of the University of California
  7.  *
  8.  *
  9.  * IDENTIFICATION
  10.  *   $Header: /usr/local/cvsroot/pgsql/src/backend/storage/smgr/smgrtype.c,v 1.11 1999/02/13 23:18:40 momjian Exp $
  11.  *
  12.  *-------------------------------------------------------------------------
  13.  */
  14. #include <string.h>
  15. #include "postgres.h"
  16. #include "utils/builtins.h" /* where the declarations go */
  17. #include "utils/palloc.h"
  18. #include "storage/smgr.h"
  19. typedef struct smgrid
  20. {
  21. char    *smgr_name;
  22. } smgrid;
  23. /*
  24.  * StorageManager[] -- List of defined storage managers.
  25.  *
  26.  * The weird comma placement is to keep compilers happy no matter
  27.  * which of these is (or is not) defined.
  28.  */
  29. static smgrid StorageManager[] = {
  30. {"magnetic disk"},
  31. #ifdef STABLE_MEMORY_STORAGE
  32. {"main memory"}
  33. #endif
  34. };
  35. static int NStorageManagers = lengthof(StorageManager);
  36. int2
  37. smgrin(char *s)
  38. {
  39. int i;
  40. for (i = 0; i < NStorageManagers; i++)
  41. {
  42. if (strcmp(s, StorageManager[i].smgr_name) == 0)
  43. return (int2) i;
  44. }
  45. elog(ERROR, "smgrin: illegal storage manager name %s", s);
  46. return 0;
  47. }
  48. char *
  49. smgrout(int2 i)
  50. {
  51. char    *s;
  52. if (i >= NStorageManagers || i < 0)
  53. elog(ERROR, "Illegal storage manager id %d", i);
  54. s = (char *) palloc(strlen(StorageManager[i].smgr_name) + 1);
  55. strcpy(s, StorageManager[i].smgr_name);
  56. return s;
  57. }
  58. bool
  59. smgreq(int2 a, int2 b)
  60. {
  61. if (a == b)
  62. return true;
  63. return false;
  64. }
  65. bool
  66. smgrne(int2 a, int2 b)
  67. {
  68. if (a == b)
  69. return false;
  70. return true;
  71. }