summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <tim@white.box>2001-07-24 12:23:17 -0400
committerunknown <tim@white.box>2001-07-24 12:23:17 -0400
commit22a5241f2836c3c9217bd59d6658259486e7fd27 (patch)
tree18791d54d6f1fcaf0985132031e33fa532ba0954 /sql
parent710fb9998b7a37ece5fc5e84a5a7accc84bb1850 (diff)
downloadmariadb-git-22a5241f2836c3c9217bd59d6658259486e7fd27.tar.gz
Add test case for update/replace bug in bdb.
Remove unused argument to ha_berkeley::remove_key(). mysql-test/r/bdb.result: Add test case for update/replace bug in bdb. BitKeeper/etc/ignore: Added .gdbinit .vimrc to the ignore list mysql-test/t/bdb.test: Add test case for update/replace bug in bdb. sql/ha_berkeley.cc: The packed_record argument to ha_berkeley::remove_key() was never used; remove it. sql/ha_berkeley.h: The packed_record argument to ha_berkeley::remove_key() was never used; remove it.
Diffstat (limited to 'sql')
-rw-r--r--sql/ha_berkeley.cc21
-rw-r--r--sql/ha_berkeley.h3
2 files changed, 8 insertions, 16 deletions
diff --git a/sql/ha_berkeley.cc b/sql/ha_berkeley.cc
index fedb7812c36..25f8148e52f 100644
--- a/sql/ha_berkeley.cc
+++ b/sql/ha_berkeley.cc
@@ -888,7 +888,7 @@ int ha_berkeley::write_row(byte * record)
if (changed_keys & 1)
{
if ((new_error = remove_key(sub_trans, keynr, record,
- (DBT*) 0, &prim_key)))
+ &prim_key)))
break; /* purecov: inspected */
}
}
@@ -970,7 +970,7 @@ int ha_berkeley::update_primary_key(DB_TXN *trans, bool primary_key_changed,
{
// Primary key changed or we are updating a key that can have duplicates.
// Delete the old row and add a new one
- if (!(error=remove_key(trans, primary_key, old_row, (DBT *) 0, old_key)))
+ if (!(error=remove_key(trans, primary_key, old_row, old_key)))
{
if (!(error=pack_row(&row, new_row, 0)))
{
@@ -1034,7 +1034,7 @@ int ha_berkeley::restore_keys(DB_TXN *trans, key_map changed_keys,
if (changed_keys & 1)
{
if (changed_keys != 1 &&
- (error = remove_key(trans, keynr, new_row, (DBT*) 0, new_key)))
+ (error = remove_key(trans, keynr, new_row, new_key)))
break; /* purecov: inspected */
if ((error = key_file[keynr]->put(key_file[keynr], trans,
create_key(&tmp_key, keynr, key_buff2,
@@ -1105,8 +1105,7 @@ int ha_berkeley::update_row(const byte * old_row, byte * new_row)
continue;
if (key_cmp(keynr, old_row, new_row) || primary_key_changed)
{
- if ((error=remove_key(sub_trans, keynr, old_row, (DBT*) 0,
- &old_prim_key)))
+ if ((error=remove_key(sub_trans, keynr, old_row, &old_prim_key)))
{
if (using_ignore && /* purecov: inspected */
(thd_options & OPTION_INTERNAL_SUBTRANSACTIONS))
@@ -1172,11 +1171,9 @@ int ha_berkeley::update_row(const byte * old_row, byte * new_row)
Delete one key
This uses key_buff2, when keynr != primary key, so it's important that
a function that calls this doesn't use this buffer for anything else.
- packed_record may be NULL if the key is unique
*/
int ha_berkeley::remove_key(DB_TXN *trans, uint keynr, const byte *record,
- DBT *packed_record,
DBT *prim_key)
{
int error;
@@ -1208,12 +1205,8 @@ int ha_berkeley::remove_key(DB_TXN *trans, uint keynr, const byte *record,
&tmp_cursor, 0)))
{
if (!(error=tmp_cursor->c_get(tmp_cursor,
- (keynr == primary_key ?
- prim_key :
- create_key(&key, keynr, key_buff2, record)),
- (keynr == primary_key ?
- packed_record : prim_key),
- DB_GET_BOTH | DB_RMW)))
+ create_key(&key, keynr, key_buff2, record),
+ prim_key, DB_GET_BOTH | DB_RMW)))
{ // This shouldn't happen
error=tmp_cursor->c_del(tmp_cursor,0);
}
@@ -1236,7 +1229,7 @@ int ha_berkeley::remove_keys(DB_TXN *trans, const byte *record,
{
if (keys & 1)
{
- int new_error=remove_key(trans, keynr, record, new_record, prim_key);
+ int new_error=remove_key(trans, keynr, record, prim_key);
if (new_error)
{
result=new_error; // Return last error /* purecov: inspected */
diff --git a/sql/ha_berkeley.h b/sql/ha_berkeley.h
index 9e657d72da1..3eb793937ae 100644
--- a/sql/ha_berkeley.h
+++ b/sql/ha_berkeley.h
@@ -69,8 +69,7 @@ class ha_berkeley: public handler
int key_length = MAX_KEY_LENGTH);
DBT *pack_key(DBT *key, uint keynr, char *buff, const byte *key_ptr,
uint key_length);
- int remove_key(DB_TXN *trans, uint keynr, const byte *record,
- DBT *packed_record, DBT *prim_key);
+ int remove_key(DB_TXN *trans, uint keynr, const byte *record, DBT *prim_key);
int remove_keys(DB_TXN *trans,const byte *record, DBT *new_record,
DBT *prim_key, key_map keys);
int restore_keys(DB_TXN *trans, key_map changed_keys, uint primary_key,