- 01 Aug, 2007 7 commits
-
-
marko authored
error code. Apparently, the numeric error codes in MySQL 5.1 are changing.
-
marko authored
implicit type conversion from void*. Inlining is enabled in ha_innodb.cc since r1587.
-
marko authored
C++ requires explicit type casts when converting from void*, and *.ic files are now inlined in ha_innodb.cc. fil_space_get_by_id(), fil_space_get_by_name(): New inline functions, to replace occurrences of the HASH_SEARCH() macro in fil0fil.c. This should improve readability.
-
marko authored
-
marko authored
This was broken in r1591.
-
marko authored
about "row" being possibly uninitialized.
-
marko authored
Add a const qualifier to lock_t*.
-
- 21 Jun, 2007 8 commits
-
-
marko authored
-
marko authored
Fix some printouts.
-
marko authored
row_ins_index_entry(). The added parameter (whether to check foreign key constraints) was incorrectly passed as FALSE in r1591.
-
marko authored
be set always. trx_rollback_active(): Split from trx_rollback_or_clean_all_without_sess(). row_undo_dictionary(): Do not return a value. Assert that all operations succeed. row_merge_drop_index(): Remove bogus comment about void return value. trx_dummy_sess: Move the declaration from trx0roll.h to trx0trx.h, because the variable is defined in trx0trx.c.
-
marko authored
-
marko authored
Return DB_SUCCESS. Do not release and reacquire kernel_mutex.
-
marko authored
Some things still fail in innodb-index.test, and there seems to be a race condition (data dictionary lock wait) when running with --valgrind. dfield_t: Add an "external storage" flag, dfield->ext. dfield_is_null(), dfield_is_ext(), dfield_set_ext(), dfield_set_null(): New functions. dfield_copy(), dfield_copy_data(): Add const qualifiers, fix in/out comments. data_write_sql_null(): Use memset(). big_rec_field_t: Replace byte* data with const void* data. ut_ulint_sort(): Remove. upd_field_t: Remove extern_storage. upd_node_t: Replace ext_vec, n_ext_vec with n_ext. row_merge_copy_blobs(): New function. row_ins_index_entry(): Add the parameter "ibool foreign" for suppressing foreign key checks during fast index creation or when inserting into secondary indexes. btr_page_insert_fits(): Add const qualifiers. btr_cur_add_ext(), upd_ext_vec_contains(): Remove. dfield_print_also_hex(), dfield_print(): Replace if...else if with switch. Observe dfield_is_ext().
-
marko authored
to rec_t*. Remove the ut_ad(rec_offs_validate()), because this function will be called from row0merge.c on a record that lacks the REC_N_NEW_EXTRA_BYTES.
-
- 20 Jun, 2007 3 commits
-
-
marko authored
-
marko authored
ha_innobase::add_index(): Do commit the transaction, because the error handler (label err1) in mysql_alter_table() won't commit it as of now. This was detected in a failure of type_bit_innodb.
-
marko authored
now that all of InnoDB code is built from a single Makefile and it should not be possible to build the modules with mutually incompatible options. #define INSIDE_HA_INNOBASE_CC: Remove. srv_sizeof_trx_t_in_ha_innodb_cc: Remove. dict_table_get_low_noninlined(): Remove. This function was unused. Remove all _noninline functions. Remove the _noninline suffix from all function calls in ha_innodb.cc.
-
- 19 Jun, 2007 2 commits
- 18 Jun, 2007 2 commits
-
-
marko authored
Remove the variable parent_trx. Call innobase_register_stmt() in order to work around a MySQL bug in mysql_alter_table(), which, as of ChangeSet@1.2482.61.2, 2007-06-07 16:37:15+02:00, joerg@trift2. +8 -0 commits the transaction before calling ha_innobase::add_index(). Without re-registering the statement, the ha_commit_stmt(thd) in mysql_alter_table() would not invoke innobase_commit.
-
marko authored
It should be committed by MySQL after all. The error in mysql_alter_table() will be worked around in r1584.
-
- 13 Jun, 2007 4 commits
-
-
marko authored
Because row_drop_table_for_mysql_no_commit() checks with dict_load_table() if the table was successfully dropped, we cannot pass table->name to it. row_merge_drop_table(): Pass a copy of table->name to row_drop_table_for_mysql(). row_prebuilt_free(): Do not dereference prebuilt->table->name after a successful invocation of row_add_table_to_background_drop_list(). The table object may be freed at any time. Remove the debug message "Dropping table".
-
marko authored
occur in mysql-test-run, but mysql-test-run reports some warnings for some tests and incorrect results for innodb-index.test. innobase_start_trx_and_assign_read_view(): Use thd instead of current_thd. ha_innobase::add_index(): Use ha_thd() instead of current_thd. Commit the transaction at the end. row_merge_rename_index(): Really change the name of the index. This was broken in r1430.
-
marko authored
-
marko authored
with ut_a(err == DB_SUCCESS).
-
- 12 Jun, 2007 2 commits
-
-
marko authored
-
marko authored
during fast index creation. TEMP_TABLE_PREFIX: Move the definition from dict0dict.h to ut0ut.h. ut_print_namel(): Check if the name starts with TEMP_TABLE_PREFIX. innobase_rename_table(): Print all names with ut_print_name(). row_prebuilt_free(): Replace assert() with ut_a().
-
- 11 Jun, 2007 2 commits
-
-
marko authored
comparing uninitialized values. dict_mem_table_create(): Initialize table->version_number. ins_node_create(): Initialize node->table_version_number. row_create_prebuilt(): Initialize all fields. Initialize most fields by memset(), so that any fields that are added will be initialized automatically.
-
marko authored
temporary tablespaces in fast index creation. The tablespaces must reside in the same directory as the persistent tablespaces, so that they can be renamed without copying. Namespace collisions are avoided by replacing the ".ibd" file name suffix with ".ib1" or ".ib2". fil_make_ibd_name(): Treat names starting with TEMP_TABLE_PREFIX specially. Document the dependence on innobase_create_temporary_tablename().
-
- 08 Jun, 2007 4 commits
-
-
marko authored
row_merge_buf_add(): Correctly calculate buf->total_size. row_merge_buf_write(): Add an assertion about buf->total_size. row_merge_heap_create(), row_merge_read_rec(), row_merge_insert_index_tuples(): offsets needs to be 1 + REC_OFFS_HEADER_SIZE + n_fields. Previously, we allocated one element too little. row_merge_blocks(): Use goto instead of break in the AT_END argument of ROW_MERGE_WRITE_GET_NEXT.
-
marko authored
single os_mem_alloc_large() call. The function mem_alloc() that was used previously allocates unaligned memory. row_merge_blocks(): Replace block1, block2, block3 with a single array. Replace buf1, buf2, buf3 with buf[3]. Replace b1..b3 with b0..b2. Replace mrec1,2 with mrec0,1. Replace offsets1,2 with offsets0,1. row_merge(), row_merge_sort(): Replace block1, block2, block3 with a single array.
-
marko authored
The creation of the primary key does not work. We will have to flag externally stored columns and copy the externally stored part from the old table. row_build_index_for_mysql(): Rename to row_merge_build_indexes(). Move from row0mysql.c to row0merge.c. Remove private declarations from row0merge.h. Make many functions static in row0merge.c. cmp_rec_rec_simple(): A new comparison function. dict_index_get_min_size(): New function. OS_FILE_FROM_FD(fd): A macro for converting from int to os_file_t. rec_convert_dtuple_to_rec_comp(): Make the interface lower-level. rec_get_converted_size_comp(): Return also extra_size. UT_SORT_FUNCTION_BODY(): Remove reference to an obsolete test program. row_rec_to_index_entry_low(): New function. row0merge.c: Implement merge sort based on file streams instead of fixed-size blocks. Sort the small blocks as arrays of dfield_t*, because it is faster than invoking rec_get_offsets() for every comparison.
-
marko authored
-
- 07 Jun, 2007 5 commits
-
-
marko authored
-
marko authored
in fast index creation. innobase_create_index_def(), innobase_copy_index_def(): Copy to pre-allocated space. innobase_create_key_def(): Change the return type from merge_index_def_t** to merge_index_def_t*.
-
marko authored
innobase_create_index_def(): Add parameter new_primary. innobase_copy_index_def(): Simplify the documented algorithm, and try to implement it properly. innodb-index.test: Replace CHECKSUM TABLE with something more stable and useful. The test passes on an older BitKeeper snapshot: ChangeSet@1.2475.18.9, 2007-05-08 11:16:41+02:00, jbruehe@mysql.com +1 -0 Raise version number after cloning 5.1.18-beta But it fails on a newer one where the statement alter table t1 add primary key (a), add key (b(20)); results in fast index creation: ChangeSet@1.2500.1.40, 2007-06-01 20:06:13+04:00, kostja@bodhi.(none) +2 -0 Merge bodhi.(none):/opt/local/work/mysql-5.0-runtime into bodhi.(none):/opt/local/work/mysql-5.1-runtime MERGE: 1.1810.2984.14
-
marko authored
-
marko authored
infimum and supremum. This was broken in r1515.
-
- 06 Jun, 2007 1 commit
-
-
marko authored
row_merge_create_temporary_table(), row_merge_create_index(): Return the dictionary object. On error, set trx->error_state.
-