Commit graph

472 commits

Author SHA1 Message Date
marko
d266262af6 branches/zip: Prepare for buffer pool allocation in several chunks.
buf_pool_t: Remove n_frames, max_size, and blocks_of_frames.
The current buffer pool size is in curr_size.

buf_pool_init(): Remove parameter max_size.

buf_pool_get_max_size(), buf_pool_is_block(): Remove.

buf_block_align(): Do not assume that the buffer pool is allocated
in one chunk.  Replace dependency on buf_pool->blocks_of_frames
with a call to buf_page_hash_get().
2006-10-30 15:15:19 +00:00
marko
89bacf3402 branches/zip: Remove support for AWE (Intel PAE on Win32).
Removal of the variable innobase_buffer_pool_awe_mem_mb requires
coordination with MySQL AB.
2006-10-30 13:48:08 +00:00
marko
d9e1e326cb branches/zip: Port r973 from trunk.
Do not break the latching order in TRUNCATE TABLE.

dict_truncate_index_tree(): Replace parameter rec_t* rec with
btr_pcur_t* pcur.  Reposition pcur before calling btr_create().

sync_thread_add_level(): Remove the relaxation of the assertion added in r968.
2006-10-30 13:44:00 +00:00
marko
8bcc62c681 branches/zip: Enclose some debug code in #ifdef UNIV_SYNC_DEBUG.
The code was previously unused in non-debug builds.
2006-10-30 09:25:08 +00:00
marko
5c2bb5e94b branches/zip: Minor cleanup.
btr_pcur_restore_position(): Add const qualifiers.

buf_LRU_block_remove_hashed_page(): Reduce the amount
of buf_page_hash_get() calls and add a UNIV_UNLIKELY hint
to an assertion-like test.
2006-10-30 09:19:41 +00:00
marko
3356f069e5 branches/zip: Merge revisions 962:968 from trunk. 2006-10-30 09:11:31 +00:00
marko
d288c0fa0e branches/zip: dict_load_table(): Note that dict_sys_tables_get_zip_size()
returns the compressed page size in kilobytes, not bytes.
2006-10-27 13:12:47 +00:00
marko
65e4391f60 branches/zip: lock0lock.c: Add const qualifiers to and assertions
about block->frame matching rec.
2006-10-26 13:05:45 +00:00
marko
3a3d4469a4 branches/zip: row_ins_foreign_check_on_constraint(),
row_ins_check_foreign_constraint(): Pass the correct block to
the lock_ functions.
2006-10-26 13:04:49 +00:00
marko
8d0fdc1374 branches/zip: row0ins.c: Add const qualifiers to function parameters. 2006-10-26 13:03:43 +00:00
marko
39c04dac8e branches/zip: Merge revisions 934:962 from trunk. 2006-10-26 11:56:51 +00:00
marko
5b5fdba867 branches/zip: btr_lift_page_up(): Omit father_block from blocks[],
because the level of that page needs to be adjusted separately.
2006-10-26 11:13:59 +00:00
marko
6ee593b116 branches/zip: Add const qualifiers to read-only pointers.
rec_get_nth_field_offs_old(): Split from rec_get_nth_field_old().

rec_get_nth_field_old(): Reimplement as a constness-preserving macro.

dict_drop_index_tree(), dict_truncate_index_tree(): Note that rec is
an in/out parameter, as the B-tree root page number will be updated.
2006-10-26 08:52:14 +00:00
marko
92f2a6801f branches/zip: btr_store_big_rec_extern_fields(): Replace
page_get_page_no(page_align(field_ref)) calls with a local variable
rec_page_no = buf_block_get_page_no(rec_block).
2006-10-26 08:47:00 +00:00
marko
954237c01d branches/zip: btr_compress(): Enclose an assertion inside
#ifdef UNIV_BTR_DEBUG, as it depends on other #ifdef UNIV_BTR_DEBUG code.
2006-10-26 08:04:16 +00:00
marko
53fec05c38 branches/zip: After merge (r956) fix:
Implement dict_index_get_if_in_cache_low() correctly.
Restore the function dict_index_get_if_in_cache() #ifdef UNIV_DEBUG.
2006-10-26 07:50:51 +00:00
marko
8df8b91977 branches/zip: Merge revisions 887:934 from trunk. 2006-10-25 11:19:12 +00:00
marko
bb6ea0c07b branches/zip: Clean up things found in an inlined build.
buf0lru.c: Always #include "srv0srv.h"

