diff options
author | serg@serg.mylan <> | 2004-06-23 12:29:05 +0200 |
---|---|---|
committer | serg@serg.mylan <> | 2004-06-23 12:29:05 +0200 |
commit | 3f1c4ba745573eefb8739a9d16199ec552f190de (patch) | |
tree | ed41d441646213c959f138d9a933c09f994d81d9 /sql/ha_berkeley.cc | |
parent | e70b330f6956041d5e57d77961e0de92682971eb (diff) | |
download | mariadb-git-3f1c4ba745573eefb8739a9d16199ec552f190de.tar.gz |
handler interface cleanups:
more logical table/index_flags
return HA_ERR_WRONG_COMMAND instead of abstract methods where appropriate
max_keys and other limits renamed to max_supported_keys/etc
max_keys/etc are now wrappers to max_supported_keys/etc
ha_index_init/ha_rnd_init/ha_index_end/ha_rnd_end are now wrappers to real {index,rnd}_{init,end} to enforce strict pairing
Diffstat (limited to 'sql/ha_berkeley.cc')
-rw-r--r-- | sql/ha_berkeley.cc | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sql/ha_berkeley.cc b/sql/ha_berkeley.cc index 4dde893116f..be6b1e2ce9b 100644 --- a/sql/ha_berkeley.cc +++ b/sql/ha_berkeley.cc @@ -442,7 +442,6 @@ berkeley_key_cmp(TABLE *table, KEY *key_info, const char *key, uint key_length) return 0; // Identical keys } - int ha_berkeley::open(const char *name, int mode, uint test_if_locked) { char name_buff[FN_REFLEN]; @@ -1350,6 +1349,7 @@ int ha_berkeley::index_end() error=cursor->c_close(cursor); cursor=0; } + active_index=MAX_KEY; DBUG_RETURN(error); } @@ -1411,7 +1411,7 @@ int ha_berkeley::index_read_idx(byte * buf, uint keynr, const byte * key, statistic_increment(ha_read_key_count,&LOCK_status); DBUG_ENTER("index_read_idx"); current_row.flags=DB_DBT_REALLOC; - active_index= (uint) -1; + active_index=MAX_KEY; DBUG_RETURN(read_row(key_file[keynr]->get(key_file[keynr], transaction, pack_key(&last_key, keynr, key_buff, key, key_len), @@ -1482,7 +1482,7 @@ int ha_berkeley::index_read(byte * buf, const byte * key, bzero((char*) &row, sizeof(row)); error= read_row(cursor->c_get(cursor, &last_key, &row, DB_PREV), (char*) buf, active_index, &row, &last_key, 1); - } + } DBUG_RETURN(error); } @@ -1583,12 +1583,14 @@ int ha_berkeley::index_last(byte * buf) int ha_berkeley::rnd_init(bool scan) { DBUG_ENTER("rnd_init"); + DBUG_ASSERT(active_index==MAX_KEY); current_row.flags=DB_DBT_REALLOC; DBUG_RETURN(index_init(primary_key)); } int ha_berkeley::rnd_end() { + active_index= MAX_KEY; return index_end(); } @@ -1630,7 +1632,7 @@ int ha_berkeley::rnd_pos(byte * buf, byte *pos) statistic_increment(ha_read_rnd_count,&LOCK_status); DBUG_ENTER("ha_berkeley::rnd_pos"); - active_index= (uint) -1; // Don't delete via cursor + active_index= MAX_KEY; DBUG_RETURN(read_row(file->get(file, transaction, get_pos(&db_pos, pos), ¤t_row, 0), |