univoldmysql.i
上传用户:tsgydb
上传日期:2007-04-14
资源大小:10674k
文件大小:4k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /***************************************************************************
  2. Version control for database, common definitions, and include files
  3. (c) 1994 - 1996 Innobase Oy
  4. Created 1/20/1994 Heikki Tuuri
  5. ****************************************************************************/
  6. #ifndef univ_i
  7. #define univ_i
  8. #define UNIV_INTEL
  9. #define UNIV_PENTIUM
  10. /* If UNIV_WINNT is not defined, we assume Windows 95 */
  11. #define UNIV_WINNT
  12. #define UNIV_WINNT4
  13. #define UNIV_VISUALC
  14. /* DEBUG VERSION CONTROL
  15. ===================== */
  16. /* Make a profiler version where mutex_fence does not use CPUID and therefore
  17. is not totally safe. The sync-library must be recompiled before profiling. */
  18. /*
  19. #define UNIV_PROFILE
  20. */
  21. /* When the following flag is defined, also mutex lock word reset to 0
  22. in mutex_exit is performed using a serializing instruction, which does not
  23. allow speculative reads be performed before memory writes */
  24. /*
  25. #define SYNC_SERIALIZE_MUTEX_RESET
  26. */
  27. /* Make a non-inline debug version */
  28. #define UNIV_DEBUG
  29. #define UNIV_MEM_DEBUG
  30. #define UNIV_SYNC_DEBUG
  31. #define UNIV_SEARCH_DEBUG
  32. #define UNIV_IBUF_DEBUG
  33. #define UNIV_SEARCH_PERF_STAT
  34. #define UNIV_SYNC_PERF_STAT
  35. #define UNIV_LIGHT_MEM_DEBUG
  36. #define YYDEBUG 1
  37. /*
  38. #define UNIV_SQL_DEBUG
  39. #define UNIV_LOG_DEBUG
  40. */
  41. /* the above option prevents forcing of log to disk
  42. at a buffer page write: it should be tested with this
  43. option off; also some ibuf tests are suppressed */
  44. /*
  45. #define UNIV_BASIC_LOG_DEBUG
  46. */
  47. /* the above option enables basic recovery debugging:
  48. new allocated file pages are reset */
  49. /* The debug version is slower, thus we may change the length of test loops
  50. depending on the UNIV_DBC parameter */
  51. #ifdef UNIV_DEBUG
  52. #define UNIV_DBC 1
  53. #else
  54. #define UNIV_DBC 100
  55. #endif
  56. #ifndef UNIV_DEBUG
  57. /* Definition for inline version */
  58. #ifdef UNIV_VISUALC
  59. #define UNIV_INLINE   __inline
  60. #elif defined(UNIV_GNUC)
  61. #define UNIV_INLINE     extern __inline__
  62. #endif
  63. #else
  64. /* If we want to compile a noninlined version we use the following macro
  65. definitions: */
  66. #define UNIV_NONINL
  67. #define UNIV_INLINE
  68. #endif /* UNIV_DEBUG */
  69. /* If the compiler does not know inline specifier, we use: */
  70. /*
  71. #define UNIV_INLINE     static
  72. */
  73. /*
  74. MACHINE VERSION CONTROL
  75. =======================
  76. */
  77. #ifdef UNIV_PENTIUM
  78. /* In a 32-bit computer word size is 4 */
  79. #define UNIV_WORD_SIZE 4
  80. /* The following alignment is used in memory allocations in memory heap
  81. management to ensure correct alignment for doubles etc. */
  82. #define UNIV_MEM_ALIGNMENT      8
  83. /* The following alignment is used in aligning lints etc. */
  84. #define UNIV_WORD_ALIGNMENT UNIV_WORD_SIZE
  85. #endif
  86. /*
  87. DATABASE VERSION CONTROL
  88. ========================
  89. */
  90. /* The universal page size of the database */
  91. #define UNIV_PAGE_SIZE          8192    /* NOTE! Currently, this has to be a
  92. power of 2 and divisible by
  93. UNIV_MEM_ALIGNMENT */
  94. /* 2-based logarithm of UNIV_PAGE_SIZE */
  95. #define UNIV_PAGE_SIZE_SHIFT 13
  96. /* Do asynchronous io in buffer pool read/write operations */
  97. #ifdef UNIV_WINNT
  98. #define UNIV_ASYNC_IO
  99. #endif
  100. /* Do non-buffered io in buffer pool read/write operations */
  101. #define UNIV_NON_BUFFERED_IO
  102. /* Maximum number of parallel threads in a parallelized operation */
  103. #define UNIV_MAX_PARALLELISM 32
  104. /*
  105. UNIVERSAL TYPE DEFINITIONS
  106. ==========================
  107. */
  108. /*
  109. typedef unsigned char   byte;
  110. */
  111. /* An other basic type we use is unsigned long integer which is intended to be
  112. equal to the word size of the machine. */
  113. typedef unsigned long int ulint;
  114. typedef long int lint;
  115. /* The following type should be at least a 64-bit floating point number */
  116. typedef double utfloat;
  117. /* The 'undefined' value for a ulint */
  118. #define ULINT_UNDEFINED ((ulint)(-1))
  119. /* The undefined 32-bit unsigned integer */
  120. #define ULINT32_UNDEFINED 0xFFFFFFFF
  121. /* Maximum value for a ulint */
  122. #define ULINT_MAX ((ulint)(-2))
  123. /* Definition of the boolean type */
  124. #ifndef bool
  125. typedef ulint    bool;
  126. #endif
  127. #define TRUE    1
  128. #define FALSE   0
  129. /* The following number as the length of a logical field means that the field
  130. has the SQL NULL as its value. */
  131. #define UNIV_SQL_NULL  ULINT_UNDEFINED
  132. #include <stdio.h>
  133. #include "ut0dbg.h"
  134. #include "ut0ut.h"
  135. #include "db0err.h"
  136. #endif