my_handler.h
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
  2.    This library is free software; you can redistribute it and/or
  3.    modify it under the terms of the GNU Library General Public
  4.    License as published by the Free Software Foundation; either
  5.    version 2 of the License, or (at your option) any later version.
  6.    This library is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  9.    Library General Public License for more details.
  10.    You should have received a copy of the GNU Library General Public
  11.    License along with this library; if not, write to the Free
  12.    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
  13.    MA 02111-1307, USA */
  14. #ifndef _my_handler_h
  15. #define _my_handler_h
  16. #include "my_global.h"
  17. #include "my_base.h"
  18. #include "m_ctype.h"
  19. #include "myisampack.h"
  20. typedef struct st_HA_KEYSEG /* Key-portion */
  21. {
  22.   uint8  type; /* Type of key (for sort) */
  23.   uint8  language;
  24.   uint8  null_bit; /* bitmask to test for NULL */
  25.   uint8  bit_start,bit_end; /* if bit field */
  26.   uint16 flag;
  27.   uint16 length; /* Keylength */
  28.   uint32 start; /* Start of key in record */
  29.   uint32 null_pos; /* position to NULL indicator */
  30.   CHARSET_INFO *charset;
  31. } HA_KEYSEG;
  32. #define get_key_length(length,key) 
  33. { if ((uchar) *(key) != 255) 
  34.     length= (uint) (uchar) *((key)++); 
  35.   else 
  36.   { length=mi_uint2korr((key)+1); (key)+=3; } 
  37. }
  38. #define get_key_length_rdonly(length,key) 
  39. { if ((uchar) *(key) != 255) 
  40.     length= ((uint) (uchar) *((key))); 
  41.   else 
  42.   { length=mi_uint2korr((key)+1); } 
  43. }
  44. #define get_key_pack_length(length,length_pack,key) 
  45. { if ((uchar) *(key) != 255) 
  46.   { length= (uint) (uchar) *((key)++); length_pack=1; }
  47.   else 
  48.   { length=mi_uint2korr((key)+1); (key)+=3; length_pack=3; } 
  49. }
  50. extern int mi_compare_text(CHARSET_INFO *, uchar *, uint, uchar *, uint ,
  51.    my_bool, my_bool);
  52. extern int ha_key_cmp(register HA_KEYSEG *keyseg, register uchar *a,
  53.       register uchar *b, uint key_length, uint nextflag,
  54.       uint *diff_pos);
  55. extern HA_KEYSEG *ha_find_null(HA_KEYSEG *keyseg, uchar *a);
  56. #endif /* _my_handler_h */