Commit graph

954 commits

Author SHA1 Message Date
marko
8835bdf92b 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
dd9dc4e91f branches/zip: ut_raw_to_hex(): Fix a compiler warning that was introduced
in r1960.
2007-10-12 08:37:27 +00:00
vasil
d6df021d2a branches/zip:
Non-functional change: add a missed space in the output message.
2007-10-12 07:58:28 +00:00
vasil
9d1a3ad901 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
123c147dd7 branches/zip:
Non-functional change to improve readability.
2007-10-11 10:45:57 +00:00
vasil
c9106d39e5 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
9364a4daf6 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
dcde0edf82 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
bfc48819c5 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
2b93ccc9c1 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
c8f0dbb1ba branches/zip: Correct the Valgrind instrumentation that was added in r1947. 2007-10-05 11:22:23 +00:00
marko
ac57f9244e 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
c3f4b2a547 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
b7469c6c2f 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
ac2c0d442f 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
f3d0ad8160 branches/zip: Use static linkage for row_ins(). 2007-10-05 06:23:37 +00:00
marko
03903aa90e branches/zip: Add DBUG_ASSERT(hton == innodb_hton_ptr) to various functions. 2007-10-04 08:33:25 +00:00
marko
da66c9dd40 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
252cd110ff branches/zip: Initialize also the newly added field open_method
in ST_FIELD_INFO.
2007-10-03 13:48:17 +00:00
marko
3d647001fb branches/zip: Silence some more GCC 4.2.1 warnings. 2007-10-03 12:36:59 +00:00
marko
94755e4f27 branches/zip: page_rec_get_next_low(): Fix a bug that was made in r952. 2007-10-03 12:27:06 +00:00
marko
2ddbc912e7 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
e9507ea69b branches/zip: Merge 1918:1937 from trunk. 2007-10-03 08:44:50 +00:00
marko
0c8ffae623 branches/zip: dict_index_copy_rec_order_prefix(): Add const qualifiers. 2007-10-01 08:00:24 +00:00
marko
aaa3a5f07e branches/zip: btr_search_validate(): Use buf_block_hash_get(). 2007-10-01 07:45:02 +00:00
marko
6759a929ad 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
aafdd9ab80 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
331af5c563 branches/zip:
Remove bogus comment from ha_storage_empty().
2007-09-28 14:07:02 +00:00
vasil
8dba58e45b 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
ec6a38ad89 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
5a93636fa8 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
3877f6910f 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
d67cc23edf 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
9e86928b7e branches/zip: Define buf_block_get_frame() as a const-preserving macro. 2007-09-28 06:26:21 +00:00
marko
5f51afe264 branches/zip: Merge 1894:1918 from trunk. 2007-09-28 06:16:20 +00:00
vasil
a0b721f4e6 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
c4518db6ed 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
098c5b4dbc branches/zip:
Fix a warning produced when UNIV_DEBUG is defined.
2007-09-27 15:15:51 +00:00
vasil
f38752862a 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
89423c0455 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
54df816bb9 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
a1e57e698b branches/zip: Merge 1862:1894 from trunk, except 1866. 2007-09-27 11:17:45 +00:00
marko
14b2f454cf 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
55f4395272 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
df88e3c988 branches/zip: row_sel_field_store_in_mysql_format(): Replace
if-else with switch.
2007-09-27 09:05:05 +00:00
marko
2de2d45fdf branches/zip: Remove the unused variable row_mysql_identically_false. 2007-09-27 08:56:33 +00:00
marko
028d25db86 branches/zip: Simplify the reporting of duplicate key values.
Since r1905, innobase_rec_to_mysql() does not require a clustered index record.

row_merge_dup_t: Remove old_table.

row_merge_dup_report(): Do not fetch the clustered index record.  Simply
convert the tuple by innobase_rec_to_mysql().

row_merge_blocks(), row_merge(), row_merge_sort(): Add a TABLE* parameter
for reporting duplicate key values during file sort.

row_merge_read_clustered_index(): Replace UNIV_PAGE_SIZE with the more
appropriate sizeof(mrec_buf_t).
2007-09-27 08:28:25 +00:00
marko
79ec158732 branches/zip: innobase_rec_to_mysql(): Allow "index" to be any index,
clustered or secondary.  Remove the rec_offs_validate() assertion, because
the function may be passed a mrec_t* that would fail the check.
2007-09-27 08:19:38 +00:00
marko
e25d62f27a branches/zip: Double the size of mrec_buf_t to UNIV_PAGE_SIZE.
This should have been done in r1903, where the minimum size of
row_merge_block_t was noted to be UNIV_PAGE_SIZE.
2007-09-27 06:13:33 +00:00
marko
51436aa102 branches/zip: Document the minimum size of row_merge_block_t as UNIV_PAGE_SIZE.
row_merge_buf_add(): Add ut_ad(data_size < sizeof(row_merge_block_t))
and document why it may fail if sizeof row_merge_block_t < UNIV_PAGE_SIZE.
2007-09-26 13:52:08 +00:00