- 08 Mar, 2006 2 commits
-
-
marko authored
btr_root_raise_and_insert(): Because btr_page_set_level() must not change level from non-zero to zero on compressed pages, invoke btr_page_set_level() with page_zip==NULL and compress the entire root page after creating it from the scratch. btr_attach_half_pages(): Simplify the computation of lower_page_zip and upper_page_zip. Invoke btr_node_ptr_set_child_page_no() with the correct page_zip. page0page.h: Add __attribute__((const)) to functions testing for infimum or supremum. page_zip_dir_delete(): Note that the third parameter may be NULL. Correct offset errors. page_zip_available(): Use n_heap instead of n_recs. page_zip_dir_find(), page_zip_dir_find_free(): Fix off-by-one error. page_zip_fields_encode(), page_zip_fields_decode(): Encode and decode index->n_nullable for non-leaf pages. page_zip_apply_log(): Write REC_NEW_HEAP_NO before calling rec_offs_make_valid(). page_zip_write_node_ptr(): Correct off-by-one error. page_cur_search_with_match(): Make use of page_is_leaf(). page_dir_add_slots(): Replaced with page_dir_add_slot(). Use memmove().
-
marko authored
before and after the operation.
-
- 07 Mar, 2006 3 commits
-
-
marko authored
buf_flush_init_for_writing(): Copy FIL_PAGE_LSN to the compressed page. page_cur_insert_rec_low(): Add debug assertion.
-
marko authored
page_zip_fixed_field_encode(), page_zip_fields_encode(), page_zip_fields_decode(): Do not waste one bit when encoding quantities larger than 127. page_zip_apply_log(), page_zip_write_rec(): Decode and encode heap_no >= 127 correctly.
-
marko authored
page_zip_apply_log(): Correct an off-by-one error. page_zip_write_rec(): Correct a debug assertion. Encode heap_no as soon as possible.
-
- 06 Mar, 2006 1 commit
-
-
marko authored
row_upd_rec_in_place(), page_zip_write_rec(): Add parameter "index". page_dir_set_n_heap(): Add a debug assertion that on compressed pages, n_heap will always be incremented by one. Improve code formatting. page_zip_dir_add_slot(): New function, called from page_cur_insert_rec_low() after page_mem_alloc_heap(). rec_set_n_owned_new(): Do not call page_zip_rec_set_owned() on the supremum record. rec_offs_make_valid(): Add debug assertions. page_zip_dir_user_size(): Correct an off-by-one error in the debug assertion. page_zip_apply_log(): Add parameter trx_id_col. Skip trx_id and roll_ptr. page_zip_decompress(): Simplify the handling of "storage" in the loop that copies the uncompressed fields. page_zip_write_rec(): Store trx_id and roll_ptr separately. page_zip_write_trx_id(), page_zip_write_roll_ptr(): Fix off-by-one errors. page_cur_insert_rec_low(): Call page_zip_dir_add_slot() after page_mem_alloc_heap(). Remove some redundant assertions. Pass page_zip to page_dir_split_slot().
-
- 03 Mar, 2006 4 commits
-
-
marko authored
-
marko authored
rec_get_offsets_reverse(): Calculate extra_size correctly. page_zip_apply_log(): Fix an off-by-one error in comparison. Replace heap_status with hs where possible. Increment the heap_no in heap_status correctly. page_zip_decompress(): Eliminate the local variable "err". Check for Z_STREAM_END only at the start of a record, so that incomplete records will always be detected. page_zip_write_rec(): Calculate the address of "storage" in the same way as elsewhere. Add TODO comments regarding the handling of the uncompressed fields (BLOB pointers, trx_id, and roll_ptr).
-
marko authored
-
marko authored
-
- 02 Mar, 2006 1 commit
-
-
marko authored
btr_create(): page_zip_compress() returns FALSE on failure. page_zip_write_header(): Write to page_zip->data[] instead of page_zip[]. buf_flush_init_for_writing(): Add parameter page_zip and set the fields also in the header of the compressed page. btr_cur_search_to_nth_level(): Add ut_ad() on page_zip_validate().
-
- 01 Mar, 2006 3 commits
-
-
marko authored
page_zip_compress(), page_zip_decompress(), page_zip_write_rec(): Note that the end marker of the modification log is 1 byte. page_zip_find_heap_no(): Remove. page_zip_apply_log(): Remove parameter "page". Instead of a 2-byte offset to the record, decode the heap number using a variable-length code. page_zip_write_rec(): Check the range of heap_no with debug assertions. Encode the heap number instead of an offset to the start of the record.
-
marko authored
to page0zip.c.
-
marko authored
function prototypes and comments. These changes were accidentally forgotten from revision 253.
-
- 28 Feb, 2006 1 commit
-
-
marko authored
operation succeeds. page_zip_dir_set(): Remove, as the slots will be written to a temporary buffer. page_zip_dir_encode(): Replace page_zip with buf. Make some assertions more accurate. Write the dense page directory to buf. page_zip_compress(): Allocate a temporary buffer for the compressed page except the page header. Make some assertions more accurate. page_zip_compress(), page_zip_decompress(): Remove 2 bytes of empty space adjacent to the area reserved for storing uncompressed columns.
-
- 27 Feb, 2006 5 commits
-
-
marko authored
page_zip_decompress(): Free index and heap at the end of the function. Do not write the index to the MLOG_ZIP_DECOMPRESS record, since it can be decoded from the compressed page.
-
marko authored
now that deletion of records on compressed pages is guaranteed to succeed.
-
marko authored
on a compressed page. page_zip_get_n_relocated(), page_zip_set_n_relocated(), page_zip_get_relocated(): Remove. page0zip.c, page0zip.ic: Remove all references to n_relocated. page_cur_insert_rec_low(): On pages that are compressed, never relocate records that are allocated from the free list.
-
marko authored
page_zip_compress(): Add assertions !c_stream.avail_in where appropriate. Add assertions on c_stream.next_in. Correct malformed assertion on externs > c_stream.next_in. Note that there may be trailing garbage after the last record. page_zip_fields_decode(): Correctly decode variable-length fields having maximum length greater than 255 bytes. page_zip_decompress(): Remove the special treatment of the case !n_dense. Replace the Z_NO_FLUSH argument of inflate() with Z_SYNC_FLUSH. Treat Z_OK return value the same as Z_BUF_ERROR: always check avail_out. After decompressing all records, decompress any trailing garbage.
-
marko authored
-
- 23 Feb, 2006 3 commits
-
-
marko authored
-
marko authored
page_cur_insert_rec_low(): Note that the relocation log on the compressed page needs to reflect some changes of extra_size.
-
marko authored
do not allow extra_size to decrease on compressed pages. Split page_mem_alloc() to page_mem_alloc_free() and page_mem_alloc_heap(). page_cur_insert_rec_low(): Remove parameter "tuple". Implement some of the logic from page_mem_alloc(). page_cur_tuple_insert(): Convert the tuple to a record and calculate offsets. page_zip_validate(): Assert that the page is in compact format.
-
- 22 Feb, 2006 2 commits
-
-
marko authored
Remove the declaration of the undefined function page_zip_available_noninline(). Make page_zip_available() private to page0zip.c and page0zip.ic.
-
marko authored
compressed pages. btr_root_raise_and_insert(): Distinguish root_page_zip and new_page_zip. btr_cur_set_ownership_of_extern_field(): Do not log the write on the uncompressed page if it will be logged for page_zip. lock_rec_insert_check_and_lock(), lock_sec_rec_modify_check_and_lock(): Update the max_trx_id field also on the compressed page. mlog_write_ulint(): Add UNIV_UNLIKELY hints. Remove trailing white space. mlog_log_string(): Remove trailing white space. rec_set_field_extern_bits(): Remove parameter mtr, as the write will either occur in the heap, or it will be logged at a higher level. recv_parse_or_apply_log_rec_body(), page_zip_write_header(): Add log record type MLOG_ZIP_WRITE_HEADER. page_header_set_field(): Pass mtr=NULL to page_zip_write_header(). page_header_reset_last_insert(): Pass mtr to page_zip_write_header(). btr_page_set_index_id(), btr_page_set_level(), btr_page_set_next(), btr_page_set_prev(): Pass mtr to page_zip_write_header(). row_upd_rec_sys_fields(): Pass mtr=NULL to page_zip_write_trx_id() and page_zip_write_roll_ptr(), since the write will be logged at a higher level. page_zip_write_header(): Add parameter mtr. page_zip_write_header_log(): New function. Remove rec_set_nth_field_extern_bit(). Make rec_set_nth_field_extern_bit_old() static. Rename rec_set_nth_field_extern_bit_new() to rec_set_field_extern_bits_new() and make it static. row_ins_index_entry_low(): Remove bogus TODO comment.
-
- 21 Feb, 2006 3 commits
-
-
marko authored
dict_mem_table_create(): Initialize table->zip. btr0cur.c: Distinguish compressed BLOBs based on page_zip or table->zip.
-
marko authored
Fix the way how btr_free_externally_stored_field() is called in purge. btr_free_externally_stored_field(): Add parameter field_ref that points directly to the BLOB reference. Use rec, offsets, page_zip, and i only for the page_zip_write_blob_ptr() call. row_purge_upd_exist_or_extern(): Do not assume that the undo log contains the entire record. Only pass the BLOB reference to btr_free_externally_stored_field().
-
marko authored
btr_cur_pessimistic_insert(): Pass the "extern storage" flags to btr_root_raise_and_insert() or btr_page_split_and_insert(). btr_copy_externally_stored_field(): Include local_len in the returned length.
-
- 17 Feb, 2006 3 commits
-
-
marko authored
-
marko authored
btr_cur_optimistic_insert(): Replace page_cur_insert_rec_low() with page_cur_tuple_insert(). btr_cur_pessimistic_update(): Add the columns of big_rec_vec to ext_vect, so that the "extern storage" bits will be set correctly in btr_cur_insert_if_possible().
-
marko authored
-
- 16 Feb, 2006 2 commits
-
-
marko authored
-
marko authored
This has not been extensively tested yet, because some other part of the code breaks in "ibtestblob". btr_free_page_low(): Add parameters "space" and "page_no", because they are omitted from compressed BLOB pages. btr0cur.c: Implement the compression and decompression of BLOB columns, enabled at compile-time (#define ZIP_BLOB TRUE) for now. btr_rec_free_externally_stored_fields(), btr_copy_externally_stored_field(): Made static mlog_log_string(): New function, split from mlog_write_string(), allows to avoid a dummy memcpy() of compressed BLOB pages.
-
- 13 Feb, 2006 1 commit
-
-
marko authored
flag of records. The flags may only be updated in heap-allocated copies of records. btr_root_raise_and_insert(), btr_page_split_and_insert(), btr_cur_insert_if_possible(), btr_cur_optimistic_insert(), btr_cur_pessimistic_insert(), page_cur_tuple_insert(), page_cur_insert_rec_low(): Add parameters "ext" and "n_ext". dtuple_convert_big_rec(): Make parameter "ext" const.
-
- 10 Feb, 2006 1 commit
-
-
marko authored
BLOB pointers, trx_id, and roll_ptr. btr_empty(), btr_create(), page_create(): Add parameter "index", as some index information will be encoded on the compressed page. Define REC_NODE_PTR_SIZE as 4. Allow btr_page_reorganize() and btr_page_reorganize_low() to fail. Define the error code DB_ZIP_OVERFLOW. Make row_ins_index_entry_low() static. page0zip: Encode the index, log reorganized records, and store uncompressed fields separately from the compressed data stream.
-
- 03 Feb, 2006 1 commit
-
-
marko authored
that will require complete index information. dict_create_index_step(): invoke dict_index_add_to_cache() before btr_create() dict_index_remove_from_cache(): make public dict_index_get_if_in_cache_low(): new function, for holding dict_sys->mutex buf_flush_init_for_writing(): remove the temporary hook to page_zip_compress() page_create(): add temporary hook to page_zip_compress()
-
- 30 Nov, 2005 3 commits
-
-
marko authored
buf_flush_init_for_writing(): The reported dense page directory size was 4 bytes too much. Subtract 2 (infimum and supremum) from n_heap. page_zip_decompress(): When decompressing the last user record, only set heap_no and the status bits if there is data to decode, i.e., there are user records on the page.
-
marko authored
buf_flush_init_for_writing(): Improve the diagnostics and make the condition for skipping pages accurate. univ.i: Introduce UNIV_ZIP_DEBUG for enabling some page_zip_validate() tests. page0zip.h, page0zip.c: Define and use page_zip_validate() in page_zip_compress() and page_zip_write() if UNIV_ZIP_DEBUG or UNIV_DEBUG is defined.
-
marko authored
-
- 29 Nov, 2005 1 commit
-
-
marko authored
-