Commit graph

809 commits

Author SHA1 Message Date
vasil
468df81b8f branches/zip:
Add the proper macros for checking the correct latching order in trx
information_schema code.

Approved by:	Marko
2007-10-12 11:20:13 +00:00
marko
75e12d4898 branches/zip: page_zip_max_ins_size(): Correct the comment of the return value. 2007-10-12 11:16:20 +00:00
marko
edf5b599d1 branches/zip: ibuf_insert_low(): Add the parameter entry_size in order to
avoid repeated invocation of the costly function rec_get_converted_size().
2007-10-12 10:48:35 +00:00
marko
1367c5e5be branches/zip: ibuf_index_page_calc_free(): Add const qualifiers. 2007-10-12 10:45:41 +00:00
vasil
8bafadab91 branches/zip:
Fix off-by-one error in ut_raw_to_hex().
2007-10-12 10:20:01 +00:00
marko
36e3171767 branches/zip: Improve diagnostic output in ibuf_insert_to_index_page()
and add some debug assertions.
2007-10-12 08:38:49 +00:00
marko
4a697d8f60 branches/zip: ut_raw_to_hex(): Fix a compiler warning that was introduced
in r1960.
2007-10-12 08:37:27 +00:00
vasil
31dae76d30 branches/zip:
Non-functional change: add a missed space in the output message.
2007-10-12 07:58:28 +00:00
vasil
abceb43b98 branches/zip:
Non-functional change: fix compiler warning:

buf0buf.ic:637: warning: assignment discards qualifiers from pointer target type
2007-10-11 11:54:51 +00:00
vasil
9dbf703da8 branches/zip:
Non-functional change to improve readability.
2007-10-11 10:45:57 +00:00
vasil
e722cf5a30 branches/zip:
Add ut_raw_to_hex() function to convert a raw binary strings to hex.
This is a monstrous, fine-tuned implementation.

Approved by:	Marko
2007-10-10 16:35:05 +00:00
marko
2966cf744f branches/zip: row_ins_foreign_report_add_err(): Note that the dtuple_print()
call may display uninitialized values of DB_TRX_ID and DB_ROLL_PTR.
2007-10-10 11:39:26 +00:00
marko
a8a47268a4 branches/zip: innodb-index.result: Adapt the results to a patch from MySQL.
Unfortunately, the patch seems to prevent MySQL from utilizing secondary
indexes in the ORDER BY clauses.  Thus, the test no longer checks if newly
created indexes are well-formed.

ChangeSet@1.2528.98.1  2007-08-02 12:45:56-07:00  igor@mysql.com

Fixed bug#28404.
This patch adds cost estimation for the queries with ORDER BY / GROUP BY
and LIMIT. 
If there was a ref/range access to the table whose rows were required
to be ordered in the result set the optimizer always employed this access
though a scan by a different index that was compatible with the required 
order could be cheaper to produce the first L rows of the result set.
Now for such queries the optimizer makes a choice between the cheapest
ref/range accesses not compatible with the given order and index scans
compatible with it.
2007-10-08 12:16:32 +00:00
vasil
fe92e646f7 branches/zip:
Add diagnostic function ha_storage_get_size() to retrieve the amount of
memory used by a ha_storage_t object.

Approved by:	Marko
2007-10-08 10:46:26 +00:00
marko
4cd65bb092 branches/zip: page_mem_alloc_free(): Fix the debug assertion that was
accidentally broken in r1939.  It failed when next_rec == NULL.
2007-10-05 11:33:19 +00:00
marko
3d9183da6a branches/zip: Correct the Valgrind instrumentation that was added in r1947. 2007-10-05 11:22:23 +00:00
marko
8e4c946d11 branches/zip: i_s.cc: Add missing #include "buf0buf.h" that should have
been added in r1943.  This is needed for building a noninlined version.
2007-10-05 10:59:34 +00:00
marko
1080bc105a branches/zip: dtuple_convert_big_rec(): Do not flag the extern field
references uninitialized, because it causes bogus warnings since r1947.
2007-10-05 09:58:24 +00:00
marko
e233731f1b branches/zip: Add some Valgrind instrumentation.
dtuple_validate(): Detect uninitialized data.