buf_block_get_lock_mutex(), buf_frame_get_lock_mutex(): Remove.

mtr0log.ic: Remove #include "page0page.h" and replace the page_
functions with lower-level ones to break an #include cycle.

dict0dict.ic: Remove unnecessary #include "trx0undo.h" and "trx0sys.h"
that would create an #include cycle.
2006-10-25 11:03:27 +00:00
marko
0d6c2414a7 branches/zip: Remove a few buf_block_align() calls from debug builds.
btr_check_node_ptr(): Replace page_t* parameter with buf_block_t*.

btr_free_externally_stored_field(): Add const qualifier to rec.
Remove an explicit buf_block_align() call, but replace an
mtr_memo_contains() with mtr_memo_contains_page().

row_upd_rec_sys_fields(): Reorder an assertion containing buf_block_align()
so that the costly call can be avoided in some cases.
2006-10-25 08:52:43 +00:00
marko
0885123806 branches/zip: page_cur_insert_rec_low(): Replace rec_t* current_rec
with rec_t** current_rec.  Reposition *current_rec after calling
page_zip_reorganize().
2006-10-25 08:45:25 +00:00
marko
c1ffbbd90f branches/zip: Remove all references to buf_block_align() except those
from the adaptive hash index [btr_search_guess_on_hash() and
btr_search_validate()].  Some references to buf_block_align() remain
in debug builds.

btr_store_big_rec_extern_fields(): Add the parameter rec_block.

page_rec_get_next_low(): Do not assume that the page has been
allocated from the buffer pool when printing the diagnostic information.

page_cur_insert_rec_low(): Replace the parameter page_zip_des_t* page_zip
with the parameter buf_block_t* block.
2006-10-24 14:06:31 +00:00
marko
833c454328 branches/zip: lock_update_discard(): Fix a bug introduced in r949:
Compare heap_no against PAGE_HEAP_NO_SUPREMUM instead of
PAGE_NEW_SUPREMUM or PAGE_OLD_SUPREMUM.
2006-10-24 11:54:01 +00:00
marko
952775dcc7 branches/zip: mem_heap_create_block(): Correct an error introduced in r909:
Return NULL when trying to use heap->free_block that is NULL.
2006-10-24 11:03:46 +00:00
marko
438cb8a6c1 branches/zip: Remove all buf_block_align() calls from lock0lock.c.
Replace all page_t* parameters with buf_block_t*, and replace many
rec_t* parameters with heap_no.  This eliminates also many
rec_get_heap_no() calls, which became more expensive with the
introduction of ROW_FORMAT=COMPACT in MySQL/InnoDB 5.0.3.

page_rec_get_heap_no(), lock_get_min_heap_no(): New functions.
2006-10-24 06:45:52 +00:00
marko
483a57089e branches/zip: buf_page_get_release_on_io(), buf_page_get_gen():
Replace buf_frame_t* guess with buf_block_t* guess in order to avoid
a buf_block_align() call.

trx_undo_t: Replace page_t* guess_page with buf_block_t* guess_block.

btr_search_t: Replace page_t* root_guess with buf_block_t* root_guess.
2006-10-23 19:34:45 +00:00
marko
22015f3949 branches/zip: Minor cleanup.
buf_calc_page_new_checksum(), buf_calc_page_old_checksum(),
buf_page_is_corrupted(), buf_page_print():
Add const qualifier to byte* parameter.

page_parse_create_zip(): Remove this declaration of non-existing function.

page_rec_check(), page_rec_print(), row_vers_impl_x_locked_off_kernel():
Add const qualifier to rec_t* parameter.

