diff options
author | unknown <jani@a88-113-38-195.elisa-laajakaista.fi> | 2007-10-04 23:33:55 +0300 |
---|---|---|
committer | unknown <jani@a88-113-38-195.elisa-laajakaista.fi> | 2007-10-04 23:33:55 +0300 |
commit | 2011f790295f05ef8fde08b37dc00aa11d7a305c (patch) | |
tree | 7225ad3217657fb9d0f7fb08e76438910a7c2b69 /storage/maria/ma_delete.c | |
parent | 4eb383e06c021e89244cbf7d24abecb7b3bde01b (diff) | |
parent | 24db7ed7e13c603488c0a5e05ad9c87754b2ffaf (diff) | |
download | mariadb-git-2011f790295f05ef8fde08b37dc00aa11d7a305c.tar.gz |
Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-maria
into a88-113-38-195.elisa-laajakaista.fi:/home/my/bk/mysql-maria.prod
BUILD/SETUP.sh:
Auto merged
sql/opt_range.cc:
Auto merged
sql/sql_insert.cc:
Auto merged
storage/maria/ha_maria.cc:
Auto merged
storage/maria/ma_check.c:
Auto merged
storage/maria/ma_create.c:
Auto merged
storage/maria/ma_delete.c:
Auto merged
storage/maria/ma_open.c:
Auto merged
storage/maria/ma_update.c:
Auto merged
storage/maria/ma_write.c:
Auto merged
storage/maria/maria_chk.c:
Auto merged
storage/maria/maria_def.h:
Auto merged
storage/maria/ma_pagecache.c:
Manual merge with maria tree.
storage/myisam/sort.c:
Manual merge with maria tree.
Diffstat (limited to 'storage/maria/ma_delete.c')
-rw-r--r-- | storage/maria/ma_delete.c | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/storage/maria/ma_delete.c b/storage/maria/ma_delete.c index f711102e491..3f88f9025a3 100644 --- a/storage/maria/ma_delete.c +++ b/storage/maria/ma_delete.c @@ -44,10 +44,10 @@ int maria_delete(MARIA_HA *info,const uchar *record) /* Test if record is in datafile */ DBUG_EXECUTE_IF("maria_pretend_crashed_table_on_usage", - maria_print_error(info->s, HA_ERR_CRASHED); + maria_print_error(share, HA_ERR_CRASHED); DBUG_RETURN(my_errno= HA_ERR_CRASHED);); DBUG_EXECUTE_IF("my_error_test_undefined_error", - maria_print_error(info->s, INT_MAX); + maria_print_error(share, INT_MAX); DBUG_RETURN(my_errno= INT_MAX);); if (!(info->update & HA_STATE_AKTIV)) { @@ -70,17 +70,17 @@ int maria_delete(MARIA_HA *info,const uchar *record) old_key= info->lastkey2; for (i=0 ; i < share->base.keys ; i++ ) { - if (maria_is_key_active(info->s->state.key_map, i)) + if (maria_is_key_active(share->state.key_map, i)) { - info->s->keyinfo[i].version++; - if (info->s->keyinfo[i].flag & HA_FULLTEXT ) + share->keyinfo[i].version++; + if (share->keyinfo[i].flag & HA_FULLTEXT ) { if (_ma_ft_del(info, i, old_key, record, info->cur_row.lastpos)) goto err; } else { - if (info->s->keyinfo[i].ck_delete(info,i,old_key, + if (share->keyinfo[i].ck_delete(info,i,old_key, _ma_make_key(info, i, old_key, record, info->cur_row.lastpos))) @@ -91,19 +91,20 @@ int maria_delete(MARIA_HA *info,const uchar *record) } } - if ((*share->delete_record)(info, record)) - goto err; /* Remove record from database */ - - /* - We can't use the row based checksum as this doesn't have enough - precision. - */ - if (info->s->calc_checksum) + if (share->calc_checksum) { - info->cur_row.checksum= (*info->s->calc_checksum)(info,record); - info->state->checksum-= info->cur_row.checksum; + /* + We can't use the row based checksum as this doesn't have enough + precision. + */ + info->cur_row.checksum= (*share->calc_checksum)(info, record); } + if ((*share->delete_record)(info, record)) + goto err; /* Remove record from database */ + + info->state->checksum+= - !share->now_transactional * + info->cur_row.checksum; info->update= HA_STATE_CHANGED+HA_STATE_DELETED+HA_STATE_ROW_CHANGED; info->state->records-= !share->now_transactional; share->state.changed|= STATE_NOT_OPTIMIZED_ROWS; @@ -113,8 +114,8 @@ int maria_delete(MARIA_HA *info,const uchar *record) allow_break(); /* Allow SIGHUP & SIGINT */ if (info->invalidator != 0) { - DBUG_PRINT("info", ("invalidator... '%s' (delete)", info->s->open_file_name)); - (*info->invalidator)(info->s->open_file_name); + DBUG_PRINT("info", ("invalidator... '%s' (delete)", share->open_file_name)); + (*info->invalidator)(share->open_file_name); info->invalidator=0; } DBUG_RETURN(0); @@ -124,7 +125,7 @@ err: mi_sizestore(lastpos, info->cur_row.lastpos); if (save_errno != HA_ERR_RECORD_CHANGED) { - maria_print_error(info->s, HA_ERR_CRASHED); + maria_print_error(share, HA_ERR_CRASHED); maria_mark_crashed(info); /* mark table crashed */ } VOID(_ma_writeinfo(info,WRITEINFO_UPDATE_KEYFILE)); @@ -133,7 +134,7 @@ err: my_errno=save_errno; if (save_errno == HA_ERR_KEY_NOT_FOUND) { - maria_print_error(info->s, HA_ERR_CRASHED); + maria_print_error(share, HA_ERR_CRASHED); my_errno=HA_ERR_CRASHED; } |