diff options
author | unknown <serg@janus.mylan> | 2007-01-29 10:40:26 +0100 |
---|---|---|
committer | unknown <serg@janus.mylan> | 2007-01-29 10:40:26 +0100 |
commit | 4e8b49d656828fbe2f84d9970a036db644185981 (patch) | |
tree | f14bd08181ddd81d2a41f06d9bf0f11d6edf53b5 /include | |
parent | 6e1ba88418887369ca71b49222c6fd66335bbe0c (diff) | |
download | mariadb-git-4e8b49d656828fbe2f84d9970a036db644185981.tar.gz |
WL#3700: Handler API change: all index search methods - that is,
index_read(), index_read_idx(), index_read_last(), and
records_in_range() - instead of 'uint keylen' argument take
'ulonglong keypart_map', a bitmap showing which keyparts are
present in the key value.
Fallback method is provided for handlers that are lagging behind.
Diffstat (limited to 'include')
-rw-r--r-- | include/heap.h | 2 | ||||
-rw-r--r-- | include/my_base.h | 8 | ||||
-rw-r--r-- | include/myisam.h | 7 | ||||
-rw-r--r-- | include/myisammrg.h | 6 |
4 files changed, 12 insertions, 11 deletions
diff --git a/include/heap.h b/include/heap.h index af053341203..33bbd2f0b3f 100644 --- a/include/heap.h +++ b/include/heap.h @@ -226,7 +226,7 @@ ha_rows hp_rb_records_in_range(HP_INFO *info, int inx, key_range *min_key, key_range *max_key); int hp_panic(enum ha_panic_function flag); int heap_rkey(HP_INFO *info, byte *record, int inx, const byte *key, - uint key_len, enum ha_rkey_function find_flag); + ulonglong keypart_map, enum ha_rkey_function find_flag); extern gptr heap_find(HP_INFO *info,int inx,const byte *key); extern int heap_check_heap(HP_INFO *info, my_bool print_status); extern byte *heap_position(HP_INFO *info); diff --git a/include/my_base.h b/include/my_base.h index 14e4e3afb44..d7cb68efd1f 100644 --- a/include/my_base.h +++ b/include/my_base.h @@ -384,9 +384,10 @@ enum ha_base_keytype { #define HA_ERR_TABLE_NEEDS_UPGRADE 164 /* The table changed in storage engine */ #define HA_ERR_TABLE_READONLY 165 /* The table is not writable */ -#define HA_ERR_AUTOINC_READ_FAILED 166/* Failed to get the next autoinc value */ -#define HA_ERR_AUTOINC_ERANGE 167 /* Failed to set the row autoinc value */ -#define HA_ERR_LAST 167 /*Copy last error nr.*/ +#define HA_ERR_AUTOINC_READ_FAILED 166 /* Failed to get next autoinc value */ +#define HA_ERR_AUTOINC_ERANGE 167 /* Failed to set row autoinc value */ +#define HA_ERR_GENERIC 168 /* Generic error */ +#define HA_ERR_LAST 168 /*Copy last error nr.*/ /* Add error numbers before HA_ERR_LAST and change it accordingly. */ #define HA_ERR_ERRORS (HA_ERR_LAST - HA_ERR_FIRST + 1) @@ -467,6 +468,7 @@ typedef struct st_key_range { const byte *key; uint length; + ulonglong keypart_map; enum ha_rkey_function flag; } key_range; diff --git a/include/myisam.h b/include/myisam.h index f763bf07719..1dd8f6f7ec4 100644 --- a/include/myisam.h +++ b/include/myisam.h @@ -274,9 +274,8 @@ extern struct st_myisam_info *mi_open(const char *name,int mode, uint wait_if_locked); extern int mi_panic(enum ha_panic_function function); extern int mi_rfirst(struct st_myisam_info *file,byte *buf,int inx); -extern int mi_rkey(struct st_myisam_info *file,byte *buf,int inx, - const byte *key, - uint key_len, enum ha_rkey_function search_flag); +extern int mi_rkey(MI_INFO *info, byte *buf, int inx, const byte *key, + ulonglong keypart_map, enum ha_rkey_function search_flag); extern int mi_rlast(struct st_myisam_info *file,byte *buf,int inx); extern int mi_rnext(struct st_myisam_info *file,byte *buf,int inx); extern int mi_rnext_same(struct st_myisam_info *info, byte *buf); @@ -303,7 +302,7 @@ extern int mi_extra(struct st_myisam_info *file, enum ha_extra_function function, void *extra_arg); extern int mi_reset(struct st_myisam_info *file); -extern ha_rows mi_records_in_range(struct st_myisam_info *info,int inx, +extern ha_rows mi_records_in_range(MI_INFO *info, int inx, key_range *min_key, key_range *max_key); extern int mi_log(int activate_log); extern int mi_is_changed(struct st_myisam_info *info); diff --git a/include/myisammrg.h b/include/myisammrg.h index 6587613697a..149b72dc7e1 100644 --- a/include/myisammrg.h +++ b/include/myisammrg.h @@ -86,8 +86,8 @@ extern int myrg_rlast(MYRG_INFO *file,byte *buf,int inx); extern int myrg_rnext(MYRG_INFO *file,byte *buf,int inx); extern int myrg_rprev(MYRG_INFO *file,byte *buf,int inx); extern int myrg_rnext_same(MYRG_INFO *file,byte *buf); -extern int myrg_rkey(MYRG_INFO *file,byte *buf,int inx,const byte *key, - uint key_len, enum ha_rkey_function search_flag); +extern int myrg_rkey(MYRG_INFO *info,byte *buf,int inx, const byte *key, + ulonglong keypart_map, enum ha_rkey_function search_flag); extern int myrg_rrnd(MYRG_INFO *file,byte *buf,ulonglong pos); extern int myrg_rsame(MYRG_INFO *file,byte *record,int inx); extern int myrg_update(MYRG_INFO *file,const byte *old,byte *new_rec); @@ -100,7 +100,7 @@ extern int myrg_extra(MYRG_INFO *file,enum ha_extra_function function, void *extra_arg); extern int myrg_reset(MYRG_INFO *info); extern void myrg_extrafunc(MYRG_INFO *info,invalidator_by_filename inv); -extern ha_rows myrg_records_in_range(MYRG_INFO *info,int inx, +extern ha_rows myrg_records_in_range(MYRG_INFO *info, int inx, key_range *min_key, key_range *max_key); extern ulonglong myrg_position(MYRG_INFO *info); |