page_cur_insert_rec_low(), page_cur_insert_rec_zip(): Assert that the
record being inserted is valid before and after insertion.
2007-10-05 08:53:28 +00:00
marko
5ae0bb6d60 branches/zip: innodb.test: Fix the result, now that fast index creation
reports duplicate key values.  The reported value may depend on the
size of the main-memory merge sort buffer (row_merge_block_t).
2007-10-05 08:39:35 +00:00
marko
9fb9158b6a branches/zip: Use static linkage for row_ins(). 2007-10-05 06:23:37 +00:00
marko
1b166ea268 branches/zip: Add DBUG_ASSERT(hton == innodb_hton_ptr) to various functions. 2007-10-04 08:33:25 +00:00
marko
a298d8ba0a branches/zip: Move the implementation of the INFORMATION_SCHEMA tables
INNODB_ZIP and INNODB_ZIP_RESET from ha_innodb.cc to i_s.cc.

plugin_author, END_OF_ST_FIELD_INFO, i_s_info: New common constants.

trx_i_s_common_deinit(): Renamed to i_s_common_deinit().
2007-10-03 14:00:54 +00:00
marko
354a9fc077 branches/zip: Initialize also the newly added field open_method
in ST_FIELD_INFO.
2007-10-03 13:48:17 +00:00
marko
f591eb0ba3 branches/zip: Silence some more GCC 4.2.1 warnings. 2007-10-03 12:36:59 +00:00
marko
2d61dbb747 branches/zip: page_rec_get_next_low(): Fix a bug that was made in r952. 2007-10-03 12:27:06 +00:00
marko
6557ba5342 branches/zip: Silence most GCC 4.2.1 warnings about const pointers.
For some reason, GCC 4.2.1 ignores casts (for removing constness)
in calls to inline functions.

page_align(), ut_align_down(): Make the parameter const void*, but still
return a non-const pointer.  This is ugly, but these functions cannot be
replaced with a const-preserving macro in a portable way, given that
the pointer argument is not always pointing to bytes.

buf_block_get_page_zip(): Implement as a const-preserving macro.

buf_frame_get_page_zip(), buf_block_align(): Add const qualifiers.

lock_rec_get_prev(): Silence GCC 4.2.1 warnings.

mlog_write_initial_log_record(), mlog_write_initial_log_record_fast(),
mtr_memo_contains(): Add const qualifier to the pointer.

page_header_get_ptr(): Rewrite as page_header_get_offs(), and
implement as a macro that calls this function.
2007-10-03 12:22:29 +00:00
marko
a344db96e7 branches/zip: Merge 1918:1937 from trunk. 2007-10-03 08:44:50 +00:00
marko
8758ac866f branches/zip: dict_index_copy_rec_order_prefix(): Add const qualifiers. 2007-10-01 08:00:24 +00:00
marko
d1b3d492c0 branches/zip: btr_search_validate(): Use buf_block_hash_get(). 2007-10-01 07:45:02 +00:00
marko
3d57033064 branches/zip: Optimize buf_page_try_get_func().
buf_block_hash_get(): New function, similar to buf_page_hash_get().

buf_page_get_block(): Remove the const qualifiers.  This is a low-level
function, and the operations on block->mutex are non-const.

buf_page_try_get_func(): Implement with lower-level predicates, somewhat
similar to buf_page_get_known_nowait().

lock_rec_print(): Remove the unused variable zip_size and the
call to fil_space_get_zip_size().  Adapt to buf_page_try_get() returning
a const pointer.
2007-10-01 07:32:45 +00:00
marko
1110b563b2 branches/zip: Introduce the function buf_block_fix_dec(), similar to
buf_block_fix_inc(), and use it.
2007-10-01 07:25:02 +00:00
vasil
598a8ca67c branches/zip:
Remove bogus comment from ha_storage_empty().
2007-09-28 14:07:02 +00:00
vasil
795a17980d branches/zip:
Add const qualifier to the value returned by ha_storage_put().
It must not be changed as this will invalidate the hash.
2007-09-28 13:40:12 +00:00
marko
20d7ea9851 branches/zip: Add the function buf_page_get_block(), for converting
from buf_page_t* to buf_block_t*.

