- 09 Mar, 2006 1 commit
-
-
marko authored
page_dir_split_slot(): Do not pass page_zip to page_dir_slot_set_n_owned(), because the caller will rewrite the dense page directory later. At this point of execution, the dense directory will not contain the newly inserted record, which may end up being written to new_slot.
-
- 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
-