- 07 Apr, 2006 2 commits
-
-
marko authored
page_zip_parse_write_header(): New function for applying the redo log of MLOG_ZIP_WRITE_HEADER. page_zip_parse_write_node_ptr(): Mark the log corrupted if !page_zip.
-
marko authored
page_zip_parse_write_node_ptr(): New function to apply a redo log of MLOG_ZIP_WRITE_NODE_PTR. page_zip_write_node_ptr(): Write all needed information to the redo log. page_zip_write_header_log(): Write all necessary information to the redo log.
-
- 05 Apr, 2006 1 commit
-
-
marko authored
dict_mem_table_create(): Account for DICT_TF_COMPRESSED in a debug assertion. btr_store_big_rec_extern_fields(), btr_free_externally_stored_field(), btr_copy_externally_stored_field(): Implement the disk format for compressed BLOB pages. btr_copy_externally_stored_field(): Improve error reporting and handling when decompressing BLOB pages. buf_flush_init_for_writing(), buf_page_is_corrupted(), buf_page_print(): Account for compressed BLOB pages (FIL_PAGE_TYPE_ZBLOB). buf_calc_zblob_page_checksum(): New function.
-
- 04 Apr, 2006 1 commit
-
-
marko authored
Replace btr_page_get_level() with page_is_leaf() where possible. row_purge_upd_exist_or_extern(): Remove obsolete TODO comment. dtuple_convert_big_rec(): Replace a flag variable with goto.
-
- 03 Apr, 2006 3 commits
-
-
marko authored
btr_store_big_rec_extern_fields(): Assert that page_zip is non-NULL if and only if dict_table_is_zip() holds. btr_free_externally_stored_field(): Observe dict_table_is_zip(). Allow page_zip==NULL even if dict_table_is_zip(). Remove the related TODO comment in row_purge_upd_exist_or_extern(). page_zip_available(): uncompressed_size already includes PAGE_ZIP_DIR_SLOT_SIZE. page_zip_decompress(): Remove bogus assertion d_stream.next_out == last. Do not subtract BTR_EXTERN_FIELD_REF_SIZE from d_stream.avail_in when decompressing records, because the records may be deleted later in page_zip_apply_log(), and no BLOB pointers are allocated for deleted records.
-
marko authored
row_purge_upd_exist_or_extern().
-
marko authored
btr_page_split_and_insert(): Avoid dereferencing pointers to garbage on the old page. btr_cur_pessimistic_insert(): Pass pointer to big_rec_vec to btr_cur_optimistic_insert(). trx_undo_prev_version_build(): Only invoke rec_set_field_extern_bits() if n_ext_vect > 0. row_ins_index_entry_low(): Simplify a debug assertion. page_copy_rec_list_end_no_locks(): Make the loop slightly more readable. page_delete_rec_list_end(): Delete records on compressed pages one by one.
-
- 30 Mar, 2006 1 commit
-
-
marko authored
page_zip_get_n_prev_extern(): Ignore deleted records. page_zip_write_rec(): Remove bogus debug assertion about the BLOB pointer being zero-filled. It would fail when reallocating records from the page heap or when updating records in place.
-
- 29 Mar, 2006 1 commit
-
-
marko authored
copy BLOB pointers. page_zip_dir_find_free_low(): New function, split from page_zip_dir_find_free(). Add comments about processing the records in heap_no order. Fix some typographic errors in comments and improve formatting. page_zip_decompress(): Initialize (clear) the BLOB pointers in deleted records. page_zip_clear_rec(): Relocate page_zip_validate() assertions, so that they will not fail if a record containing BLOB pointers is being deleted. Note that page_zip_validate() will fail if page_zip_clear_rec() is unable to clear the record.
-
- 28 Mar, 2006 1 commit
-
-
marko authored
page_zip_decompress(): Pass size = d_stream.avail_in + 1 to page_zip_apply_log(), since the terminating NUL byte is not included in the space reserved for the compressed data stream. page_zip_clear_rec(): Clear also node pointer fields.
-
- 27 Mar, 2006 2 commits
- 23 Mar, 2006 1 commit
-
-
marko authored
page_delete_rec_list_end(): Do not invoke page_zip_clear_rec(). page_zip_clear_rec(): Remove the global declaration. Add an assertion that the record must be on the free list. Copy onl rec_offs_data_size() bytes before attempting to clear the record and to compress the page. page_zip_compress(), page_zip_write_rec(): Remove debug assertions that trx_id, roll_ptr and node_ptr of deleted records be zero-filled.
-
- 22 Mar, 2006 3 commits
-
-
marko authored
page_zip_write_rec(): Allow the record to be delete-marked.
-
marko authored
page_zip_write_trx_id_and_roll_ptr(): Write roll_ptr after trx_id, not over it.
-
marko authored
page_cur_search_with_match(): Add a page_zip_validate() debug assertion. page_validate(): Add a missing space to a fprintf() format string.
-
- 20 Mar, 2006 2 commits
-
-
marko authored
page_zip_compress(): Add a debug check that the trx_id and roll_ptr columns of deleted records are zero-filled. This should provide some detection against misdirected writes. page_zip_decompress(): Correct typos in comments.
-
marko authored
btr_page_get_father_for_rec(): Remove redundant assertion. Add UNIV_UNLIKELY to an assertion-like test. btr_validate_level(): Add debug assertions on page_zip_validate(). page_zip_compress(): Remove bogus assertion. page_zip_write_rec(): Assert that the record written is neither delete-marked nor deleted.
-
- 17 Mar, 2006 2 commits
-
-
marko authored
page_zip_compress(): Assert that trx_id and roll_ptr are zero for deleted records. page_zip_clear_rec(): Remove comment about need for redo logging. This operationg is already logged on a higher level. page_delete_rec_list_end(): Always invoke page_zip_clear_rec() on compressed pages.
-
marko authored
Restore page_zip_clear_rec() to the global scope. Invoke it in page_delete_rec_list_end(). Add debug assertions to page0zip.c to guard against overwriting data on the compressed page.
-
- 16 Mar, 2006 2 commits
-
-
marko authored
operations on BLOB columns. There are some bugs in the code, because test-insert and a few other tests fail. page_mem_free(): Add parameter index. Decrement PAGE_N_RECS here. Move some operations to page_zip_dir_delete(). page_zip_clear_rec(): Make this a static function. page_zip_dir_delete(): Add parameters index and offsets. Decrement PAGE_N_RECS and clear info_bits and n_owned. page_zip_get_n_prev_extern(): Correct the synopsis and the algorithm. Add parameter page_zip. Search the records in heap_no order instead of collation order. page_zip_compress(), page_zip_decompress(): Only copy BLOB pointers and increment n_blobs for records that have not been deleted. page_zip_clear_rec(): Clear trx_id and roll_ptr on the compressed page. page_zip_dir_delete(): Decrement PAGE_N_RECS. Shift the array of BLOB pointers. Call page_zip_clear_rec(). page_zip_dir_add_slot(): Shift the array of BLOB pointers to make space of roll_ptr and trx_id. page_cur_delete_rec(): Do not decrement PAGE_N_RECS or call page_zip_clear_rec(), as page_mem_free() already does it.
-
marko authored
trx-undo_prev_version_build(): Pass offsets==NULL to rec_set_field_extern_bits(). rec_set_field_extern_bits(), rec_set_field_extern_bits_new(): Accept offsets==NULL. row_upd_rec_in_place(): Remove the bogus comment that the function would only be invoked on a clustered index. Remove the related debug assertion.
-
- 14 Mar, 2006 1 commit
-
-
marko authored
page_zip_dir_delete() will need to handle BLOBs. rec_set_field_extern_bits(), rec_set_field_extern_bits_new(): Add parameter offsets. rec_offs_set_nth_extern(): New function to set an extern bit in offsets. This will be called when an extern bit is set in a record. page_cur_rec_insert(), page_cur_insert_rec_low(): Document that the parameter "offsets" is in/out. page_zip_dir_delete(): Note that the array of BLOB pointers will need to be shifted. page0zip.ic: Document the entry type for clearing a record. page_zip_available(): Add parameter "index". Remove parameters "is_leaf" and "is_clustered". page_zip_get_trailer_len(): New function for computing the trailer length of the compressed page. page_zip_apply_log(): Implement the modification log entry type for clearing the data bytes of a record. page_zip_decompress(): Initialize n_blobs when actually copying the BLOB pointers to place. page_zip_validate(): Add diagnostic messages for failures. Check also m_start, m_end, and n_blobs. page_zip_write_blob_ptr(): Add page_zip_validate() assertion.
-
- 13 Mar, 2006 2 commits
-
-
marko authored
There are still some bugs in the code. btr_store_big_rec_extern_fields(): Remove assertion on dict_table_is_zip() to ease testing. btr_free_externally_stored_field(): Test page_zip instead of dict_table_is_zip(). page_zip_write_rec(): Add parameter "create". Try to handle externally stored columns. rec_offs_any_extern(): Correct the function comment. Add rec_offs_n_extern() and page_zip_get_n_prev_extern(). page_zip_dir_decode(): Replace assertion with if (...) return(FALSE). page_zip_decompress(): Do not clear page_zip->n_blobs after counting the BLOBs. page_zip_write_blob_ptr(): Use page_zip_get_n_prev_extern(). Correct an off-by-one error in memcpy().
-
marko authored
btr_cur_pessimistic_update(): Remove extraneous page_zip_write_rec() call. btr_cur_set_ownership_of_extern_field(): Simplify the logic. row_upd_rec_in_place(): Make use of parameter "index" in debug assertions. page_zip_write_rec(): Remove TODO comment about redo log record. The write will already be covered by higher-level log entries.
-
- 10 Mar, 2006 3 commits
-
-
marko authored
-
marko authored
buf_block_align(btr_cur_get_rec()).
-
marko authored
btr_compress(): Pass the correct page_zip to btr_node_ptr_set_child_page_no(). page_mem_free(): Remove parameter mtr. Do not call page_zip_clear_rec() here. page_cur_delete_rec(): Call page_zip_clear_rec() here. Decrement PAGE_N_RECS only after calling page_mem_free(). Assert page_zip_validate().
-
- 09 Mar, 2006 3 commits
-
-
marko authored
of clustered indexes. Previously, parts of the code assumed that these columns would exist on all leaf pages. Simplify the update-in-place of these columns. Add inline function dict_index_is_clust() to replace all tests index->type & DICT_CLUSTERED. Remove the redo log entry types MLOG_ZIP_WRITE_TRX_ID and MLOG_ZIP_WRITE_ROLL_PTR, because the modifications to these columns are covered by logical logging. Fuse page_zip_write_trx_id() and page_zip_write_roll_ptr() into page_zip_write_trx_id_and_roll_ptr(). page_zip_dir_add_slot(), page_zip_available(): Add flag "is_clustered", so that no space will be reserved for TRX_ID and ROLL_PTR on leaf pages of secondary indexes. page_zip_apply_log(): Flag an error when val==0 is encoded with two bytes. page_zip_write_rec(): Add debug assertions that there is enough space available for the entry before copying the data bytes of the record.
-
marko authored
btr_cur_update_in_place(): Remove the page_zip_write_rec() call, because row_upd_rec_in_place() already calls it.
-
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 3 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
-