- 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
-
- 05 Sep, 2007 3 commits
-
-
marko authored
temporary table cannot be created or renamed. innodb-index.test,result: Add test cases where a temporary table already exists.
-
marko authored
trx_t: Remove dict_undo_list and dict_redo_list. innobase_create_temporary_tablename(): Replace TEMP_TABLE_PREFIX with a table name suffix "#1" or "#2". In this way, the user can restore precious data, should anything go wrong. It is possible to reach an inconsistent state, because the creation, deletion and renaming of single-table tablespaces are not transactional. ut_print_namel(), fil_make_ibd_name(), innobase_rename_table(): Remove the special treatment of TEMP_TABLE_PREFIX. Introduce TEMP_INDEX_PREFIX == 0xff for temporary indexes. This byte cannot occur in index names since MySQL 4.1. However, it might have been possible to use this byte in MySQL 4.0. recv_recovery_from_checkpoint_finish(): Call the new function row_merge_drop_temp_indexes(), to drop all indexes whose name starts with the byte 0xff. row_merge_rename_indexes(): Renamed from row_merge_rename_index(). Remove the parameter "index". row_drop_table_for_mysql(): Unconditionally call trx_commit_for_mysql(). row_drop_table_for_mysql_no_commit(): Correct the function commit, based on the corrected comment of row_drop_table_for_mysql(). Rely on table->to_be_dropped instead of TEMP_TABLE_PREFIX. ha_innobase::add_index(): Simplify the control flow.
-
marko authored
in a dictionary operation, display also the name of the index.
-