row_vers_old_has_index_entry(): Add const qualifier to dtuple_t* parameter.

row_sel_sec_rec_is_for_blob(): Add const qualifiers.

Replace some occurrences of mtr_memo_contains_page() with mtr_memo_contains().
2006-10-23 19:14:36 +00:00
marko
839a9664d3 branches/zip: row_sel_sec_rec_is_for_clust_rec(): Augment the bug fix in r918:
After calling row_sel_sec_rec_is_for_blob(), skip the cmp_data_data()
comparison of the incomplete prefix.
2006-10-23 18:29:14 +00:00
marko
1834af7672 branches/zip: Minor cleanup.
page_set_max_trx_id(): Replace page_t* parameter with buf_block_t*,
to avoid a buf_block_align() call.

Replace some occurrences of page_get_page_no() with buf_block_get_page_no().

page_cur_delete_rec(): Replace buf_block_align() with page_cur_get_block().
2006-10-23 18:26:10 +00:00
marko
40b401a682 branches/zip: Fix some bugs.
btr_cur_pessimistic_insert(): Remove local variable "block".  Replace
an extraneous call to btr_cur_position() [with wrong "block", in r948]
with a debug assertion that the cursor is positioned on the preceding
record after the page split.

btr_pcur_restore_position(): Do not use btr_pcur_get_page(), because
the debug assertion there could fail.  This bug was introduced in r928.
2006-10-23 11:38:32 +00:00
marko
94c7711111 branches/zip: Add const qualifiers to some read-only byte* and rec_t*
parameters of some functions.
2006-10-20 13:50:40 +00:00
marko
f1348098a0 branches/zip: btr_search_drop_page_hash_index(): Do not call
buf_block_get_frame(), because it will lead to debug assertion failure
when buf_fix_count == 0.  This bug was introduced in r908.
2006-10-20 13:49:42 +00:00
marko
b6e26f24d7 branches/zip: Remove some more buf_block_align() calls.
btr_cur_t: Move page_block to page_cur_t::block.

page_cur_get_block(), page_cur_get_page_zip(): New functions.

page_cur_position(): Add parameter block.

Remove many page_zip parameters, now that there is page_cur_get_page_zip().
Replace some page, page_zip parameters with block.

Add some const qualifiers to function parameters and remove casts.

PAGE_HEAP_NO_INFIMUM, PAGE_HEAP_NO_SUPREMUM, PAGE_HEAP_NO_USER_LOW:
New constants.

Replace some cursor code in low-level diagnostic functions with
direct management of rec, because buf_block_t::buf_fix_count may be 0
when the functions are called, and debug assertions would fail.
2006-10-20 12:45:53 +00:00
marko
bb9b1b0c48 branches/zip: btr_search_guess_on_hash(): Do not call buf_block_get_frame(),
because it will lead to debug assertion failure when buf_fix_count == 0.
This bug was introduced in r912.
2006-10-20 12:22:42 +00:00
marko
baeb31b952 branches/zip: btr_cur_open_at_index_side(): Correct a debug assertion
added in r928.  Do not call btr_cur_get_block() in the debug assertion,
because the debug assertion there would fail.
2006-10-20 11:54:13 +00:00
marko
2c7e55dd52 branches/zip: buf_merge_or_delete_for_page(): Correct some debug assertions.
We cannot call buf_block_get_space() or buf_block_get_page_no(),
because the assertions there can fail.
2006-10-20 11:35:32 +00:00
marko
706c55927a branches/zip: mem_heap_block_free(): Fix a bug introduced in r914
while trying to fix r909: invoke mem_erase_buf() before freeing the
buffer, but after interpreting block->buf_block.
2006-10-20 11:10:46 +00:00
marko
d6c684798e branches/zip: Add const qualifiers to function parameters, mostly dtuple_t. 2006-10-20 08:30:07 +00:00
marko
cdb096b609 branches/zip: Remove many fil_space_get_zip_size() calls.
ibuf_page(), ibuf_page_low(), ibuf_free_excess_pages(), ibuf_insert(),
buf_read_page(), buf_read_ahead_linear(), buf_read_recv_pages():
Add parameter zip_size.
2006-10-19 11:07:50 +00:00
marko
24d0bbf86c branches/zip: Remove some more buf_block_align() calls.
btr_search_build_page_hash_index(), fsp_parse_init_file_page(),
ibuf_parse_bitmap_init(): Replace page_t* with buf_block_t*.

