- 20 Sep, 2006 4 commits
-
-
marko authored
for more accurate Valgrind debugging. univ.i: Introduce UNIV_DEBUG_VALGRIND, UNIV_MEM_VALID, and UNIV_MEM_INVALID. buf_LRU_block_free_non_file_page(): Invalidate the buffer frame with UNIV_MEM_INVALID(). buf_LRU_get_free_block(): Declare the buffer frame valid with UNIV_MEM_VALID(). Other memory is allocated and deallocated via malloc() and free(), which are already overridden by Valgrind. Without the added instrumentation, accesses to free pages in the buffer pool cannot be caught. The diagnostics could probably be improved further by declaring all non-latched buffer frames invalid.
-
marko authored
rec_convert_dtuple_to_rec_old(): Initialize the record in order to avoid bogus Valgrind warnings about the ut_ad() in mach_write_to_1() and mach_write_to_2(). page_zip_compress(), page_zip_write_rec(), page_zip_write_blob_ptr(): Replace ut_ad(page_validate(...)) with ut_ad(page_simple_validate_new(...)), because otherwise crash recovery would fail.
-
marko authored
Make page_zip->data point to an address different from page, to avoid calling memcpy() with overlapping source and destination.
-
marko authored
Identify DB_TRX_ID and DB_ROLL_PTR in the index.
-
- 19 Sep, 2006 2 commits
-
-
marko authored
on the ZIP_DUMMY index. Because it does not contain valid collation information, the ordering check in page_validate() may fail on pages containing non-binary data. Instead, let the callers of page_zip_decompress() invoke page_validate() when the index information is available.
-
marko authored
-
- 12 Sep, 2006 1 commit
-
-
marko authored
-
- 06 Sep, 2006 2 commits
- 05 Sep, 2006 3 commits
- 04 Sep, 2006 2 commits
- 31 Aug, 2006 2 commits
-
-
marko authored
of externally stored columns to 108 bytes when possible. This will unmask a bug in the handling of BLOBs on compressed tablespaces, especially of small page sizes. Apparently, the locally stored part must be less than 235 bytes in size for the bug to occur. dict_col_struct: Add field min_prefix. dict_index_build_internal_non_clust(): Adjust min_prefix.
-
marko authored
dtuple_convert_big_rec(). This should never happen, though.
-
- 29 Aug, 2006 2 commits
- 22 Aug, 2006 1 commit
-
-
marko authored
old value of PAGE_N_RECS. page_zip_dir_find_free_low(): Rename to page_zip_dir_find_low(). page_zip_dir_find(): Make use of page_zip_dir_find_low().
-
- 21 Aug, 2006 6 commits
-
-
marko authored
of non-clustered indexes. On these pages, only the bytes rec[-5..-1] will be omitted from the compressed data stream. Save time by not looking for trx_id or externally stored columns.
-
marko authored
externally stored columns. Make some use of the fact in compression and decompression. rec_init_offsets(): Add ut_ad(dict_index_is_clust(index)) before flagging external columns. page_zip_get_trailer_len(): Assert ut_ad(!page_zip->n_blobs) unless dict_index_is_clust(index). page_zip_get_n_prev_extern(): Add ut_ad(dict_index_is_clust(index)). page_zip_compress(), page_zip_decompress_low(): Add dict_index_is_clust() assertions. Allow completely external storage of columns. Simplify the computation of "externs". page_zip_write_rec(): Store leaf node records of non-clustered indexes with one memcpy(), avoiding rec_offs_n_extern() and the for loop. page_zip_write_blob_ptr(): Add ut_ad(dict_index_is_clust(index)). Simplify the computation of "externs". page_zip_clear_rec(): Only attempt to zero out BLOB pointers when the record belongs to a leaf page of a clustered index. page_zip_dir_delete(): Take a fast path when the record is not on a leaf page of a clustered index. Simplify the computation of "externs". page_zip_copy(): Assert that n_blobs is zero on anything else than leaf pages of clustered indexes.
-
marko authored
if and only if the records on the page contain a trx_id column. (Dummy indexes of non-leaf pages will always show up as non-clustered.)
-
marko authored
-
marko authored
referencing it, to prevent a ut_ad() assertion on page_zip_get_trailer_len() from failing. Promote that assertion to ut_a().
-
marko authored
of secondary indexes. (This is just an optimization; the logic in the search loop would never store such records externally.)
-
- 18 Aug, 2006 3 commits
-
-
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.
-
marko authored
data0data.c: Add #include "page0zip.h" that was forgotten from r739. page_cur_insert_rec_low(): Remove a memory leak when preventing extra_size to grow.
-
marko authored
-
- 17 Aug, 2006 3 commits
-
-
marko authored
the record will fit on an empty compressed page. buf_block_alloc(), buf_block_free(), buf_frame_alloc(), buf_frame_free(): Make inlined.
-
marko authored
according to InnoDB formatting rules.
-
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.
-
- 16 Aug, 2006 1 commit
-
-
marko authored
struct mtr_struct: Omit unused field "state" unless #ifdef UNIV_DEBUG. buf_block_buf_fix_inc_debug(): Remove redundant __attribute__((unused)) and #ifdef UNIV_SYNC_DEBUG.
-
- 15 Aug, 2006 5 commits
- 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
-
- 11 Aug, 2006 1 commit
-
-
marko authored
-
- 10 Aug, 2006 1 commit
-
-
marko authored
"old_end" with "ret". Otherwise, a page_zip_reorganize() would make lock_move_rec_list_start() fail.
-