- 22 Sep, 2007 3 commits
-
-
vasil authored
Cosmetic: initialize the members of the cache in the same order as they are defined in the structure.
-
vasil authored
Make comment more clear (hopefully).
-
vasil authored
Use the newly introduced mem_alloc2() to use the memory that has been allocated in addition to the requested memory. This is done in order to avoid wasting memory. Do not calculate the sizes and offsets of the chunks in advance in table_cache_init() because it is unknown how much bytes will actually be allocated by mem_alloc2(). Rather calculate these on the run: after each chunk is allocated set its size and the offset of the next chunk. Similar patch approved by: Marko
-
- 21 Sep, 2007 7 commits
-
-
marko authored
merge buffer, write the next record to the beginning of the emptied buffer. This fixes one of the bugs mentioned in r1872.
-
marko authored
Some bug still remains, because innodb-index.test will lose some records from the clustered index after add primary key (a,b(255),c(255)) when row_merge_block_t is reduced to 8192 bytes. row_merge(): Add the parameter "half". Add some Valgrind instrumentation. Note that either stream can end before the other one. row_merge_sort(): Calculate "half" for row_merge().
-
marko authored
mem_alloc2(): New macro. This is a variant of mem_alloc() that returns the allocated size, which is equal to or greater than the requested size. mem_alloc_func(): Add the output parameter *size for the allocated size. When it is set, adjust the parameter passed to mem_heap_alloc(). rec_copy_prefix_to_buf_old(), rec_copy_prefix_to_buf(): Use mem_alloc2() instead of mem_alloc().
-
marko authored
row_merge_print_read and row_merge_print_write.
-
marko authored
was actually obtained from the buddy allocator. This should avoid some internal memory fragmentation in mem_heap_create() and mem_heap_alloc(). mem_area_alloc(): Change the in parameter size to an in/out parameter. Adjust the size based on what was obtained from pool->free_list[]. mem_heap_create_block(): Adjust block->len to what was obtained from mem_area_alloc().
-
marko authored
column d to two SELECT FROM t1.
-
marko authored
rec_print_comp(): New function, sliced from rec_print_new(). rec_print_old(), rec_print_comp(): Print the untruncated length of the column. row_merge_print_read, row_merge_print_write, row_merge_print_cmp: New flags, to enable debug printout in UNIV_DEBUG builds. row_merge_tuple_print(): New function for UNIV_DEBUG builds. row_merge_read_rec(): Obey row_merge_print_read. row_merge_buf_write(), row_merge_write_rec_low(), row_merge_write_eof(): Obey row_merge_print_write. row_merge_cmp(): Obey row_merge_print_cmp.
-
- 20 Sep, 2007 3 commits
-
-
marko authored
in fast index creation. row_merge_write_eof(), row_merge_buf_write(): When UNIV_DEBUG_VALGRIND is defined, fill the rest of the block (after the end-of-block marker) with 0xff.
-
vasil authored
innodb_lock_waits. See https://svn.innodb.com/innobase/InformationSchema/TransactionsAndLocks for design notes. Things that need to be resolved before this goes live: * MySQL must add thd_get_thread_id() function to their code http://bugs.mysql.com/30930 * Allocate memory from mem_heap instead of using mem_alloc() * Copy table name and index name into the cache because they may be freed later which will result in referencing freed memory Approved by: Marko
-
marko authored
-
- 19 Sep, 2007 8 commits
-
-
marko authored
of fast index creation.
-
marko authored
row_merge_read_rec(): Correct a typo in a comment. Fix error in arithmetics when the record spans two blocks. row_merge_write_rec_low(): Add a "size" parameter. Add debug assertions about extra_size and size. row_merge_write_rec(): After writing a record, properly advance the buffer pointer.
-
marko authored
all columns present in offsets. Add a const qualifier to the dict_index_t* parameter.
-
marko authored
Add const qualifiers.
-
marko authored
that row_merge_blocks() will have some work to do when row_merge_block_t is shrunk to 8192 bytes. Currently, this will cause a debug assertion failure, because row_merge_cmp() is considering all columns, not just the unique ones.
-
marko authored
Correctly handle node pointer records containing variable-length columns with two-byte length.
-
marko authored
column prefixes in clustered indexes. innodb-index.test: Add test cases for creating primary keys containing column prefixes.
-
marko authored
row_ext_lookup().
-
- 17 Sep, 2007 2 commits
- 13 Sep, 2007 1 commit
-
-
marko authored
(smart ALTER TABLE) from ha_innodb.cc to a separate module, handler0alter.cc.
-
- 12 Sep, 2007 3 commits
- 11 Sep, 2007 4 commits
-
-
marko authored
existed before the fast-index-creation code was merged, in r1414. Do not call row_prebuilt_table_obsolete(innodb_table) until after the table has been renamed to a temporary name. Otherwise, the following could happen when creating a clustered index on table T: (a1) copy T to T#1 (a2) mark T obsolete (b1) add the name of T to the background drop list (a3) rename T to T#2 and T#1 to T (b2) drop the table on the background These steps are executed by two threads, a and b. If b1 is executed after a3, all is fine: the name T#2 will be added to the background drop list. If b1 is executed before a3, the name T will be added, and T#2 will survive.
-
marko authored
row_add_table_to_background_drop_list(): Replace the dict_table_t* parameter with const char* (the table name). row_check_table_for_mysql(): Replace prebuilt->table with table.
-
inaam authored
These should have gone to branches/fts. Spotted by: Marko and Ken
-
inaam authored
These should have gone in branches/fts Spotted by: Marko and Ken
-
- 10 Sep, 2007 2 commits
- 07 Sep, 2007 2 commits
-
-
marko authored
Use UNIV_MEM_ASSERT_W() instead of UNIV_MEM_ASSERT_RW(). The memory area need not be initialized. This mistake was made in r1815.
-
marko authored
fast index creation. innobase_convert_tablename(): New function, to remove the filename encoding of a database and table name. ha_innobase::add_index(): Invoke innobase_convert_tablename() before calling my_error(). innodb-index.result: Update the error messages.
-
- 06 Sep, 2007 5 commits
-
-
marko authored
the dictionary operations. TODO: ha_innobase::final_drop_index() should do the same, and set trx->dict_operation as well.
-
marko authored
-
marko authored
accidentally added in r1815.
-
marko authored
UNIV_MEM_ASSERT_RW(): New macro, to check that the contents of a memory area is defined. UNIV_MEM_ASSERT_W(): New macro, to check that a memory area is writable. UNIV_MEM_ASSERT_AND_FREE(): New macro, to check that the memory is writable before declaring it free (unwritable). This replaces UNIV_MEM_FREE() in many places. mem_init_buf(): Declare the memory undefined. mem_erase_buf(): Declare the memory freed.
-
marko authored
-