buf_page_can_relocate(): Replace the incorrect __attribute__((const))
with __attribute__((pure)).
2007-09-28 12:04:04 +00:00
marko
3b99f0d17c branches/zip: Fix some link errors.
ha_innobase::update_thd(void): New function, to call the inline function
ha_innobase::update_thd(THD*).

check_trx_exists(): Make static.  handler0alter.cc does not need to call
this function.
2007-09-28 10:44:20 +00:00
marko
22b01120b8 branches/zip: Define the macro rec_offs_init() and use it for initializing
offsets_[] arrays, as suggested by Vasil.

rec_offs_set_n_alloc(): Declare as a public function.  Assert that
n_alloc > REC_OFFS_HEADER_SIZE.

rec_offs_get_n_alloc(): Assert that n_alloc > REC_OFFS_HEADER_SIZE.
2007-09-28 07:05:57 +00:00
marko
46685c065f branches/zip: sync_thread_add_level(): Reduce code duplication in
the sync_thread_levels_g() check, so that it will be easier to add
new sync levels.
2007-09-28 06:55:26 +00:00
marko
44f9d06969 branches/zip: Define buf_block_get_frame() as a const-preserving macro. 2007-09-28 06:26:21 +00:00
marko
14b700688b branches/zip: Merge 1894:1918 from trunk. 2007-09-28 06:16:20 +00:00
vasil
202405cc1c branches/zip:
Fix compilation warning:

can_cache_be_updated(): Remove const qualifier because this function needs
to call rw_lock_own().
2007-09-28 04:58:16 +00:00
marko
c7e26ddf2e branches/zip: innobase_col_to_mysql(): Replace the undefined variable "templ"
with "col" in two debug assertions.  This mistake was made in r1910.
2007-09-27 18:16:39 +00:00
vasil
983a8011cd branches/zip:
Fix a warning produced when UNIV_DEBUG is defined.
2007-09-27 15:15:51 +00:00
vasil
e05b8e86b9 branches/zip:
Move part of the code from lock_rec_print() in a separate function
buf_page_try_get() because the same functionality is needed in
INFORMATION SCHEMA code.

Approved by:	Heikki
2007-09-27 14:35:18 +00:00
vasil
511cab191a branches/zip:
Add auxiliary function lock_rec_get_index() to retrieve the index on
which the lock is.

Approved by:	Heikki
2007-09-27 13:54:21 +00:00
vasil
d90516a8ab branches/zip:
Fix a bug where the condition (prtype & DATA_ROW_ID) is unexpectedly
always false becasue DATA_ROW_ID is 0.

Use a switch instead of if-else in order to avoid repeating
(prtype & DATA_SYS_PRTYPE_MASK).

Approved by:	Heikki
2007-09-27 13:52:47 +00:00
marko
23f80a6f54 branches/zip: Merge 1862:1894 from trunk, except 1866. 2007-09-27 11:17:45 +00:00
marko
20008e0e24 branches/zip: Correctly convert InnoDB records to MySQL table->record[0].
innobase_col_to_mysql(): New function, adapted from
row_sel_field_store_in_mysql_format().

innobase_rec_to_mysql(): Correct the function comment, which was still
saying "clustered index record", although we can convert any record.
Make use of innobase_col_to_mysql().  Always call field->reset(),
so that innobase_col_to_mysql() will not have to pad anything.
2007-09-27 11:03:36 +00:00
marko
48d761aeb8 branches/zip: row_mysql_store_blob_ref(): Change the type of the parameter
"data" from byte* to const void*.
2007-09-27 10:59:54 +00:00
marko
fc608351ab branches/zip: row_sel_field_store_in_mysql_format(): Replace
if-else with switch.
2007-09-27 09:05:05 +00:00