An error occurred fetching the project authors.
- 09 Nov, 2007 1 commit
-
-
marko authored
not work in GCC 3.3. It was useful during the development of zip compression, when some placeholder code ignored the return values of some functions.
-
- 12 Oct, 2007 1 commit
-
-
marko authored
-
- 16 May, 2007 1 commit
-
-
marko authored
the insert buffer bitmap. ibuf_set_free_bits_func(): Never disable redo logging. ibuf_update_free_bits_zip(): Remove. btr_page_reorganize_low(), page_zip_reorganize(): Do not update the insert buffer bitmap. Instead, document that callers will have to take care of it, and adapt the callers. btr_compress(): On error, reset the insert buffer free bits. btr_cur_insert_if_possible(): Do not modify the insert buffer bitmap. btr_compress(), btr_cur_optimistic_insert(): On compressed pages, reset the insert buffer bitmap. Document why. btr_cur_update_alloc_zip(): Document why it is necessary and sufficient to reset the insert buffer free bits. btr_cur_update_in_place(), btr_cur_optimistic_update(), btr_cur_pessimistic_update(): Update the free bits in the same mini-transaction. Document that the mini-transaction must be committed before latching any further pages. Verify that this is the case in all execution paths. row_ins_sec_index_entry_by_modify(), row_ins_clust_index_entry_by_modify(), row_undo_mod_clust_low(): Because these functions call btr_cur_update_in_place(), btr_cur_optimistic_update(), or btr_cur_pessimistic_update(), document that the mini-transaction must be committed before latching any further pages. Verify that this is the case in all execution paths.
-
- 26 Feb, 2007 1 commit
-
-
marko authored
a page during update-in-place. page_zip_alloc(): Rename to btr_cur_update_alloc_zip(). Invoke ibuf_update_free_bits_if_full().
-
- 19 Feb, 2007 2 commits
-
-
marko authored
page_zip_max_ins_size(): New function. btr_cur_optimistic_insert(), btr_cur_optimistic_delete(), btr_page_split_and_insert(), btr_compress(): Do not update the ibuf free bits for non-leaf pages or pages belonging to a clustered index. The insert buffer only covers operations on leaf pages of secondary indexes. For pages covered by the insert buffer, limit the max_ins_size to page_zip_max_ins_size(). buf_page_get_gen(): Merge the insert buffer after decompressing the page. buf_page_io_complete(): Relax the assertion about ibuf_count. For compressed-only pages, the insert buffer merge takes place in buf_page_get_gen(). ibuf_index_page_calc_free_bits(), ibuf_index_page_calc_free_from_bits(), ibuf_index_page_calc_free(), ibuf_update_free_bits_if_full(), ibuf_update_free_bits_low(), ibuf_update_free_bits_for_two_pages_low(), ibuf_set_free_bits_low(): Add the parameter zip_size. Limit the maximum insert size to page_zip_max_ins_size().
-
marko authored
Replace the parameter "dict_index_t* index" with "ibool is_clust". dict_index_is_clust(): Add __attribute__((pure)).
-
- 29 Jan, 2007 1 commit
-
-
marko authored
page_zip_set_alloc(): New function, to configure zlib to use a memory heap. btr_store_big_rec_extern_fields(): Reduce memLevel, so that a heap of 256 kilobytes will suffice. Use page_zip_set_alloc(). btr_copy_externally_stored_field_prefix_low(): Use page_zip_set_alloc(). page_zip_compress(), page_zip_decompress(): Use page_zip_set_alloc().
-
- 30 Nov, 2006 1 commit
-
-
marko authored
Add m_nonempty for facilitating the test in page_zip_alloc(). This reduces the combined size of the bit-fields to 32 bits. Thus, sizeof(page_zip_des_t) == 2 machine words on 32-bit and wider systems.
-
- 27 Nov, 2006 2 commits
- 24 Nov, 2006 1 commit
-
-
marko authored
and uncompressed buffer pool pages. buf_block_t: Replace page_zip, space, and offset with buf_page_t page. Replace some integers with bit-fields. enum buf_block_state: Rename to buf_page_state. Add BUF_BLOCK_ZIP_PAGE. page_zip_des_t: Add the field "state". Make the integer fields bit-fields. page_zip_copy(): Document which fields are copied.
-
- 18 Oct, 2006 1 commit
-
-
marko authored
Replace page_t* or page_zip_des_t* parameters in some functions with buf_block_t*. buf_frame_get_page_zip(): Disable unless #ifdef UNIV_DEBUG || UNIV_ZIP_DEBUG. btr_cur_t: Add buf_block_t* page_block. btr_pcur_get_block(), btr_cur_get_block(), btr_cur_get_page_zip(): New functions. btr_cur_position(): Add the parameter block.
-
- 20 Sep, 2006 1 commit
-
-
marko authored
guaranteed free space available for inserting one record. btr_page_get_sure_split_rec(), btr_cur_pessimistic_insert(): Use page_zip_empty_size(). btr_page_split_and_insert(): Relax a debug assertion that there should be at least two user records on the page. On compressed pages, we may be able to write only one record.
-
- 21 Aug, 2006 1 commit
-
-
marko authored
-
- 18 Aug, 2006 1 commit
-
-
marko authored
with page_zip_dir_insert(). Pass page_zip to rec_set_n_owned_new() and page_dir_slot_set_n_owned(). page_zip_dir_insert(): New function. Shift the dense page directory and write the inserted record there.
-
- 17 Aug, 2006 1 commit
-
-
marko authored
record will fit or need external storage. btr_page_get_sure_split_rec(): Estimate the free space of an empty compressed page. page_zip_rec_needs_ext(): New function, to replace existing tests whether external storage is needed.
-
- 14 Aug, 2006 1 commit
-
-
marko authored
page0page.h: Add #include "page0zip.h" page_dir_slot_get_rec(): Avoid void* arithmetics. trx0undo.ic, trx0sys.ic: Remove unnecessary #include "page0zip.h" page_zip_write_header(): Move prototype from page0types.h to page0zip.h
-
- 03 Jul, 2006 1 commit
-
-
marko authored
with page_zip_available() in order to avoid an extra page_zip_compress(). page_zip_available(): Make the function public. page0zip.ic: Sort the inline function declarations in order to avoid forward references, which do not work on some compilers.
-
- 20 Jun, 2006 1 commit
-
-
marko authored
Replace most occurrences of #if defined UNIV_DEBUG || defined UNIV_ZIP_DEBUG with #ifdef UNIV_ZIP_DEBUG.
-
- 19 Jun, 2006 1 commit
-
-
marko authored
-
- 16 May, 2006 2 commits
-
-
marko authored
page_zip_compress_write_log(): Make static. page_zip_compress(): Add optional parameter mtr for redo logging. page_zip_reorganize(): Low-level counterpart of btr_page_reorganize(). page_zip_copy(): Add debug assertions about mtr_memo_contains. page_cur_insert_rec_low(): Try page_zip_reorganize() and seek to the new position of insert_rec if it succeeds. page_copy_rec_list_end(), page_copy_rec_list_start(): Try page_zip_reorganize(). page_move_rec_list_end(): Remove bogus comment.
-
marko authored
page_zip_copy(), page_zip_compress_write_log(): Add parameter 'index'. page_zip_parse_write_header(): Check for !page_zip only if page != NULL. page_zip_compress_write_log(), page_zip_parse_compress(): Omit some fields in the page header. Omit the unused bytes between the modification log and the page trailer. parse_or_apply_log_rec_body(): Remove a bogus debug assertion.
-
- 11 May, 2006 1 commit
-
-
marko authored
btr_validate_level(): Add missing parameter to added buf_page_print() calls. btr_root_raise_and_insert(): Replace low-level code with page_zip_copy(). page_zip_copy(): New function to copy the data payload of a compressed page, byte for byte. The file page header and trailer are not copied, to avoid overwriting the fields FIL_PAGE_OFFSET, FIL_PAGE_PREV and FIL_PAGE_NEXT.
-
- 02 May, 2006 1 commit
-
-
marko authored
buf_page_print(): Print also compressed pages. Add parameter zip_size. buf_flush_init_for_writing(): Stamp the fields on a compressed B-tree index page. Add the header field FIL_PAGE_ZBLOB_SPACE_ID as an alias of FIL_PAGE_PREV. page_zip_calc_checksum(): New function. page_zip_compress(): Avoid copying the fields that are written in buf_flush_init_for_writing(). page_zip_header_cmp(): New function for comparing those fields of the page header that will not be written in buf_flush_init_for_writing().
-
- 11 Apr, 2006 2 commits
-
-
marko authored
page_zip_alloc(): Add parameter "mtr" and log successful calls to page_zip_compress(). page_zip_write_blob_ptr(), page_zip_write_node_ptr(): Write the offset on the uncompressed page, because mlog_write_initial_log_record_fast() does not do so. page_zip_write_header_log(), page_zip_parse_write_header(): Encode the offset in one byte.
-
marko authored
MLOG_ZIP_LIST_START_COPY and MLOG_ZIP_LIST_END_COPY. btr_compress(): Simplify a debug assertion. page_zip_compress_write_log(), page_zip_parse_compress(): New functions. page_cur_parse_insert_rec(): Simplify the code. page_parse_create_zip(): Removed. page_create_zip(), page_copy_rec_list_end(), page_copy_rec_list_start(): Invoke page_zip_compress_write_log().
-
- 10 Apr, 2006 1 commit
-
-
marko authored
MLOG_ZIP_COMPRESS and MLOG_ZIP_DECOMPRESS with higher-level entry types. Implement the logging and crash recovery of MLOG_ZIP_PAGE_CREATE. page_create_zip(): New function for creating a compressed B-tree page. page_parse_create_zip(): New function for applying a MLOG_ZIP_PAGE_CREATE redo log record. btr_page_create(): Remove the prototype. Add parameters page_zip, level, prev, and next. btr0btr.c: Eliminate page_zip_compress() calls where possible. page_zip_alloc(), page_zip_compress(), page_zip_decompress(), page_zip_clear_rec(): Remove parameter mtr. recv_parse_or_apply_log_rec_body(): Handle MLOG_ZIP_PAGE_CREATE. Add TODO comments for the other added redo log entry types.
-
- 07 Apr, 2006 3 commits
-
-
marko authored
page_zip_parse_write_blob_ptr(): New function for applying the redo log record MLOG_ZIP_WRITE_BLOB_PTR. page_zip_write_blob_ptr(): Write the necessary information to the redo log. page0zip.c: Tighten the assertions to ensure that blob_ptr < page_zip->n_blobs. page_zip_write_node_ptr(): Use memcpy() instead of mach_write_to_4().
-
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.
-
- 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.
-
- 17 Mar, 2006 1 commit
-
-
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 1 commit
-
-
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.
-
- 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 1 commit
-
-
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().
-
- 09 Mar, 2006 1 commit
-
-
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.
-
- 08 Mar, 2006 1 commit
-
-
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().
-
- 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().
-
- 01 Mar, 2006 2 commits