diff options
author | unknown <monty@mysql.com/narttu.mysql.fi> | 2007-12-31 11:55:46 +0200 |
---|---|---|
committer | unknown <monty@mysql.com/narttu.mysql.fi> | 2007-12-31 11:55:46 +0200 |
commit | 6cad02044072403c652e2da9a3cc0dfd9713f1e6 (patch) | |
tree | 2c526d1754deff4582c354f19712550e132f5d37 /storage/maria/ma_delete.c | |
parent | 1e9ee8abbd348f3bf1f4342b4db69a025a289523 (diff) | |
download | mariadb-git-6cad02044072403c652e2da9a3cc0dfd9713f1e6.tar.gz |
Added maria_zerofill()
This is used to bzero all not used parts of the index pages and compact and bzero the not used parts of the data pages of block-record type
Added --zerofill (-z) option to maria_chk (Mostly code from Jani)
Added now table states ZEROFILLED and MOVEABLE
Set state.changed with new states when things changes
include/maria.h:
Added maria_zerofill
include/myisamchk.h:
Added option for zerofill
Extend testflag to be 64 to allow for more flags
mysql-test/r/create.result:
Updated results after merge
mysql-test/r/maria.result:
Updated results after merge
mysys/my_getopt.c:
Removed not used variable
sql/sql_show.cc:
Fixed wrong page type
storage/maria/ma_blockrec.c:
Renamed compact_page() to ma_compact_block_page() and made it global
Always zerofill half filled blob pages
Set share.state.changed on REDO
storage/maria/ma_blockrec.h:
Added _ma_compact_block_page()
storage/maria/ma_check.c:
Added maria_zerofill()
This is used to bzero all not used parts of the index pages and compact and bzero the not used parts of the data pages of block-record type
This gives the following benefits:
- Table is smaller if compressed
- All LSN are removed for transactinal tables and this makes them movable between systems
Dont set table states of we are using --quick
Changed log entry for repair to use 8 bytes for flag
storage/maria/ma_delete.c:
Simplify code
Update state.changed
storage/maria/ma_key_recover.c:
Update state.changed
storage/maria/ma_locking.c:
Set uuid for file on first change if it's not set (table was cleared with zerofill)
storage/maria/ma_loghandler.c:
Updated log entry for REDO_REPAIR_TABLE
storage/maria/ma_recovery.c:
Updated log entry for REDO_REPAIR_TABLE (flag is now 8 bytes)
Set new bits in state.changed
storage/maria/ma_test_all.sh:
Nicer output
storage/maria/ma_test_recovery.expected:
Updated results (now states flags are visible)
storage/maria/ma_update.c:
Update state.changed
storage/maria/ma_write.c:
Simplify code
Set state.changed
storage/maria/maria_chk.c:
Added option --zerofill
Added printing of states for MOVABLE and ZEROFILLED
MYD -> MAD
MYI -> MAI
storage/maria/maria_def.h:
Added states STATE_NOT_MOVABLE and STATE_NOT_ZEROFILLED
Added prototype for new functions
storage/maria/unittest/ma_test_all-t:
More tests, including tests for zerofill
Removed some not needed 'print' statements
storage/maria/unittest/ma_test_loghandler_multithread-t.c:
Smaller buffer to not trash devlopment machines totally
Diffstat (limited to 'storage/maria/ma_delete.c')
-rw-r--r-- | storage/maria/ma_delete.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/storage/maria/ma_delete.c b/storage/maria/ma_delete.c index bbe56432e87..945ab176e38 100644 --- a/storage/maria/ma_delete.c +++ b/storage/maria/ma_delete.c @@ -109,11 +109,14 @@ int maria_delete(MARIA_HA *info,const uchar *record) if ((*share->delete_record)(info, record)) goto err; /* Remove record from database */ - info->state->checksum+= - !share->now_transactional * - info->cur_row.checksum; + if (!share->now_transactional) + { + info->state->checksum-= info->cur_row.checksum; + info->state->records--; + } 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; + share->state.changed|= (STATE_NOT_OPTIMIZED_ROWS | STATE_NOT_MOVABLE | + STATE_NOT_ZEROFILLED); mi_sizestore(lastpos, info->cur_row.lastpos); VOID(_ma_writeinfo(info,WRITEINFO_UPDATE_KEYFILE)); |