CMGDK r49-rc2
K:/CMGDKv18/SDK/Source/SQL/MySQL/include/my_base.h
浏览该文件的文档。
00001 / *   C o p y r i g h t   ( C )   2 0 0 0   M y S Q L   A B 
00002  
00003        T h i s   p r o g r a m   i s   f r e e   s o f t w a r e ;   y o u   c a n   r e d i s t r i b u t e   i t   a n d / o r   m o d i f y 
00004  
00005        i t   u n d e r   t h e   t e r m s   o f   t h e   G N U   G e n e r a l   P u b l i c   L i c e n s e   a s   p u b l i s h e d   b y 
00006  
00007        t h e   F r e e   S o f t w a r e   F o u n d a t i o n ;   v e r s i o n   2   o f   t h e   L i c e n s e . 
00008  
00009        T h i s   p r o g r a m   i s   d i s t r i b u t e d   i n   t h e   h o p e   t h a t   i t   w i l l   b e   u s e f u l , 
00010  
00011        b u t   W I T H O U T   A N Y   W A R R A N T Y ;   w i t h o u t   e v e n   t h e   i m p l i e d   w a r r a n t y   o f 
00012  
00013        M E R C H A N T A B I L I T Y   o r   F I T N E S S   F O R   A   P A R T I C U L A R   P U R P O S E .     S e e   t h e 
00014  
00015        G N U   G e n e r a l   P u b l i c   L i c e n s e   f o r   m o r e   d e t a i l s . 
00016  
00017        Y o u   s h o u l d   h a v e   r e c e i v e d   a   c o p y   o f   t h e   G N U   G e n e r a l   P u b l i c   L i c e n s e 
00018  
00019        a l o n g   w i t h   t h i s   p r o g r a m ;   i f   n o t ,   w r i t e   t o   t h e   F r e e   S o f t w a r e 
00020  
00021        F o u n d a t i o n ,   I n c . ,   5 9   T e m p l e   P l a c e ,   S u i t e   3 3 0 ,   B o s t o n ,   M A     0 2 1 1 1 - 1 3 0 7     U S A   * / 
00022  
00023  / *   T h i s   f i l e   i n c l u d e s   c o n s t a n t s   u s e d   w i t h   a l l   d a t a b a s e s   * / 
00024  
00025  # i f n d e f   _ m y _ b a s e _ h 
00026  
00027  # d e f i n e   _ m y _ b a s e _ h 
00028  
00029  # i f n d e f   s t d i n               / *   I n c l u d e d   f i r s t   i n   h a n d l e r   * / 
00030  
00031  # d e f i n e   C H S I Z E _ U S E D 
00032  
00033  # i n c l u d e   < m y _ g l o b a l . h > 
00034  
00035  # i n c l u d e   < m y _ d i r . h >           / *   T h i s   i n c l u d e s   t y p e s   * / 
00036  
00037  # i n c l u d e   < m y _ s y s . h > 
00038  
00039  # i n c l u d e   < m _ s t r i n g . h > 
00040  
00041  # i n c l u d e   < e r r n o . h > 
00042  
00043  # i f n d e f   E O V E R F L O W 
00044  
00045  # d e f i n e   E O V E R F L O W   8 4 
00046  
00047  # e n d i f 
00048  
00049  # i f   ! d e f i n e d ( U S E _ M Y _ F U N C )   & &   ! d e f i n e d ( T H R E A D ) 
00050  
00051  # i n c l u d e   < m y _ n o s y s . h >           / *   F o r   f a s t e r   c o d e ,   a f t e r   t e s t   * / 
00052  
00053  # e n d i f     / *   U S E _ M Y _ F U N C   * / 
00054  
00055  # e n d i f     / *   s t d i n   * / 
00056  
00057  # i n c l u d e   < m y _ l i s t . h > 
00058  
00059  / *   T h e   f o l l o w i n g   i s   b i t s   i n   t h e   f l a g   p a r a m e t e r   t o   h a _ o p e n ( )   * / 
00060  
00061  # d e f i n e   H A _ O P E N _ A B O R T _ I F _ L O C K E D       0   / *   d e f a u l t   * / 
00062  
00063  # d e f i n e   H A _ O P E N _ W A I T _ I F _ L O C K E D         1 
00064  
00065  # d e f i n e   H A _ O P E N _ I G N O R E _ I F _ L O C K E D     2 
00066  
00067  # d e f i n e   H A _ O P E N _ T M P _ T A B L E       4   / *   T a b l e   i s   a   t e m p   t a b l e   * / 
00068  
00069  # d e f i n e   H A _ O P E N _ D E L A Y _ K E Y _ W R I T E       8   / *   D o n ' t   u p d a t e   i n d e x     * / 
00070  
00071  # d e f i n e   H A _ O P E N _ A B O R T _ I F _ C R A S H E D     1 6 
00072  
00073  # d e f i n e   H A _ O P E N _ F O R _ R E P A I R         3 2     / *   o p e n   e v e n   i f   c r a s h e d   * / 
00074  
00075  # d e f i n e   H A _ O P E N _ F R O M _ S Q L _ L A Y E R                     6 4 
00076  
00077  # d e f i n e   H A _ O P E N _ M M A P                                         1 2 8           / *   o p e n   m e m o r y   m a p p e d   * / 
00078  
00079  # d e f i n e   H A _ O P E N _ C O P Y             2 5 6           / *   O p e n   c o p y   ( f o r   r e p a i r )   * / 
00080  
00081  / *   I n t e r n a l   t e m p   t a b l e ,   u s e d   f o r   t e m p o r a r y   r e s u l t s   * / 
00082  
00083  # d e f i n e   H A _ O P E N _ I N T E R N A L _ T A B L E                     5 1 2 
00084  
00085  / *   T h e   f o l l o w i n g   i s   p a r a m e t e r   t o   h a _ r k e y ( )   h o w   t o   u s e   k e y   * / 
00086  
00087  / * 
00088  
00089      W e   d e f i n e   a   c o m p l e t e - f i e l d   p r e f i x   o f   a   k e y   v a l u e   a s   a   p r e f i x   w h e r e 
00090  
00091      t h e   l a s t   i n c l u d e d   f i e l d   i n   t h e   p r e f i x   c o n t a i n s   t h e   f u l l   f i e l d ,   n o t 
00092  
00093      j u s t   s o m e   b y t e s   f r o m   t h e   s t a r t   o f   t h e   f i e l d .   A   p a r t i a l - f i e l d   p r e f i x 
00094  
00095      i s   a l l o w e d   t o   c o n t a i n   o n l y   a   f e w   f i r s t   b y t e s   f r o m   t h e   l a s t   i n c l u d e d 
00096  
00097      f i e l d . 
00098  
00099      B e l o w   H A _ R E A D _ K E Y _ E X A C T ,   . . . ,   H A _ R E A D _ B E F O R E _ K E Y   c a n   t a k e   a 
00100  
00101      c o m p l e t e - f i e l d   p r e f i x   o f   a   k e y   v a l u e   a s   t h e   s e a r c h 
00102  
00103      k e y .   H A _ R E A D _ P R E F I X   a n d   H A _ R E A D _ P R E F I X _ L A S T   c o u l d   a l s o   t a k e   a 
00104  
00105      p a r t i a l - f i e l d   p r e f i x ,   b u t   c u r r e n t l y   ( 4 . 0 . 1 0 )   t h e y   a r e   o n l y   u s e d   w i t h 
00106  
00107      c o m p l e t e - f i e l d   p r e f i x e s .   M y S Q L   u s e s   a   p a d d i n g   t r i c k   t o   i m p l e m e n t 
00108  
00109      L I K E   ' a b c % '   q u e r i e s . 
00110  
00111      N O T E   t h a t   i n   I n n o D B   H A _ R E A D _ P R E F I X _ L A S T   w i l l   N O T   w o r k   w i t h   a 
00112  
00113      p a r t i a l - f i e l d   p r e f i x   b e c a u s e   I n n o D B   c u r r e n t l y   s t r i p s   s p a c e s   f r o m   t h e 
00114  
00115      e n d   o f   v a r c h a r   f i e l d s ! 
00116  
00117  * / 
00118  
00119  e n u m   h a _ r k e y _ f u n c t i o n   { 
00120  
00121      H A _ R E A D _ K E Y _ E X A C T ,                             / *   F i n d   f i r s t   r e c o r d   e l s e   e r r o r   * / 
00122  
00123      H A _ R E A D _ K E Y _ O R _ N E X T ,                         / *   R e c o r d   o r   n e x t   r e c o r d   * / 
00124  
00125      H A _ R E A D _ K E Y _ O R _ P R E V ,                         / *   R e c o r d   o r   p r e v i o u s   * / 
00126  
00127      H A _ R E A D _ A F T E R _ K E Y ,                             / *   F i n d   n e x t   r e c .   a f t e r   k e y - r e c o r d   * / 
00128  
00129      H A _ R E A D _ B E F O R E _ K E Y ,                           / *   F i n d   n e x t   r e c .   b e f o r e   k e y - r e c o r d   * / 
00130  
00131      H A _ R E A D _ P R E F I X ,                                   / *   K e y   w h i c h   a s   s a m e   p r e f i x   * / 
00132  
00133      H A _ R E A D _ P R E F I X _ L A S T ,                         / *   L a s t   k e y   w i t h   t h e   s a m e   p r e f i x   * / 
00134  
00135      H A _ R E A D _ P R E F I X _ L A S T _ O R _ P R E V ,         / *   L a s t   o r   p r e v   k e y   w i t h   t h e   s a m e   p r e f i x   * / 
00136  
00137      H A _ R E A D _ M B R _ C O N T A I N , 
00138  
00139      H A _ R E A D _ M B R _ I N T E R S E C T , 
00140  
00141      H A _ R E A D _ M B R _ W I T H I N , 
00142  
00143      H A _ R E A D _ M B R _ D I S J O I N T , 
00144  
00145      H A _ R E A D _ M B R _ E Q U A L 
00146  
00147  } ; 
00148  
00149      / *   K e y   a l g o r i t h m   t y p e s   * / 
00150  
00151  e n u m   h a _ k e y _ a l g   { 
00152  
00153      H A _ K E Y _ A L G _ U N D E F =   0 ,         / *   N o t   s p e c i f i e d   ( o l d   f i l e )   * / 
00154  
00155      H A _ K E Y _ A L G _ B T R E E =   1 ,         / *   B - t r e e ,   d e f a u l t   o n e                     * / 
00156  
00157      H A _ K E Y _ A L G _ R T R E E =   2 ,         / *   R - t r e e ,   f o r   s p a t i a l   s e a r c h e s   * / 
00158  
00159      H A _ K E Y _ A L G _ H A S H =     3 ,         / *   H A S H   k e y s   ( H E A P   t a b l e s )   * / 
00160  
00161      H A _ K E Y _ A L G _ F U L L T E X T =     4       / *   F U L L T E X T   ( M y I S A M   t a b l e s )   * / 
00162  
00163  } ; 
00164  
00165      / *   I n d e x   a n d   t a b l e   b u i l d   m e t h o d s   * / 
00166  
00167  e n u m   h a _ b u i l d _ m e t h o d   {   
00168  
00169      H A _ B U I L D _ D E F A U L T ,   
00170  
00171      H A _ B U I L D _ O N L I N E , 
00172  
00173      H A _ B U I L D _ O F F L I N E   
00174  
00175  } ; 
00176  
00177                  / *   S t o r a g e   m e d i a   t y p e s   * /   
00178  
00179  e n u m   h a _ s t o r a g e _ m e d i a   { 
00180  
00181      H A _ S M _ D E F A U L T =                 0 ,         / *   N o t   s p e c i f i e d   ( e n g i n e   d e f a u l t )   * / 
00182  
00183      H A _ S M _ D I S K =                       1 ,         / *   D I S K   s t o r a g e   * / 
00184  
00185      H A _ S M _ M E M O R Y =                   2       / *   M A I N   M E M O R Y   s t o r a g e   * / 
00186  
00187  } ; 
00188  
00189      / *   T h e   f o l l o w i n g   i s   p a r a m e t e r   t o   h a _ e x t r a ( )   * / 
00190  
00191  e n u m   h a _ e x t r a _ f u n c t i o n   { 
00192  
00193      H A _ E X T R A _ N O R M A L = 0 ,             / *   O p t i m i z e   f o r   s p a c e   ( d e f )   * / 
00194  
00195      H A _ E X T R A _ Q U I C K = 1 ,           / *   O p t i m i z e   f o r   s p e e d   * / 
00196  
00197      H A _ E X T R A _ N O T _ U S E D = 2 , 
00198  
00199      H A _ E X T R A _ C A C H E = 3 ,           / *   C a c h e   r e c o r d   i n   H A _ r r n d ( )   * / 
00200  
00201      H A _ E X T R A _ N O _ C A C H E = 4 ,             / *   E n d   c a c h i n g   o f   r e c o r d s   ( d e f )   * / 
00202  
00203      H A _ E X T R A _ N O _ R E A D C H E C K = 5 ,         / *   N o   r e a d c h e c k   o n   u p d a t e   * / 
00204  
00205      H A _ E X T R A _ R E A D C H E C K = 6 ,           / *   U s e   r e a d c h e c k   ( d e f )   * / 
00206  
00207      H A _ E X T R A _ K E Y R E A D = 7 ,           / *   R e a d   o n l y   k e y   t o   d a t a b a s e   * / 
00208  
00209      H A _ E X T R A _ N O _ K E Y R E A D = 8 ,         / *   N o r m a l   r e a d   o f   r e c o r d s   ( d e f )   * / 
00210  
00211      H A _ E X T R A _ N O _ U S E R _ C H A N G E = 9 ,         / *   N o   u s e r   i s   a l l o w e d   t o   w r i t e   * / 
00212  
00213      H A _ E X T R A _ K E Y _ C A C H E = 1 0 , 
00214  
00215      H A _ E X T R A _ N O _ K E Y _ C A C H E = 1 1 , 
00216  
00217      H A _ E X T R A _ W A I T _ L O C K = 1 2 ,         / *   W a i t   u n t i l   f i l e   i s   a v a l a b l y   ( d e f )   * / 
00218  
00219      H A _ E X T R A _ N O _ W A I T _ L O C K = 1 3 ,       / *   I f   f i l e   i s   l o c k e d ,   r e t u r n   q u i c k l y   * / 
00220  
00221      H A _ E X T R A _ W R I T E _ C A C H E = 1 4 ,         / *   U s e   w r i t e   c a c h e   i n   h a _ w r i t e ( )   * / 
00222  
00223      H A _ E X T R A _ F L U S H _ C A C H E = 1 5 ,         / *   f l u s h   w r i t e _ r e c o r d _ c a c h e   * / 
00224  
00225      H A _ E X T R A _ N O _ K E Y S = 1 6 ,             / *   R e m o v e   a l l   u p d a t e   o f   k e y s   * / 
00226  
00227      H A _ E X T R A _ K E Y R E A D _ C H A N G E _ P O S = 1 7 ,   / *   K e y r e a d ,   b u t   c h a n g e   p o s   * / 
00228  
00229                      / *   x x x x c h k   - r   m u s t   b e   u s e d   * / 
00230  
00231      H A _ E X T R A _ R E M E M B E R _ P O S = 1 8 ,       / *   R e m e m b e r   p o s   f o r   n e x t / p r e v   * / 
00232  
00233      H A _ E X T R A _ R E S T O R E _ P O S = 1 9 , 
00234  
00235      H A _ E X T R A _ R E I N I T _ C A C H E = 2 0 ,       / *   i n i t   c a c h e   f r o m   c u r r e n t   r e c o r d   * / 
00236  
00237      H A _ E X T R A _ F O R C E _ R E O P E N = 2 1 ,       / *   D a t a f i l e   h a v e   c h a n g e d   o n   d i s k   * / 
00238  
00239      H A _ E X T R A _ F L U S H ,           / *   F l u s h   t a b l e s   t o   d i s k   * / 
00240  
00241      H A _ E X T R A _ N O _ R O W S ,           / *   D o n ' t   w r i t e   r o w s   * / 
00242  
00243      H A _ E X T R A _ R E S E T _ S T A T E ,           / *   R e s e t   p o s i t i o n s   * / 
00244  
00245      H A _ E X T R A _ I G N O R E _ D U P _ K E Y ,         / *   D u p   k e y s   d o n ' t   r o l l b a c k   e v e r y t h i n g * / 
00246  
00247      H A _ E X T R A _ N O _ I G N O R E _ D U P _ K E Y , 
00248  
00249      H A _ E X T R A _ P R E P A R E _ F O R _ D R O P , 
00250  
00251      H A _ E X T R A _ P R E P A R E _ F O R _ U P D A T E ,         / *   R e m o v e   r e a d   c a c h e   i f   p r o b l e m s   * / 
00252  
00253      H A _ E X T R A _ P R E L O A D _ B U F F E R _ S I Z E ,                   / *   S e t   b u f f e r   s i z e   f o r   p r e l o a d i n g   * / 
00254  
00255      / * 
00256  
00257          O n - t h e - f l y   s w i t c h i n g   b e t w e e n   u n i q u e   a n d   n o n - u n i q u e   k e y   i n s e r t i n g . 
00258  
00259      * / 
00260  
00261      H A _ E X T R A _ C H A N G E _ K E Y _ T O _ U N I Q U E , 
00262  
00263      H A _ E X T R A _ C H A N G E _ K E Y _ T O _ D U P , 
00264  
00265      / * 
00266  
00267          W h e n   u s i n g   H A _ E X T R A _ K E Y R E A D ,   o v e r w r i t e   o n l y   k e y   m e m b e r   f i e l d s   a n d   k e e p   
00268  
00269          o t h e r   f i e l d s   i n t a c t .   W h e n   t h i s   i s   o f f   ( b y   d e f a u l t )   I n n o D B   w i l l   u s e   m e m c p y 
00270  
00271          t o   o v e r w r i t e   e n t i r e   r o w . 
00272  
00273      * / 
00274  
00275      H A _ E X T R A _ K E Y R E A D _ P R E S E R V E _ F I E L D S , 
00276  
00277      H A _ E X T R A _ M M A P , 
00278  
00279      / * 
00280  
00281          I g n o r e   i f   t h e   a   t u p l e   i s   n o t   f o u n d ,   c o n t i n u e   p r o c e s s i n g   t h e 
00282  
00283          t r a n s a c t i o n   a n d   i g n o r e   t h a t   ' r o w ' .     N e e d e d   f o r   i d e m p o t e n c y 
00284  
00285          h a n d l i n g   o n   t h e   s l a v e 
00286  
00287          C u r r e n t l y   o n l y   u s e d   b y   N D B   s t o r a g e   e n g i n e .   P a r t i t i o n   h a n d l e r   i g n o r e s   f l a g . 
00288  
00289      * / 
00290  
00291      H A _ E X T R A _ I G N O R E _ N O _ K E Y , 
00292  
00293      H A _ E X T R A _ N O _ I G N O R E _ N O _ K E Y , 
00294  
00295      / * 
00296  
00297          M a r k   t h e   t a b l e   a s   a   l o g   t a b l e .   F o r   s o m e   h a n d l e r s   ( e . g .   C S V )   t h i s   r e s u l t s 
00298  
00299          i n   a   s p e c i a l   l o c k i n g   f o r   t h e   t a b l e . 
00300  
00301      * / 
00302  
00303      H A _ E X T R A _ M A R K _ A S _ L O G _ T A B L E , 
00304  
00305      / * 
00306  
00307          I n f o r m s   h a n d l e r   t h a t   w r i t e _ r o w ( )   w h i c h   t r i e s   t o   i n s e r t   n e w   r o w   i n t o   t h e 
00308  
00309          t a b l e   a n d   e n c o u n t e r s   s o m e   a l r e a d y   e x i s t i n g   r o w   w i t h   s a m e   p r i m a r y / u n i q u e 
00310  
00311          k e y   c a n   r e p l a c e   o l d   r o w   w i t h   n e w   r o w   i n s t e a d   o f   r e p o r t i n g   e r r o r   ( b a s i c a l l y 
00312  
00313          i t   i n f o r m s   h a n d l e r   t h a t   w e   d o   R E P L A C E   i n s t e a d   o f   s i m p l e   I N S E R T ) . 
00314  
00315          O f f   b y   d e f a u l t . 
00316  
00317      * / 
00318  
00319      H A _ E X T R A _ W R I T E _ C A N _ R E P L A C E , 
00320  
00321      H A _ E X T R A _ W R I T E _ C A N N O T _ R E P L A C E , 
00322  
00323      / * 
00324  
00325          I n f o r m   h a n d l e r   t h a t   d e l e t e _ r o w ( ) / u p d a t e _ r o w ( )   c a n n o t   b a t c h   d e l e t e s / u p d a t e s 
00326  
00327          a n d   s h o u l d   p e r f o r m   t h e m   i m m e d i a t e l y .   T h i s   m a y   b e   n e e d e d   w h e n   t a b l e   h a s   
00328  
00329          A F T E R   D E L E T E / U P D A T E   t r i g g e r s   w h i c h   a c c e s s   t o   s u b j e c t   t a b l e . 
00330  
00331          T h e s e   f l a g s   a r e   r e s e t   b y   t h e   h a n d l e r : : e x t r a ( H A _ E X T R A _ R E S E T )   c a l l . 
00332  
00333      * / 
00334  
00335      H A _ E X T R A _ D E L E T E _ C A N N O T _ B A T C H , 
00336  
00337      H A _ E X T R A _ U P D A T E _ C A N N O T _ B A T C H , 
00338  
00339      / * 
00340  
00341          I n f o r m   h a n d l e r   t h a t   a n   " I N S E R T . . . O N   D U P L I C A T E   K E Y   U P D A T E "   w i l l   b e 
00342  
00343          e x e c u t e d .   T h i s   c o n d i t i o n   i s   u n s e t   b y   H A _ E X T R A _ N O _ I G N O R E _ D U P _ K E Y . 
00344  
00345      * / 
00346  
00347      H A _ E X T R A _ I N S E R T _ W I T H _ U P D A T E , 
00348  
00349      / *   I n f o r m   h a n d l e r   t h a t   w e   w i l l   d o   a   r e n a m e   * / 
00350  
00351      H A _ E X T R A _ P R E P A R E _ F O R _ R E N A M E , 
00352  
00353      / * 
00354  
00355          S p e c i a l   a c t i o n s   f o r   M E R G E   t a b l e s . 
00356  
00357      * / 
00358  
00359      H A _ E X T R A _ A D D _ C H I L D R E N _ L I S T , 
00360  
00361      H A _ E X T R A _ A T T A C H _ C H I L D R E N , 
00362  
00363      H A _ E X T R A _ I S _ A T T A C H E D _ C H I L D R E N , 
00364  
00365      H A _ E X T R A _ D E T A C H _ C H I L D R E N , 
00366  
00367      H A _ E X T R A _ O R D E R B Y _ L I M I T , 
00368  
00369      H A _ E X T R A _ N O _ O R D E R B Y _ L I M I T , 
00370  
00371      / *   I n f o r m   h a n d l e r   w e   w i l l   f o r c e   a   c l o s e   a s   p a r t   o f   f l u s h   * / 
00372  
00373      H A _ E X T R A _ P R E P A R E _ F O R _ F O R C E D _ C L O S E , 
00374  
00375      H A _ E X T R A _ A L L O W _ L O G _ D E L E T E 
00376  
00377  } ; 
00378  
00379  / *   C o m p a t i b l e   o p t i o n ,   t o   b e   d e l e t e d   i n   6 . 0   * / 
00380  
00381  # d e f i n e   H A _ E X T R A _ P R E P A R E _ F O R _ D E L E T E   H A _ E X T R A _ P R E P A R E _ F O R _ D R O P 
00382  
00383      / *   T h e   f o l l o w i n g   i s   p a r a m e t e r   t o   h a _ p a n i c ( )   * / 
00384  
00385  e n u m   h a _ p a n i c _ f u n c t i o n   { 
00386  
00387      H A _ P A N I C _ C L O S E ,           / *   C l o s e   a l l   d a t a b a s e s   * / 
00388  
00389      H A _ P A N I C _ W R I T E ,           / *   U n l o c k   a n d   w r i t e   s t a t u s   * / 
00390  
00391      H A _ P A N I C _ R E A D               / *   L o c k   a n d   r e a d   k e y i n f o   * / 
00392  
00393  } ; 
00394  
00395      / *   T h e   f o l l o w i n g   i s   p a r a m e t e r   t o   h a _ c r e a t e ( ) ;   k e y t y p e s   * / 
00396  
00397  e n u m   h a _ b a s e _ k e y t y p e   { 
00398  
00399      H A _ K E Y T Y P E _ E N D = 0 , 
00400  
00401      H A _ K E Y T Y P E _ T E X T = 1 ,             / *   K e y   i s   s o r t e d   a s   l e t t e r s   * / 
00402  
00403      H A _ K E Y T Y P E _ B I N A R Y = 2 ,             / *   K e y   i s   s o r t e d   a s   u n s i g n e d   c h a r s   * / 
00404  
00405      H A _ K E Y T Y P E _ S H O R T _ I N T = 3 , 
00406  
00407      H A _ K E Y T Y P E _ L O N G _ I N T = 4 , 
00408  
00409      H A _ K E Y T Y P E _ F L O A T = 5 , 
00410  
00411      H A _ K E Y T Y P E _ D O U B L E = 6 , 
00412  
00413      H A _ K E Y T Y P E _ N U M = 7 ,           / *   N o t   p a c k e d   n u m   w i t h   p r e - s p a c e   * / 
00414  
00415      H A _ K E Y T Y P E _ U S H O R T _ I N T = 8 , 
00416  
00417      H A _ K E Y T Y P E _ U L O N G _ I N T = 9 , 
00418  
00419      H A _ K E Y T Y P E _ L O N G L O N G = 1 0 , 
00420  
00421      H A _ K E Y T Y P E _ U L O N G L O N G = 1 1 , 
00422  
00423      H A _ K E Y T Y P E _ I N T 2 4 = 1 2 , 
00424  
00425      H A _ K E Y T Y P E _ U I N T 2 4 = 1 3 , 
00426  
00427      H A _ K E Y T Y P E _ I N T 8 = 1 4 , 
00428  
00429      / *   V a r c h a r   ( 0 - 2 5 5   b y t e s )   w i t h   l e n g t h   p a c k e d   w i t h   1   b y t e   * / 
00430  
00431      H A _ K E Y T Y P E _ V A R T E X T 1 = 1 5 ,                               / *   K e y   i s   s o r t e d   a s   l e t t e r s   * / 
00432  
00433      H A _ K E Y T Y P E _ V A R B I N A R Y 1 = 1 6 ,                           / *   K e y   i s   s o r t e d   a s   u n s i g n e d   c h a r s   * / 
00434  
00435      / *   V a r c h a r   ( 0 - 6 5 5 3 5   b y t e s )   w i t h   l e n g t h   p a c k e d   w i t h   2   b y t e s   * / 
00436  
00437      H A _ K E Y T Y P E _ V A R T E X T 2 = 1 7 ,       / *   K e y   i s   s o r t e d   a s   l e t t e r s   * / 
00438  
00439      H A _ K E Y T Y P E _ V A R B I N A R Y 2 = 1 8 ,       / *   K e y   i s   s o r t e d   a s   u n s i g n e d   c h a r s   * / 
00440  
00441      H A _ K E Y T Y P E _ B I T = 1 9 
00442  
00443  } ; 
00444  
00445  # d e f i n e   H A _ M A X _ K E Y T Y P E     3 1         / *   M u s t   b e   l o g 2 - 1   * / 
00446  
00447  / * 
00448  
00449      T h e s e   f l a g s   k a n   b e   O R : e d   t o   k e y - f l a g 
00450  
00451      N o t e   t h a t   t h e s e   c a n   o n l y   b e   u p   t o   1 6   b i t s ! 
00452  
00453  * / 
00454  
00455  # d e f i n e   H A _ N O S A M E         1     / *   S e t   i f   n o t   d u p p l i c a t e d   r e c o r d s   * / 
00456  
00457  # d e f i n e   H A _ P A C K _ K E Y         2     / *   P a c k   s t r i n g   k e y   t o   p r e v i o u s   k e y   * / 
00458  
00459  # d e f i n e   H A _ A U T O _ K E Y         1 6 
00460  
00461  # d e f i n e   H A _ B I N A R Y _ P A C K _ K E Y       3 2   / *   P a c k i n g   o f   a l l   k e y s   t o   p r e v   k e y   * / 
00462  
00463  # d e f i n e   H A _ F U L L T E X T       1 2 8           / *   F o r   f u l l - t e x t   s e a r c h   * / 
00464  
00465  # d e f i n e   H A _ U N I Q U E _ C H E C K       2 5 6   / *   C h e c k   t h e   k e y   f o r   u n i q u e n e s s   * / 
00466  
00467  # d e f i n e   H A _ S P A T I A L         1 0 2 4         / *   F o r   s p a t i a l   s e a r c h   * / 
00468  
00469  # d e f i n e   H A _ N U L L _ A R E _ E Q U A L   2 0 4 8     / *   N U L L   i n   k e y   a r e   c m p   a s   e q u a l   * / 
00470  
00471  # d e f i n e   H A _ G E N E R A T E D _ K E Y     8 1 9 2     / *   A u t o m a t i c l y   g e n e r a t e d   k e y   * / 
00472  
00473  # d e f i n e   H A _ R T R E E _ I N D E X                     1 6 3 8 4   / *   F o r   R T R E E   s e a r c h   * / 
00474  
00475                  / *   T h e   c o m b i n a t i o n   o f   t h e   a b o v e   c a n   b e   u s e d   f o r   k e y   t y p e   c o m p a r i s o n .   * / 
00476  
00477  # d e f i n e   H A _ K E Y F L A G _ M A S K   ( H A _ N O S A M E   |   H A _ P A C K _ K E Y   |   H A _ A U T O _ K E Y   |   \ 
00478  
00479                                                    H A _ B I N A R Y _ P A C K _ K E Y   |   H A _ F U L L T E X T   |   H A _ U N I Q U E _ C H E C K   |   \ 
00480  
00481                                                    H A _ S P A T I A L   |   H A _ N U L L _ A R E _ E Q U A L   |   H A _ G E N E R A T E D _ K E Y   |   \ 
00482  
00483                                                    H A _ R T R E E _ I N D E X ) 
00484  
00485  # d e f i n e   H A _ K E Y _ H A S _ P A R T _ K E Y _ S E G   6 5 5 3 6       / *   K e y   c o n t a i n s   p a r t i a l   s e g m e n t s   * / 
00486  
00487      / *   A u t o m a t i c   b i t s   i n   k e y - f l a g   * / 
00488  
00489  # d e f i n e   H A _ S P A C E _ P A C K _ U S E D       4     / *   T e s t   f o r   i f   S P A C E _ P A C K   u s e d   * / 
00490  
00491  # d e f i n e   H A _ V A R _ L E N G T H _ K E Y     8 
00492  
00493  # d e f i n e   H A _ N U L L _ P A R T _ K E Y       6 4 
00494  
00495  # d e f i n e   H A _ U S E S _ C O M M E N T                     4 0 9 6 
00496  
00497  # d e f i n e   H A _ U S E S _ P A R S E R                       1 6 3 8 4     / *   F u l l t e x t   i n d e x   u s e s   [ p r e ] p a r s e r   * / 
00498  
00499  # d e f i n e   H A _ U S E S _ B L O C K _ S I Z E       ( ( u i n t )   3 2 7 6 8 ) 
00500  
00501  # d e f i n e   H A _ S O R T _ A L L O W S _ S A M E             5 1 2         / *   I n t e r n   b i t   w h e n   s o r t i n g   r e c o r d s   * / 
00502  
00503  # i f   M Y S Q L _ V E R S I O N _ I D   <   0 x 5 0 2 0 0 
00504  
00505  / * 
00506  
00507      K e y   h a s   a   p a r t   t h a t   c a n   h a v e   e n d   s p a c e .     I f   t h i s   i s   a n   u n i q u e   k e y 
00508  
00509      w e   h a v e   t o   h a n d l e   i t   d i f f e r e n t l y   f r o m   o t h e r   u n i q u e   k e y s   a s   w e   c a n   f i n d 
00510  
00511      m a n y   m a t c h i n g   r o w s   f o r   o n e   k e y   ( b e c a u s e   e n d   s p a c e   a r e   n o t   c o m p a r e d ) 
00512  
00513  * / 
00514  
00515  # d e f i n e   H A _ E N D _ S P A C E _ K E Y             0   / *   w a s :   4 0 9 6   * / 
00516  
00517  # e l s e 
00518  
00519  # e r r o r   H A _ E N D _ S P A C E _ K E Y   i s   o b s o l e t e ,   p l e a s e   r e m o v e   i t 
00520  
00521  # e n d i f 
00522  
00523  
00524  
00525      / *   T h e s e   f l a g s   c a n   b e   a d d e d   t o   k e y - s e g - f l a g   * / 
00526  
00527  # d e f i n e   H A _ S P A C E _ P A C K         1     / *   P a c k   s p a c e   i n   k e y - s e g   * / 
00528  
00529  # d e f i n e   H A _ P A R T _ K E Y _ S E G         4     / *   U s e d   b y   M y S Q L   f o r   p a r t - k e y - c o l s   * / 
00530  
00531  # d e f i n e   H A _ V A R _ L E N G T H _ P A R T       8 
00532  
00533  # d e f i n e   H A _ N U L L _ P A R T           1 6 
00534  
00535  # d e f i n e   H A _ B L O B _ P A R T           3 2 
00536  
00537  # d e f i n e   H A _ S W A P _ K E Y         6 4 
00538  
00539  # d e f i n e   H A _ R E V E R S E _ S O R T         1 2 8     / *   S o r t   k e y   i n   r e v e r s e   o r d e r   * / 
00540  
00541  # d e f i n e   H A _ N O _ S O R T                               2 5 6   / *   d o   n o t   b o t h e r   s o r t i n g   o n   t h i s   k e y s e g   * / 
00542  
00543  / * 
00544  
00545      E n d   s p a c e   i n   u n i q u e / v a r c h a r   a r e   c o n s i d e r e d   e q u a l .   ( L i k e   ' a '   a n d   ' a   ' ) 
00546  
00547      O n l y   n e e d e d   f o r   i n t e r n a l   t e m p o r a r y   t a b l e s . 
00548  
00549  * / 
00550  
00551  # d e f i n e   H A _ E N D _ S P A C E _ A R E _ E Q U A L       5 1 2 
00552  
00553  # d e f i n e   H A _ B I T _ P A R T       1 0 2 4 
00554  
00555      / *   o p t i o n b i t s   f o r   d a t a b a s e   * / 
00556  
00557  # d e f i n e   H A _ O P T I O N _ P A C K _ R E C O R D       1 
00558  
00559  # d e f i n e   H A _ O P T I O N _ P A C K _ K E Y S       2 
00560  
00561  # d e f i n e   H A _ O P T I O N _ C O M P R E S S _ R E C O R D   4 
00562  
00563  # d e f i n e   H A _ O P T I O N _ L O N G _ B L O B _ P T R       8   / *   n e w   I S A M   f o r m a t   * / 
00564  
00565  # d e f i n e   H A _ O P T I O N _ T M P _ T A B L E       1 6 
00566  
00567  # d e f i n e   H A _ O P T I O N _ C H E C K S U M         3 2 
00568  
00569  # d e f i n e   H A _ O P T I O N _ D E L A Y _ K E Y _ W R I T E   6 4 
00570  
00571  # d e f i n e   H A _ O P T I O N _ N O _ P A C K _ K E Y S         1 2 8     / *   R e s e r v e d   f o r   M y S Q L   * / 
00572  
00573  # d e f i n e   H A _ O P T I O N _ C R E A T E _ F R O M _ E N G I N E         2 5 6 
00574  
00575  # d e f i n e   H A _ O P T I O N _ R E L I E S _ O N _ S Q L _ L A Y E R       5 1 2 
00576  
00577  # d e f i n e   H A _ O P T I O N _ N U L L _ F I E L D S       1 0 2 4 
00578  
00579  # d e f i n e   H A _ O P T I O N _ P A G E _ C H E C K S U M       2 0 4 8 
00580  
00581  # d e f i n e   H A _ O P T I O N _ T E M P _ C O M P R E S S _ R E C O R D     ( 1 L   < <   1 5 )             / *   s e t   b y   i s a m c h k   * / 
00582  
00583  # d e f i n e   H A _ O P T I O N _ R E A D _ O N L Y _ D A T A                 ( 1 L   < <   1 6 )             / *   S e t   b y   i s a m c h k   * / 
00584  
00585  # d e f i n e   H A _ O P T I O N _ N O _ C H E C K S U M                       ( 1 L   < <   1 7 ) 
00586  
00587  # d e f i n e   H A _ O P T I O N _ N O _ D E L A Y _ K E Y _ W R I T E         ( 1 L   < <   1 8 ) 
00588  
00589      / *   B i t s   i n   f l a g   t o   c r e a t e ( )   * / 
00590  
00591  # d e f i n e   H A _ D O N T _ T O U C H _ D A T A     1   / *   D o n ' t   e m p t y   d a t a f i l e   ( i s a m c h k )   * / 
00592  
00593  # d e f i n e   H A _ P A C K _ R E C O R D         2   / *   R e q u e s t   p a c k e d   r e c o r d   f o r m a t   * / 
00594  
00595  # d e f i n e   H A _ C R E A T E _ T M P _ T A B L E   4 
00596  
00597  # d e f i n e   H A _ C R E A T E _ C H E C K S U M     8 
00598  
00599  # d e f i n e   H A _ C R E A T E _ K E E P _ F I L E S     1 6             / *   d o n ' t   o v e r w r i t e   . M Y D   a n d   M Y I   * / 
00600  
00601  # d e f i n e   H A _ C R E A T E _ P A G E _ C H E C K S U M   3 2 
00602  
00603  # d e f i n e   H A _ C R E A T E _ D E L A Y _ K E Y _ W R I T E   6 4 
00604  
00605  # d e f i n e   H A _ C R E A T E _ R E L I E S _ O N _ S Q L _ L A Y E R   1 2 8 
00606  
00607  / * 
00608  
00609      T h e   f o l l o w i n g   f l a g s   ( O R - e d )   a r e   p a s s e d   t o   h a n d l e r : : i n f o ( )   m e t h o d . 
00610  
00611      T h e   m e t h o d   c o p i e s   m i s c   h a n d l e r   i n f o r m a t i o n   o u t   o f   t h e   s t o r a g e   e n g i n e 
00612  
00613      t o   d a t a   s t r u c t u r e s   a c c e s s i b l e   f r o m   M y S Q L 
00614  
00615      S a m e   f l a g s   a r e   a l s o   p a s s e d   d o w n   t o   m i _ s t a t u s ,   m y r g _ s t a t u s ,   e t c . 
00616  
00617  * / 
00618  
00619  / *   t h i s   o n e   i s   n o t   u s e d   * / 
00620  
00621  # d e f i n e   H A _ S T A T U S _ P O S                         1 
00622  
00623  / * 
00624  
00625      a s s u m i n g   t h e   t a b l e   k e e p s   s h a r e d   a c t u a l   c o p y   o f   t h e   ' i n f o '   a n d 
00626  
00627      l o c a l ,   p o s s i b l y   o u t d a t e d   c o p y ,   t h e   f o l l o w i n g   f l a g   m e a n s   t h a t 
00628  
00629      i t   s h o u l d   n o t   t r y   t o   g e t   t h e   a c t u a l   d a t a   ( l o c k i n g   t h e   s h a r e d   s t r u c t u r e ) 
00630  
00631      s l i g h t l y   o u t d a t e d   v e r s i o n   w i l l   s u f f i c e 
00632  
00633  * / 
00634  
00635  # d e f i n e   H A _ S T A T U S _ N O _ L O C K                 2 
00636  
00637  / *   u p d a t e   t h e   t i m e   o f   t h e   l a s t   m o d i f i c a t i o n   ( i n   h a n d l e r : : u p d a t e _ t i m e )   * / 
00638  
00639  # d e f i n e   H A _ S T A T U S _ T I M E                       4 
00640  
00641  / * 
00642  
00643      u p d a t e   t h e   ' c o n s t a n t '   p a r t   o f   t h e   i n f o : 
00644  
00645      h a n d l e r : : m a x _ d a t a _ f i l e _ l e n g t h ,   m a x _ i n d e x _ f i l e _ l e n g t h ,   c r e a t e _ t i m e 
00646  
00647      s o r t k e y ,   r e f _ l e n g t h ,   b l o c k _ s i z e ,   d a t a _ f i l e _ n a m e ,   i n d e x _ f i l e _ n a m e . 
00648  
00649      h a n d l e r : : t a b l e - > s - > k e y s _ i n _ u s e ,   k e y s _ f o r _ k e y r e a d ,   r e c _ p e r _ k e y 
00650  
00651  * / 
00652  
00653  # d e f i n e   H A _ S T A T U S _ C O N S T                     8 
00654  
00655  / * 
00656  
00657      u p d a t e   t h e   ' v a r i a b l e '   p a r t   o f   t h e   i n f o : 
00658  
00659      h a n d l e r : : r e c o r d s ,   d e l e t e d ,   d a t a _ f i l e _ l e n g t h ,   i n d e x _ f i l e _ l e n g t h , 
00660  
00661      d e l e t e _ l e n g t h ,   c h e c k _ t i m e ,   m e a n _ r e c _ l e n g t h 
00662  
00663  * / 
00664  
00665  # d e f i n e   H A _ S T A T U S _ V A R I A B L E             1 6 
00666  
00667  / * 
00668  
00669      g e t   t h e   i n f o r m a t i o n   a b o u t   t h e   k e y   t h a t   c a u s e d   l a s t   d u p l i c a t e   v a l u e   e r r o r 
00670  
00671      u p d a t e   h a n d l e r : : e r r k e y   a n d   h a n d l e r : : d u p p _ r e f 
00672  
00673      s e e   h a n d l e r : : g e t _ d u p _ k e y ( ) 
00674  
00675  * / 
00676  
00677  # d e f i n e   H A _ S T A T U S _ E R R K E Y                 3 2 
00678  
00679  / * 
00680  
00681      u p d a t e   h a n d l e r : : a u t o _ i n c r e m e n t _ v a l u e 
00682  
00683  * / 
00684  
00685  # d e f i n e   H A _ S T A T U S _ A U T O                     6 4 
00686  
00687  / * 
00688  
00689      E r r o r c o d e s   g i v e n   b y   h a n d l e r   f u n c t i o n s 
00690  
00691      o p t _ s u m _ q u e r y ( )   a s s u m e s   t h e s e   c o d e s   a r e   >   1 
00692  
00693      D o   n o t   a d d   e r r o r   n u m b e r s   b e f o r e   H A _ E R R _ F I R S T . 
00694  
00695      I f   n e c e s s a r y   t o   a d d   l o w e r   n u m b e r s ,   c h a n g e   H A _ E R R _ F I R S T   a c c o r d i n g l y . 
00696  
00697  * / 
00698  
00699  # d e f i n e   H A _ E R R _ F I R S T                         1 2 0           / *   C o p y   o f   f i r s t   e r r o r   n r . * / 
00700  
00701  # d e f i n e   H A _ E R R _ K E Y _ N O T _ F O U N D     1 2 0   / *   D i d n ' t   f i n d   k e y   o n   r e a d   o r   u p d a t e   * / 
00702  
00703  # d e f i n e   H A _ E R R _ F O U N D _ D U P P _ K E Y   1 2 1   / *   D u p p l i c a t e   k e y   o n   w r i t e   * / 
00704  
00705  # d e f i n e   H A _ E R R _ I N T E R N A L _ E R R O R       1 2 2           / *   I n t e r n a l   e r r o r   * / 
00706  
00707  # d e f i n e   H A _ E R R _ R E C O R D _ C H A N G E D   1 2 3   / *   U p p d a t e   w i t h   i s   r e c o v e r a b l e   * / 
00708  
00709  # d e f i n e   H A _ E R R _ W R O N G _ I N D E X     1 2 4   / *   W r o n g   i n d e x   g i v e n   t o   f u n c t i o n   * / 
00710  
00711  # d e f i n e   H A _ E R R _ C R A S H E D         1 2 6   / *   I n d e x f i l e   i s   c r a s h e d   * / 
00712  
00713  # d e f i n e   H A _ E R R _ W R O N G _ I N _ R E C O R D     1 2 7   / *   R e c o r d - f i l e   i s   c r a s h e d   * / 
00714  
00715  # d e f i n e   H A _ E R R _ O U T _ O F _ M E M   1 2 8   / *   R e c o r d - f i l e   i s   c r a s h e d   * / 
00716  
00717  # d e f i n e   H A _ E R R _ N O T _ A _ T A B L E             1 3 0           / *   n o t   a   M Y I   f i l e   -   n o   s i g n a t u r e   * / 
00718  
00719  # d e f i n e   H A _ E R R _ W R O N G _ C O M M A N D     1 3 1   / *   C o m m a n d   n o t   s u p p o r t e d   * / 
00720  
00721  # d e f i n e   H A _ E R R _ O L D _ F I L E       1 3 2   / *   o l d   d a t a b a s f i l e   * / 
00722  
00723  # d e f i n e   H A _ E R R _ N O _ A C T I V E _ R E C O R D   1 3 3   / *   N o   r e c o r d   r e a d   i n   u p d a t e ( )   * / 
00724  
00725  # d e f i n e   H A _ E R R _ R E C O R D _ D E L E T E D   1 3 4   / *   A   r e c o r d   i s   n o t   t h e r e   * / 
00726  
00727  # d e f i n e   H A _ E R R _ R E C O R D _ F I L E _ F U L L   1 3 5   / *   N o   m o r e   r o o m   i n   f i l e   * / 
00728  
00729  # d e f i n e   H A _ E R R _ I N D E X _ F I L E _ F U L L     1 3 6   / *   N o   m o r e   r o o m   i n   f i l e   * / 
00730  
00731  # d e f i n e   H A _ E R R _ E N D _ O F _ F I L E     1 3 7   / *   e n d   i n   n e x t / p r e v / f i r s t / l a s t   * / 
00732  
00733  # d e f i n e   H A _ E R R _ U N S U P P O R T E D     1 3 8   / *   u n s u p p o r t e d   e x t e n s i o n   u s e d   * / 
00734  
00735  # d e f i n e   H A _ E R R _ T O _ B I G _ R O W   1 3 9   / *   T o o   b i g   r o w   * / 
00736  
00737  # d e f i n e   H A _ W R O N G _ C R E A T E _ O P T I O N     1 4 0   / *   W r o n g   c r e a t e   o p t i o n   * / 
00738  
00739  # d e f i n e   H A _ E R R _ F O U N D _ D U P P _ U N I Q U E   1 4 1     / *   D u p p l i c a t e   u n i q u e   o n   w r i t e   * / 
00740  
00741  # d e f i n e   H A _ E R R _ U N K N O W N _ C H A R S E T       1 4 2     / *   C a n ' t   o p e n   c h a r s e t   * / 
00742  
00743  # d e f i n e   H A _ E R R _ W R O N G _ M R G _ T A B L E _ D E F   1 4 3     / *   c o n f l i c t i n g   t a b l e s   i n   M E R G E   * / 
00744  
00745  # d e f i n e   H A _ E R R _ C R A S H E D _ O N _ R E P A I R   1 4 4     / *   L a s t   ( a u t o m a t i c ? )   r e p a i r   f a i l e d   * / 
00746  
00747  # d e f i n e   H A _ E R R _ C R A S H E D _ O N _ U S A G E     1 4 5     / *   T a b l e   m u s t   b e   r e p a i r e d   * / 
00748  
00749  # d e f i n e   H A _ E R R _ L O C K _ W A I T _ T I M E O U T   1 4 6 
00750  
00751  # d e f i n e   H A _ E R R _ L O C K _ T A B L E _ F U L L       1 4 7 
00752  
00753  # d e f i n e   H A _ E R R _ R E A D _ O N L Y _ T R A N S A C T I O N   1 4 8   / *   U p d a t e s   n o t   a l l o w e d   * / 
00754  
00755  # d e f i n e   H A _ E R R _ L O C K _ D E A D L O C K       1 4 9 
00756  
00757  # d e f i n e   H A _ E R R _ C A N N O T _ A D D _ F O R E I G N   1 5 0         / *   C a n n o t   a d d   a   f o r e i g n   k e y   c o n s t r .   * / 
00758  
00759  # d e f i n e   H A _ E R R _ N O _ R E F E R E N C E D _ R O W   1 5 1           / *   C a n n o t   a d d   a   c h i l d   r o w   * / 
00760  
00761  # d e f i n e   H A _ E R R _ R O W _ I S _ R E F E R E N C E D   1 5 2           / *   C a n n o t   d e l e t e   a   p a r e n t   r o w   * / 
00762  
00763  # d e f i n e   H A _ E R R _ N O _ S A V E P O I N T     1 5 3           / *   N o   s a v e p o i n t   w i t h   t h a t   n a m e   * / 
00764  
00765  # d e f i n e   H A _ E R R _ N O N _ U N I Q U E _ B L O C K _ S I Z E   1 5 4   / *   N o n   u n i q u e   k e y   b l o c k   s i z e   * / 
00766  
00767  # d e f i n e   H A _ E R R _ N O _ S U C H _ T A B L E           1 5 5     / *   T h e   t a b l e   d o e s   n o t   e x i s t   i n   e n g i n e   * / 
00768  
00769  # d e f i n e   H A _ E R R _ T A B L E _ E X I S T               1 5 6     / *   T h e   t a b l e   e x i s t e d   i n   s t o r a g e   e n g i n e   * / 
00770  
00771  # d e f i n e   H A _ E R R _ N O _ C O N N E C T I O N           1 5 7     / *   C o u l d   n o t   c o n n e c t   t o   s t o r a g e   e n g i n e   * / 
00772  
00773  / *   N U L L s   a r e   n o t   s u p p o r t e d   i n   s p a t i a l   i n d e x   * / 
00774  
00775  # d e f i n e   H A _ E R R _ N U L L _ I N _ S P A T I A L       1 5 8 
00776  
00777  # d e f i n e   H A _ E R R _ T A B L E _ D E F _ C H A N G E D   1 5 9     / *   T h e   t a b l e   c h a n g e d   i n   s t o r a g e   e n g i n e   * / 
00778  
00779  / *   T h e r e ' s   n o   p a r t i t i o n   i n   t a b l e   f o r   g i v e n   v a l u e   * / 
00780  
00781  # d e f i n e   H A _ E R R _ N O _ P A R T I T I O N _ F O U N D   1 6 0 
00782  
00783  # d e f i n e   H A _ E R R _ R B R _ L O G G I N G _ F A I L E D   1 6 1     / *   R o w - b a s e d   b i n l o g g i n g   o f   r o w   f a i l e d   * / 
00784  
00785  # d e f i n e   H A _ E R R _ D R O P _ I N D E X _ F K             1 6 2     / *   I n d e x   n e e d e d   i n   f o r e i g n   k e y   c o n s t r   * / 
00786  
00787  / * 
00788  
00789      U p h o l d i n g   f o r e i g n   k e y   c o n s t r a i n t s   w o u l d   l e a d   t o   a   d u p l i c a t e   k e y   e r r o r 
00790  
00791      i n   s o m e   o t h e r   t a b l e . 
00792  
00793  * / 
00794  
00795  # d e f i n e   H A _ E R R _ F O R E I G N _ D U P L I C A T E _ K E Y   1 6 3 
00796  
00797  / *   T h e   t a b l e   c h a n g e d   i n   s t o r a g e   e n g i n e   * / 
00798  
00799  # d e f i n e   H A _ E R R _ T A B L E _ N E E D S _ U P G R A D E   1 6 4 
00800  
00801  # d e f i n e   H A _ E R R _ T A B L E _ R E A D O N L Y             1 6 5       / *   T h e   t a b l e   i s   n o t   w r i t a b l e   * / 
00802  
00803  # d e f i n e   H A _ E R R _ A U T O I N C _ R E A D _ F A I L E D   1 6 6       / *   F a i l e d   t o   g e t   n e x t   a u t o i n c   v a l u e   * / 
00804  
00805  # d e f i n e   H A _ E R R _ A U T O I N C _ E R A N G E         1 6 7           / *   F a i l e d   t o   s e t   r o w   a u t o i n c   v a l u e   * / 
00806  
00807  # d e f i n e   H A _ E R R _ G E N E R I C                       1 6 8           / *   G e n e r i c   e r r o r   * / 
00808  
00809  / *   r o w   n o t   a c t u a l l y   u p d a t e d :   n e w   v a l u e s   s a m e   a s   t h e   o l d   v a l u e s   * / 
00810  
00811  # d e f i n e   H A _ E R R _ R E C O R D _ I S _ T H E _ S A M E   1 6 9 
00812  
00813  / *   I t   i s   n o t   p o s s i b l e   t o   l o g   t h i s   s t a t e m e n t   * / 
00814  
00815  # d e f i n e   H A _ E R R _ L O G G I N G _ I M P O S S I B L E   1 7 0 
00816  
00817  # d e f i n e   H A _ E R R _ T A B L E S P A C E _ E X I S T       1 7 1 
00818  
00819  / *   T h e   e v e n t   w a s   c o r r u p t ,   l e a d i n g   t o   i l l e g a l   d a t a   b e i n g   r e a d   * / 
00820  
00821  # d e f i n e   H A _ E R R _ C O R R U P T _ E V E N T             1 7 2 
00822  
00823  # d e f i n e   H A _ E R R _ N E W _ F I L E                       1 7 3     / *   N e w   f i l e   f o r m a t   * / 
00824  
00825  / *   T h e   e v e n t   c o u l d   n o t   b e   p r o c e s s e d   n o   o t h e r   h a n d l e r   e r r o r   h a p p e n e d   * / 
00826  
00827  # d e f i n e   H A _ E R R _ R O W S _ E V E N T _ A P P L Y       1 7 4 
00828  
00829  # d e f i n e   H A _ E R R _ I N I T I A L I Z A T I O N           1 7 5         / *   E r r o r   d u r i n g   i n i t i a l i z a t i o n   * / 
00830  
00831  # d e f i n e   H A _ E R R _ F I L E _ T O O _ S H O R T       1 7 6     / *   F i l e   t o o   s h o r t   * / 
00832  
00833  # d e f i n e   H A _ E R R _ W R O N G _ C R C         1 7 7     / *   W r o n g   C R C   o n   p a g e   * / 
00834  
00835  # d e f i n e   H A _ E R R _ L O C K _ O R _ A C T I V E _ T R A N S A C T I O N   1 7 8 
00836  
00837  # d e f i n e   H A _ E R R _ N O _ S U C H _ T A B L E S P A C E   1 7 9 
00838  
00839  # d e f i n e   H A _ E R R _ T A B L E S P A C E _ N O T _ E M P T Y   1 8 0 
00840  
00841  # d e f i n e   H A _ E R R _ T A B L E S P A C E _ D A T A F I L E _ E X I S T   1 8 1 
00842  
00843  # d e f i n e   H A _ E R R _ R O W _ N O T _ V I S I B L E         1 8 2 
00844  
00845  # d e f i n e   H A _ E R R _ L A S T                               1 8 2         / *   C o p y   o f   l a s t   e r r o r   n r   * / 
00846  
00847  / *   N u m b e r   o f   d i f f e r e n t   e r r o r s   * / 
00848  
00849  # d e f i n e   H A _ E R R _ E R R O R S                         ( H A _ E R R _ L A S T   -   H A _ E R R _ F I R S T   +   1 ) 
00850  
00851      / *   O t h e r   c o n s t a n t s   * / 
00852  
00853  # d e f i n e   H A _ N A M E L E N   6 4           / *   M a x   l e n g t h   o f   s a v e d   f i l e n a m e   * / 
00854  
00855  # d e f i n e   N O _ S U C H _ K E Y   ( ~ ( u i n t ) 0 )                     / *   u s e d   a s   a   k e y   n o .   * / 
00856  
00857  t y p e d e f   u l o n g   k e y _ p a r t _ m a p ; 
00858  
00859  # d e f i n e   H A _ W H O L E _ K E Y     ( ~ ( k e y _ p a r t _ m a p ) 0 ) 
00860  
00861      / *   I n t e r n   c o n s t a n t s   i n   d a t a b a s e s   * / 
00862  
00863      / *   b i t s   i n   _ s e a r c h   * / 
00864  
00865  # d e f i n e   S E A R C H _ F I N D   1 
00866  
00867  # d e f i n e   S E A R C H _ N O _ F I N D     2 
00868  
00869  # d e f i n e   S E A R C H _ S A M E   4 
00870  
00871  # d e f i n e   S E A R C H _ B I G G E R   8 
00872  
00873  # d e f i n e   S E A R C H _ S M A L L E R     1 6 
00874  
00875  # d e f i n e   S E A R C H _ S A V E _ B U F F     3 2 
00876  
00877  # d e f i n e   S E A R C H _ U P D A T E   6 4 
00878  
00879  # d e f i n e   S E A R C H _ P R E F I X   1 2 8 
00880  
00881  # d e f i n e   S E A R C H _ L A S T   2 5 6 
00882  
00883  # d e f i n e   M B R _ C O N T A I N           5 1 2 
00884  
00885  # d e f i n e   M B R _ I N T E R S E C T       1 0 2 4 
00886  
00887  # d e f i n e   M B R _ W I T H I N             2 0 4 8 
00888  
00889  # d e f i n e   M B R _ D I S J O I N T         4 0 9 6 
00890  
00891  # d e f i n e   M B R _ E Q U A L               8 1 9 2 
00892  
00893  # d e f i n e   M B R _ D A T A                 1 6 3 8 4 
00894  
00895  # d e f i n e   S E A R C H _ N U L L _ A R E _ E Q U A L   3 2 7 6 8   / *   N U L L   i n   k e y s   a r e   e q u a l   * / 
00896  
00897  # d e f i n e   S E A R C H _ N U L L _ A R E _ N O T _ E Q U A L   6 5 5 3 6   / *   N U L L   i n   k e y s   a r e   n o t   e q u a l   * / 
00898  
00899  / *   U s e   t h i s   w h e n   i n s e r t i n g   a   k e y   i n   p o s i t i o n   o r d e r   * / 
00900  
00901  # d e f i n e   S E A R C H _ I N S E R T       S E A R C H _ N U L L _ A R E _ N O T _ E Q U A L * 2 
00902  
00903  / *   O n l y   p a r t   o f   t h e   k e y   i s   s p e c i f i e d   w h i l e   r e a d i n g   * / 
00904  
00905  # d e f i n e   S E A R C H _ P A R T _ K E Y   S E A R C H _ I N S E R T * 2 
00906  
00907  / *   U s e d   w h e n   u s e r   k e y   ( k e y   2 )   c o n t a i n s   t r a n s a c t i o n   i d ' s   * / 
00908  
00909  # d e f i n e   S E A R C H _ U S E R _ K E Y _ H A S _ T R A N S I D   S E A R C H _ P A R T _ K E Y * 2 
00910  
00911  / *   U s e d   w h e n   p a g e   k e y   ( k e y   1 )   c o n t a i n s   t r a n s a c t i o n   i d ' s   * / 
00912  
00913  # d e f i n e   S E A R C H _ P A G E _ K E Y _ H A S _ T R A N S I D   S E A R C H _ U S E R _ K E Y _ H A S _ T R A N S I D * 2 
00914  
00915      / *   b i t s   i n   o p t _ f l a g   * / 
00916  
00917  # d e f i n e   Q U I C K _ U S E D     1 
00918  
00919  # d e f i n e   R E A D _ C A C H E _ U S E D   2 
00920  
00921  # d e f i n e   R E A D _ C H E C K _ U S E D   4 
00922  
00923  # d e f i n e   K E Y _ R E A D _ U S E D   8 
00924  
00925  # d e f i n e   W R I T E _ C A C H E _ U S E D   1 6 
00926  
00927  # d e f i n e   O P T _ N O _ R O W S   3 2 
00928  
00929      / *   b i t s   i n   u p d a t e   * / 
00930  
00931  # d e f i n e   H A _ S T A T E _ C H A N G E D     1   / *   D a t a b a s e   h a s   c h a n g e d   * / 
00932  
00933  # d e f i n e   H A _ S T A T E _ A K T I V         2   / *   H a s   a   c u r r e n t   r e c o r d   * / 
00934  
00935  # d e f i n e   H A _ S T A T E _ W R I T T E N     4   / *   R e c o r d   i s   w r i t t e n   * / 
00936  
00937  # d e f i n e   H A _ S T A T E _ D E L E T E D     8 
00938  
00939  # d e f i n e   H A _ S T A T E _ N E X T _ F O U N D   1 6     / *   N e x t   f o u n d   r e c o r d   ( r e c o r d   b e f o r e )   * / 
00940  
00941  # d e f i n e   H A _ S T A T E _ P R E V _ F O U N D   3 2     / *   P r e v   f o u n d   r e c o r d   ( r e c o r d   a f t e r )   * / 
00942  
00943  # d e f i n e   H A _ S T A T E _ N O _ K E Y       6 4     / *   L a s t   r e a d   d i d n ' t   f i n d   r e c o r d   * / 
00944  
00945  # d e f i n e   H A _ S T A T E _ K E Y _ C H A N G E D     1 2 8 
00946  
00947  # d e f i n e   H A _ S T A T E _ W R I T E _ A T _ E N D   2 5 6   / *   s e t   i n   _ p s _ f i n d _ w r i t e p o s   * / 
00948  
00949  # d e f i n e   H A _ S T A T E _ B U F F _ S A V E D   5 1 2   / *   I f   c u r r e n t   k e y b u f f   i s   i n f o - > b u f f   * / 
00950  
00951  # d e f i n e   H A _ S T A T E _ R O W _ C H A N G E D     1 0 2 4     / *   T o   i n v a l i d e   R O W   c a c h e   * / 
00952  
00953  # d e f i n e   H A _ S T A T E _ E X T E N D _ B L O C K   2 0 4 8 
00954  
00955  # d e f i n e   H A _ S T A T E _ R N E X T _ S A M E   4 0 9 6     / *   r n e x t _ s a m e   o c c u p i e d   l a s t k e y 2   * / 
00956  
00957  / *   m y i s a m p a c k   e x p e c t s   n o   m o r e   t h a n   3 2   f i e l d   t y p e s .   * / 
00958  
00959  e n u m   e n _ f i e l d t y p e   { 
00960  
00961      F I E L D _ L A S T = - 1 , F I E L D _ N O R M A L , F I E L D _ S K I P _ E N D S P A C E , F I E L D _ S K I P _ P R E S P A C E , 
00962  
00963      F I E L D _ S K I P _ Z E R O , F I E L D _ B L O B , F I E L D _ C O N S T A N T , F I E L D _ I N T E R V A L L , F I E L D _ Z E R O , 
00964  
00965      F I E L D _ V A R C H A R , F I E L D _ C H E C K , 
00966  
00967      F I E L D _ e n u m _ v a l _ c o u n t 
00968  
00969  } ; 
00970  
00971  e n u m   d a t a _ f i l e _ t y p e   { 
00972  
00973      S T A T I C _ R E C O R D ,   D Y N A M I C _ R E C O R D ,   C O M P R E S S E D _ R E C O R D ,   B L O C K _ R E C O R D 
00974  
00975  } ; 
00976  
00977  / *   F o r   k e y   r a n g e s   * / 
00978  
00979  / *   f r o m   - i n f   * / 
00980  
00981  # d e f i n e   N O _ M I N _ R A N G E     1 
00982  
00983  / *   t o   + i n f   * / 
00984  
00985  # d e f i n e   N O _ M A X _ R A N G E     2 
00986  
00987  / *     X   <   k e y ,   i . e .   n o t   i n c l u d i n g   t h e   l e f t   e n d p o i n t   * / 
00988  
00989  # d e f i n e   N E A R _ M I N     4 
00990  
00991  / *   X   >   k e y ,   i . e .   n o t   i n c l u d i n g   t h e   r i g h t   e n d p o i n t   * / 
00992  
00993  # d e f i n e   N E A R _ M A X     8 
00994  
00995  / *   
00996  
00997      T h i s   f l a g   m e a n s   t h a t   i n d e x   i s   a   u n i q u e   i n d e x ,   a n d   t h e   i n t e r v a l   i s   
00998  
00999      e q u i v a l e n t   t o   " A N D ( k e y p a r t _ i   =   c o n s t _ i ) " ,   w h e r e   a l l   o f   c o n s t _ i   a r e   n o t   N U L L s . 
01000  
01001  * / 
01002  
01003  # d e f i n e   U N I Q U E _ R A N G E     1 6 
01004  
01005  / *   
01006  
01007      T h i s   f l a g   m e a n s   t h a t   t h e   i n t e r v a l   i s   e q u i v a l e n t   t o   
01008  
01009      " A N D ( k e y p a r t _ i   =   c o n s t _ i ) " ,   w h e r e   n o t   a l l   k e y   p a r t s   m a y   b e   u s e d   b u t   a l l   o f   
01010  
01011      c o n s t _ i   a r e   n o t   N U L L s . 
01012  
01013  * / 
01014  
01015  # d e f i n e   E Q _ R A N G E     3 2 
01016  
01017  / * 
01018  
01019      T h i s   f l a g   h a s   t h e   s a m e   m e a n i n g   a s   U N I Q U E _ R A N G E ,   e x c e p t   t h a t   f o r   a t   l e a s t 
01020  
01021      o n e   k e y p a r t   t h e   c o n d i t i o n   i s   " k e y p a r t   I S   N U L L " .   
01022  
01023  * / 
01024  
01025  # d e f i n e   N U L L _ R A N G E     6 4 
01026  
01027  # d e f i n e   G E O M _ F L A G             1 2 8 
01028  
01029  # d e f i n e   S K I P _ R A N G E           2 5 6 
01030  
01031  # d e f i n e   E M P T Y _ R A N G E         5 1 2 
01032  
01033  t y p e d e f   s t r u c t   s t _ k e y _ r a n g e 
01034  
01035  { 
01036  
01037      c o n s t   u c h a r   * k e y ; 
01038  
01039      u i n t   l e n g t h ; 
01040  
01041      k e y _ p a r t _ m a p   k e y p a r t _ m a p ; 
01042  
01043      e n u m   h a _ r k e y _ f u n c t i o n   f l a g ; 
01044  
01045  }   k e y _ r a n g e ; 
01046  
01047  t y p e d e f   s t r u c t   s t _ k e y _ m u l t i _ r a n g e 
01048  
01049  { 
01050  
01051      k e y _ r a n g e   s t a r t _ k e y ; 
01052  
01053      k e y _ r a n g e   e n d _ k e y ; 
01054  
01055      c h a r     * p t r ;                                   / *   F r e e   t o   u s e   b y   c a l l e r   ( p t r   t o   r o w   e t c )   * / 
01056  
01057      u i n t     r a n g e _ f l a g ;                       / *   k e y   r a n g e   f l a g s   s e e   a b o v e   * / 
01058  
01059  }   K E Y _ M U L T I _ R A N G E ; 
01060  
01061  
01062  
01063  / *   F o r   n u m b e r   o f   r e c o r d s   * / 
01064  
01065  # i f d e f   B I G _ T A B L E S 
01066  
01067  # d e f i n e   r o w s 2 d o u b l e ( A )     u l o n g l o n g 2 d o u b l e ( A ) 
01068  
01069  t y p e d e f   m y _ o f f _ t     h a _ r o w s ; 
01070  
01071  # e l s e 
01072  
01073  # d e f i n e   r o w s 2 d o u b l e ( A )     ( d o u b l e )   ( A ) 
01074  
01075  t y p e d e f   u l o n g       h a _ r o w s ; 
01076  
01077  # e n d i f 
01078  
01079  # d e f i n e   H A _ P O S _ E R R O R     ( ~   ( h a _ r o w s )   0 ) 
01080  
01081  # d e f i n e   H A _ O F F S E T _ E R R O R   ( ~   ( m y _ o f f _ t )   0 ) 
01082  
01083  # i f   S Y S T E M _ S I Z E O F _ O F F _ T   = =   4 
01084  
01085  # d e f i n e   M A X _ F I L E _ S I Z E   I N T _ M A X 3 2 
01086  
01087  # e l s e 
01088  
01089  # d e f i n e   M A X _ F I L E _ S I Z E   L O N G L O N G _ M A X 
01090  
01091  # e n d i f 
01092  
01093  # d e f i n e   H A _ V A R C H A R _ P A C K L E N G T H ( f i e l d _ l e n g t h )   ( ( f i e l d _ l e n g t h )   <   2 5 6   ?   1   : 2 ) 
01094  
01095  / *   i n v a l i d a t o r   f u n c t i o n   r e f e r e n c e   f o r   Q u e r y   C a c h e   * / 
01096  
01097  t y p e d e f   v o i d   ( *   i n v a l i d a t o r _ b y _ f i l e n a m e ) ( c o n s t   c h a r   *   f i l e n a m e ) ; 
01098  
01099  # e n d i f   / *   _ m y _ b a s e _ h   * / 
01100  
01101  
 全部  名字空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义