buf_read_ibuf_merge_pages(): Add const qualifiers.  Retrieve zip_size.

ibuf_merge_or_delete_for_page(): Replace page_t* with buf_block_t*.
Add parameter zip_size.
2006-10-19 08:27:34 +00:00
marko
8919884f45 branches/zip: Remove some more casts.
dict_index_get_nth_col_pos(), dict_index_get_sys_col_pos(),
dict_index_get_n_fields(), fil_page_get_type():
Add const qualifier to parameter.

dict_index_get_nth_field(): Implement as a macro unless #ifdef UNIV_DEBUG.
2006-10-19 07:52:28 +00:00
marko
fbe4fe6022 branches/zip: Remove the casts introduced in r920 and r925. Replace the
accessors returning pointers with macros that preserve const qualifiers.
In UNIV_DEBUG builds, retain the accessors and cast away constness there.

dfield_get_type(), dfield_get_data(), dtuple_get_nth_field(),
dict_table_get_nth_col(), dict_table_get_sys_col(): Implement as macro
unless #ifdef UNIV_DEBUG.

rec_get_nth_field(): Replace with rec_get_nth_field_offs() that does not
do pointer arithmetics.  Implement rec_get_nth_field() as a macro.
2006-10-19 07:27:26 +00:00
marko
f8b304727e branches/zip: ha_create(): Remove parameter in_btr_search, which was
passed as TRUE.

Enclose hash_table_t::adaptive and buf_block_t::n_pointers in
#ifdef UNIV_DEBUG.

btr_search_drop_page_hash_index(): Enclose the corruption check
(which depends on buf_block_t::n_pointers) in #ifdef UNIV_DEBUG.
2006-10-18 18:52:04 +00:00
marko
120e544dc1 branches/zip: btr_cur_t: replace left_page with left_block, to avoid
calling buf_block_align() in btr_pcur_move_backward_from_page().
Also, enclose some assertions about page_is_comp() in #ifdef UNIV_BTR_DEBUG.
2006-10-18 17:43:04 +00:00
marko
d583b1803c branches/zip: Eliminate many buf_block_align() calls.
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.
2006-10-18 11:39:31 +00:00
marko
8f07794024 branches/zip: Introduce const qualifiers to many read-only parameters
and modify some functions to return const pointers.  Add const qualifiers
to local variable declarations or casts to remove the const qualifier
in those places where write access is needed.
2006-10-17 12:24:13 +00:00
marko
67740324ca branches/zip: Allow compilation with UNIV_DEBUG without defining
the symbol UNIV_DEBUG_PRINT, which was introduced in r729.

buf_LRU_print(), buf_print(): Replace #ifdef UNIV_DEBUG_PRINT
with #if defined UNIV_DEBUG || defined UNIV_DEBUG_PRINT.
2006-10-17 12:13:15 +00:00
marko
d71e0c2d55 branches/zip: Add const qualifiers to read-only rec_t* parameters
of rec accessor functions.
2006-10-16 11:42:46 +00:00
marko
26d81785c8 branches/zip: row_sel_sec_rec_is_for_blob(): Add parameters mbminlen, mbmaxlen.
Trim the fetched prefix with dtype_get_at_most_n_mbchars().
2006-10-13 13:40:25 +00:00
marko
03180e9e56 branches/zip: buf_ptr_get_fsp_addr(): Change parameter ptr to const void*,
and remove the buf_block_align() call.
2006-10-13 13:03:06 +00:00
marko
84988bd667 branches/zip: row_sel_get_clust_rec_for_mysql(): Improve formatting. 2006-10-13 13:02:00 +00:00