diff options
author | unknown <monty@mysql.com/narttu.mysql.fi> | 2007-04-19 13:18:56 +0300 |
---|---|---|
committer | unknown <monty@mysql.com/narttu.mysql.fi> | 2007-04-19 13:18:56 +0300 |
commit | eb7d9500a9909ce594c4d169e70fb5cecbb33e2b (patch) | |
tree | 543fe4c2268186737592c888696ca272481782bf /storage/maria/maria_pack.c | |
parent | 1bf0ed775431a5142e846e23330228468dcf140b (diff) | |
download | mariadb-git-eb7d9500a9909ce594c4d169e70fb5cecbb33e2b.tar.gz |
Fixes after review of guilhem of block record patch
Short overview:
Changed a lot of variable, functions, defines and struct elements to use more readable names
More comments (mostly function and structure slot comments)
Other things:
Changed 'USE_WHOLE_KEY' to a big number to not interfer with long keys
Ensure that tail block are at least of size 'MIN_TAIL_SIZE'
Allow longer keys and key parts than before (don't limit Maria interface by HA_MAX_KEY_LENGTH)
Use ma_chsize() to write initial bitmap page
Added checking if using file with wrong block_size
Added issing types to type_names[] (for maria_chk -d)
Added maria_max_key_length()
include/maria.h:
Changed maria_portable_size_char_ptr to portable_size_char_ptr and moved it to my_handler.h
Removed not used variable maria_delay_rec_write.
More comments
include/my_handler.h:
Added portable_sizeof_char_ptr
include/myisam.h:
Changed mi_portable_size_char_ptr to portable_size_char_ptr and moved it to my_handler.h
mysql-test/r/maria.result:
Fix results when we now have a longer key length
mysql-test/t/maria.test:
More tests
mysys/my_pread.c:
Code cleanup
sql/net_serv.cc:
Changed warning to note (as in main 5.1 tree) to avoid not critical failing tests
sql/sql_select.cc:
Use portable_sizeof_char_ptr
storage/maria/ha_maria.cc:
Added max_supported_key_length(), as this is not a trival function anymore
storage/maria/ha_maria.h:
Moved max_supported_key_length(), as this is not a trival function anymore
storage/maria/ma_bitmap.c:
Lots of new comments
Added maria_bitmap_marker[] to mark 2 last bytes of each bitmap (for corruption detection)
Trivial code changes (based on review comments)
storage/maria/ma_blockrec.c:
More code comments
Renamed _block_row() functions to _block_record()
Trivial code changes, based on review comments
Moved Code from maria_close() to _ma_end_block_record()
Some function renames to make things more understandable
DIR_ENTRY_OFFSET -> DIR_COUNT_OFFSET
keybuff_used -> keyread_buff_used
ma_recordpos_to_offset -> ma_recordpos_to_dir_entry
Changed some 'rec' named variables to 'column'.
Ensure that tail block are at least of size 'MIN_TAIL_SIZE'
storage/maria/ma_blockrec.h:
More comments
DIRCOUNT_SIZE -> DIR_COUNT_SIZE
Added define for maira_bitmap_marker[]
ma_recordpos_to_offset -> ma_recordpos_to_dir_entry
xxx_block_row() -> xxx_block_record()
Made _ma_read_bitmap_page() static
storage/maria/ma_check.c:
More comments
ma_recordpos_to_offset() -> ma_recordpos_to_dir_entry()
DIR_ENTRY_OFFSET -> DIR_COUNT_OFFSET
rec variables -> column variables
recdef -> columndef
storage/maria/ma_checksum.c:
rec -> column
Avoid an 'if' in _ma_checksum() for the common case
storage/maria/ma_close.c:
Moved resetting of info->dfile to ma_end_once_block_record()
storage/maria/ma_create.c:
Some variable changes to make things more readable:
recinfo -> columndef
rec -> column
rec_end -> end_column
record_type -> datafile_type
ma_recinfo_write() -> ma_columndef_write()
Fixed wrong setting of 'data_file_length'; Now max_rows should be calculated correctly
New check if too long key.
Use ma_chsize() to write bitmap page.
storage/maria/ma_delete.c:
keybuff_used -> keyread_buff_used
storage/maria/ma_dynrec.c:
rec -> columndef
rec_length -> column_length
maria_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
Better comment for _ma_read_rnd_dynamic_record()
storage/maria/ma_ft_eval.c:
maria_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
storage/maria/ma_ft_test1.c:
maria_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
storage/maria/ma_ft_update.c:
keybuff_used -> keyread_buff_used
storage/maria/ma_info.c:
More comments
storage/maria/ma_open.c:
Added checking if using file with wrong block_size
New checking of max_key_length
rec -> columndef
_ma_recinfo_write -> _ma_columndef_write
Don't change block_size (as this is checked in ma_create())
More comments
storage/maria/ma_packrec.c:
Trivial code changes
rec -> columndef
maria_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
storage/maria/ma_page.c:
keybuff_used -> keyread_buff_used
storage/maria/ma_rkey.c:
Removed not needded empty line
storage/maria/ma_rrnd.c:
Removed not used variable
storage/maria/ma_rt_index.c:
keybuff_used -> keyread_buff_used
storage/maria/ma_search.c:
keybuff_used -> keyread_buff_used
Trivial code changes
storage/maria/ma_sp_test.c:
maria_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
storage/maria/ma_test1.c:
maria_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
storage/maria/ma_test2.c:
maria_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
storage/maria/ma_update.c:
Updated comment
storage/maria/ma_write.c:
keybuff_used -> keyread_buff_used
storage/maria/maria_chk.c:
Added missing types to type_names[]
Removed not used variable
rec -> columndef
Replaced some numbers with define flags
storage/maria/maria_def.h:
More comments
Added 'MARIA_INDEX_MIN_OVERHEAD_SIZE'
rec -> columndef
keybuff_used -> keyread_buff_used
_ma_recinfo_write -> _ma_culumndef_write
_ma_recinfo_read -> _ma_columndef_read
Changed 'USE_WHOLE_KEY' to a big number to not interfer with long keys
Added maria_max_key_length()
storage/maria/maria_pack.c:
Updated message strings
rec -> columndef
maria_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
More comments
storage/myisam/ft_eval.c:
mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
storage/myisam/ft_test1.c:
mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
storage/myisam/mi_checksum.c:
mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
storage/myisam/mi_create.c:
mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
storage/myisam/mi_dynrec.c:
mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
storage/myisam/mi_open.c:
mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
storage/myisam/mi_packrec.c:
mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
storage/myisam/mi_rkey.c:
Unlock mutex also in case of error
storage/myisam/mi_test1.c:
mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
storage/myisam/mi_test2.c:
mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
storage/myisam/myisampack.c:
mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
storage/myisam/sp_test.c:
mi_portable_sizeof_char_ptr -> portable_sizeof_char_ptr
support-files/magic:
Fixed typo
Diffstat (limited to 'storage/maria/maria_pack.c')
-rw-r--r-- | storage/maria/maria_pack.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/storage/maria/maria_pack.c b/storage/maria/maria_pack.c index dbd48e62d29..e4d0bcebbb9 100644 --- a/storage/maria/maria_pack.c +++ b/storage/maria/maria_pack.c @@ -307,9 +307,10 @@ static void usage(void) puts("and you are welcome to modify and redistribute it under the GPL license\n"); puts("Pack a MARIA-table to take much less space."); - puts("Keys are not updated, you must run maria_chk -rq on the datafile"); + puts("Keys are not updated, you must run maria_chk -rq on the index (.MAI) file"); puts("afterwards to update the keys."); - puts("You should give the .MYI file as the filename argument."); + puts("You should give the .MAI file as the filename argument."); + puts("To unpack a packed table, run maria_chk -u on the table"); VOID(printf("\nUsage: %s [OPTIONS] filename...\n", my_progname)); my_print_help(my_long_options); @@ -462,9 +463,9 @@ static bool open_isam_files(PACK_MRG_INFO *mrg,char **names,uint count) if (mrg->file[j]->s->base.reclength != mrg->file[j+1]->s->base.reclength || mrg->file[j]->s->base.fields != mrg->file[j+1]->s->base.fields) goto diff_file; - m1=mrg->file[j]->s->rec; + m1=mrg->file[j]->s->columndef; end=m1+mrg->file[j]->s->base.fields; - m2=mrg->file[j+1]->s->rec; + m2=mrg->file[j+1]->s->columndef; for ( ; m1 != end ; m1++,m2++) { if (m1->type != m2->type || m1->length != m2->length) @@ -773,8 +774,8 @@ static HUFF_COUNTS *init_huff_count(MARIA_HA *info,my_off_t records) for (i=0 ; i < info->s->base.fields ; i++) { enum en_fieldtype type; - count[i].field_length=info->s->rec[i].length; - type= count[i].field_type= (enum en_fieldtype) info->s->rec[i].type; + count[i].field_length=info->s->columndef[i].length; + type= count[i].field_type= (enum en_fieldtype) info->s->columndef[i].type; if (type == FIELD_INTERVALL || type == FIELD_CONSTANT || type == FIELD_ZERO) @@ -1003,7 +1004,7 @@ static int get_statistic(PACK_MRG_INFO *mrg,HUFF_COUNTS *huff_counts) /* Calculate pos, end_pos, and max_length for variable length fields. */ if (count->field_type == FIELD_BLOB) { - uint field_length=count->field_length -maria_portable_sizeof_char_ptr; + uint field_length=count->field_length -portable_sizeof_char_ptr; ulong blob_length= _ma_calc_blob_length(field_length, start_pos); memcpy_fixed((char*) &pos, start_pos+field_length,sizeof(char*)); end_pos=pos+blob_length; @@ -2656,7 +2657,7 @@ static int compress_isam_file(PACK_MRG_INFO *mrg, HUFF_COUNTS *huff_counts) case FIELD_BLOB: { ulong blob_length= _ma_calc_blob_length(field_length- - maria_portable_sizeof_char_ptr, + portable_sizeof_char_ptr, start_pos); /* Empty blobs are encoded with a single 1 bit. */ if (!blob_length) @@ -2673,7 +2674,7 @@ static int compress_isam_file(PACK_MRG_INFO *mrg, HUFF_COUNTS *huff_counts) DBUG_PRINT("fields", ("FIELD_BLOB %lu bytes, bits: %2u", blob_length, count->length_bits)); write_bits(blob_length,count->length_bits); - memcpy_fixed(&blob,end_pos-maria_portable_sizeof_char_ptr, + memcpy_fixed(&blob,end_pos-portable_sizeof_char_ptr, sizeof(char*)); blob_end=blob+blob_length; /* Encode the blob bytes. */ @@ -2952,6 +2953,7 @@ static int save_state(MARIA_HA *isam_file,PACK_MRG_INFO *mrg, options|= HA_OPTION_COMPRESS_RECORD | HA_OPTION_READ_ONLY_DATA; mi_int2store(share->state.header.options,options); + /* Save the original file type of we have to undo the packing later */ share->state.header.org_data_file_type= share->state.header.data_file_type; share->state.header.data_file_type= COMPRESSED_RECORD; |