diff options
author | unknown <monty@hundin.mysql.fi> | 2001-11-03 15:18:09 +0200 |
---|---|---|
committer | unknown <monty@hundin.mysql.fi> | 2001-11-03 15:18:09 +0200 |
commit | b2cec26dfb0fa6e2e7240d5dd2044e1192596ef8 (patch) | |
tree | d5d2a601f2e922dce27a5041739103c6468d4cf8 /sql/ha_berkeley.cc | |
parent | b9e1b930f73a43c739a916254fdbb46641cd51a0 (diff) | |
download | mariadb-git-b2cec26dfb0fa6e2e7240d5dd2044e1192596ef8.tar.gz |
Fix that mysqladmin shutdown can be interrupted with ^C
Fixed bug with BLOB keys in BDB tables
Fixed problem with MERGE tables on OS with 32 bit files
Fixed that TIME_TO_SEC() works with negative times
Docs/manual.texi:
Changelog
client/mysqladmin.c:
Fix that mysqladmin shutdown can be interrupted with ^C
include/mysqld_error.h:
Fixed typo
mysql-test/r/func_time.result:
Added test case for negative times
mysql-test/t/func_time.test:
Added test case for negative times
mysql-test/t/rpl000015-slave.sh:
Removed warnings
mysql-test/t/rpl000016-slave.sh:
Removed warnings
sql/field.cc:
Fixed bug with BLOB keys in BDB tables
sql/field.h:
Fixed bug with BLOB keys in BDB tables
sql/ha_berkeley.cc:
Fixed bug with BLOB keys in BDB tables
sql/ha_myisammrg.cc:
Fixed problem with MERGE tables on OS with 32 bit files
sql/item_timefunc.cc:
Fixed that TIME_TO_SEC() works with negative times.
sql/share/swedish/errmsg.txt:
Merge with 4.0
sql/sql_acl.cc:
Fixed typo
Diffstat (limited to 'sql/ha_berkeley.cc')
-rw-r--r-- | sql/ha_berkeley.cc | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/sql/ha_berkeley.cc b/sql/ha_berkeley.cc index e9cd3f57122..f52b99f5a12 100644 --- a/sql/ha_berkeley.cc +++ b/sql/ha_berkeley.cc @@ -28,8 +28,8 @@ - Get a more accurate count of the number of rows (estimate_number_of_rows()). We could store the found number of rows when the table is scanned and then increment the counter for each attempted write. - - We will need a manager thread that calls flush_logs, removes old - logs and makes checkpoints at given intervals. + - We will need to extend the manager thread to makes checkpoints at + given intervals. - When not using UPDATE IGNORE, don't make a sub transaction but abort the main transaction on errors. - Handling of drop table during autocommit=0 ? @@ -90,7 +90,7 @@ const char *berkeley_lock_names[] = { "DEFAULT", "OLDEST","RANDOM","YOUNGEST",0 }; u_int32_t berkeley_lock_types[]= { DB_LOCK_DEFAULT, DB_LOCK_OLDEST, DB_LOCK_RANDOM }; -TYPELIB berkeley_lock_typelib= {array_elements(berkeley_lock_names),"", +TYPELIB berkeley_lock_typelib= {array_elements(berkeley_lock_names)-1,"", berkeley_lock_names}; static void berkeley_print_error(const char *db_errpfx, char *buffer); @@ -372,10 +372,12 @@ berkeley_cmp_packed_key(DB *file, const DBT *new_key, const DBT *saved_key) if ((cmp=key_part->field->pack_cmp(new_key_ptr,saved_key_ptr, key_part->length))) return cmp; - uint length=key_part->field->packed_col_length(new_key_ptr); + uint length=key_part->field->packed_col_length(new_key_ptr, + key_part->length); new_key_ptr+=length; key_length-=length; - saved_key_ptr+=key_part->field->packed_col_length(saved_key_ptr); + saved_key_ptr+=key_part->field->packed_col_length(saved_key_ptr, + key_part->length); } return key->handler.bdb_return_if_eq; } @@ -433,7 +435,7 @@ berkeley_key_cmp(TABLE *table, KEY *key_info, const char *key, uint key_length) } if ((cmp=key_part->field->pack_cmp(key,key_part->length))) return cmp; - uint length=key_part->field->packed_col_length(key); + uint length=key_part->field->packed_col_length(key,key_part->length); key+=length; key_length-=length; } @@ -1552,7 +1554,7 @@ DBT *ha_berkeley::get_pos(DBT *to, byte *pos) KEY_PART_INFO *end=key_part+table->key_info[primary_key].key_parts; for ( ; key_part != end ; key_part++) - pos+=key_part->field->packed_col_length((char*) pos); + pos+=key_part->field->packed_col_length((char*) pos,key_part->length); to->size= (uint) (pos- (byte*) to->data); } return to; |