- 20 Aug, 2007 7 commits
-
-
marko authored
innodb-index.test: Add some test cases for FOREIGN KEY constraints. row_merge_rename_tables(): New function, adapted from row_rename_table_for_mysql(). ha_innobase::add_index(): Use row_merge_rename_tables().
-
marko authored
printout of dict_table_rename_in_cache(). Correct the comment about the SQL parser. This function does not drop any table.
-
marko authored
for the error cases. Avoid copying the old table->name; the string will remain valid in table->heap.
-
marko authored
have been set. ha_innobase::add_index(), ha_innobase::prepare_drop_index(), ha_innobase::final_drop_index(): Return HA_ERR_WRONG_COMMAND if newraw or innodb_force_recovery have been set.
-
marko authored
-
marko authored
dict_table_t, dict_index_t, and dict_foreign_t.
-
marko authored
-
- 16 Aug, 2007 5 commits
-
-
marko authored
mem_heap_zalloc() and mem_zalloc(), because calloc() in the C runtime library takes two size parameters, not one. mem_heap_zalloc(): Add debug assertions. Document that the return value is never NULL.
-
marko authored
(PRIMARY KEY or UNIQUE INDEX on NOT NULL columns). innodb-index.test: Remove the --replace_regex directives. Replace correct values to the "Duplicate entry" messages. This will cause the test to fail until we somehow return the duplicate key values to MySQL. Add test cases for creating or dropping UNIQUE INDEX or PRIMARY KEY. innobase_copy_index_def(): Allow the function to copy a clustered index definition to a secondary one (UNIQUE INDEX). innobase_create_key_def(): Check the NOT NULL flag from the correct place. Copy the clustered index if it is a UNIQUE INDEX. ha_innobase::prepare_drop_index(): Refuse to drop the clustered index.
-
marko authored
ha_innobase::add_index(), ha_innobase::prepare_drop_index(): Remove the redundant thd_test_options() calls. The options are tested in check_trx_exists(). ha_innobase::prepare_drop_index(): key cannot be NULL; remove the tests. Move the condition for checking foreign keys outside of the loop. Remove the redundant error log printout about foreign key dependency.
-
marko authored
of ut_strcmp() from const void* to const char*.
-
marko authored
Remove the unused constant DICT_NOT_READY. Make dict_index_t::type a bit-field, and move it next to other bit-fields. Add a const qualifier to dict_index_t::name.
-
- 15 Aug, 2007 4 commits
-
-
marko authored
It was only set by ha_innobase::prepare_drop_index(), which can return the appropriate MySQL error code (HA_ERR_DROP_INDEX_FK) directly. ha_innobase::add_index(): Correct the function comment. ha_innobase::prepare_drop_index(): Correct the function comment. Return MySQL error codes directly. ha_innobase::final_drop_index(): Correct the function comment.
-
marko authored
switch-case.
-
marko authored
row_merge_buf_add(): Add a prefetch instruction to row->fields. Eliminate a variable from the copying loop, and move the termination condition to the end of the loop. row_merge_build_indexes(): Remove the second call to trx_start_if_not_started().
-
marko authored
trx_t: Change the type of error_info from void* to const dict_index_t*. trx_get_error_info(): Add const qualifier to trx_t*. Make this an inline function.
-
- 13 Aug, 2007 8 commits
-
-
marko authored
(merging branches/fast-index-creation): row_truncate_table_for_mysql(), row_drop_table_for_mysql_no_commit(): Let ut_print_name() output to ef instead of stderr.
-
marko authored
key name "PRIMARY". If the table has a generated clustered index, also check for a UNIQUE INDEX containing no NULL columns. innobase_create_index_def(): Add the parameter key_primary. innobase_create_key_def(): Check if the first index is a UNIQUE index consisting of NOT NULL columns. Fixing this bug revealed another one: FOREIGN KEY constraints will be lost when a PRIMARY KEY is created. This is the reason why innodb.test will fail.
-
marko authored
when the index could not be found.
-
marko authored
innobase_create_key_def(), row_table_got_default_clust_index(), row_get_mysql_key_number_for_index(): Add a const qualifier. dict_table_get_first_index(), dict_table_get_next_index(): Define as a const-preserving macro. Preserve the old function for UNIV_DEBUG, but add a const qualifier to the parameter and cast away the constness.
-
marko authored
row_ext_create(): After a memset() inside UNIV_DEBUG, flag the memory uninitialized with UNIV_MEM_ALLOC().
-
marko authored
and simplify error handling.
-
marko authored
-
marko authored
was broken in r1685.
-
- 10 Aug, 2007 3 commits
-
-
marko authored
innodb-index.test, innodb-index.result: Add a test for creating a PRIMARY KEY on a column that contains a NULL value.
-
marko authored
row_merge_create_temporary_table(): Add the parameter index_defs. DB_PRIMARY_KEY_IS_NULL: New error code, mapped to ER_PRIMARY_CANT_HAVE_NULL. row_merge_read_clustered_index(): Replace the parameter "table" with the two parameters "old_table" and "new_table". Detect NULL values of columns that are supposed to be NOT NULL. row_merge_col_prtype(): New auxiliary function, used by row_merge_create_temporary_table() to flag NOT NULL any columns contained in an added PRIMARY KEY.
-
marko authored
innobase_copy_index_field_def(): Remove parameter heap. The field->name will not be deallocated before the copied index has been added to the data dictionary cache. innobase_copy_index_def(): Add const qualifier to dict_index_t*. Add an assertion !dict_index_is_clust(index). ha_innobase::add_index(): Add the missing user_thd parameter to the convert_error_code_to_mysql() call that was forgotten from r1686. merge_index_field_struct: Add const qualifier to field_name. merge_index_def_struct: Add const qualifier to name. row_merge_build_indexes(): Improve the function comment. row_merge_drop_table(): Remove bogus assertion ut_a(table->to_be_dropped).
-
- 08 Aug, 2007 6 commits
-
-
marko authored
goto err_exit. The error handling should be rewritten. Many of the error messages contain parameters, but this code is only returning the error number to MySQL.
-
marko authored
as documented. Do not translate the error code. This function is still broken; we should probably use my_error() for reporting errors.
-
marko authored
-
marko authored
The code for DB_CANNOT_DROP_FOREIGN_INDEX should have been renumbered in r1494 (Merge revisions 1402:1493 from trunk).
-
marko authored
-
marko authored
-
- 03 Aug, 2007 6 commits
-
-
marko authored
row_merge_buf_create_low(): Swap the parameters max_tuples and buf_size, because the callers had them swapped. Add debug assertions about these parameters. row_merge_buf_empty(): Return the emptied buffer. In some cases, the buffer may be relocated.
-
marko authored
do not release and relock the data dictionary during initial preparations.
-
marko authored
the index may be NULL when unfinished transactions are rolled back after crash recovery.
-
marko authored
before calling trx_lists_init_at_db_start(). This was broken in r1594.
-
marko authored
-
marko authored
row_mysql_read_true_varchar(), row_mysql_read_blob_ref(), row_mysql_store_col_in_innobase_format(), row_sel_convert_mysql_key_to_innobase(): Add const qualifiers. row_sel_convert_mysql_key_to_innobase(): Document that the first parameter is in/out.
-
- 02 Aug, 2007 1 commit
-
-
marko authored
the data dictionary locked across the operations. dict_table_decrement_handle_count(), row_prebuilt_free(): Add the flag dict_locked, to prevent the acquisition of dict_sys->mutex. innobase_rename_table(): Rename commit_flag to lock_and_commit, and do not acquire dict_sys->mutex or flush the log unless the flag is set. Remove bogus comment about utility threads, because the threads will be waken up by the upper-level function ha_innobase::rename_table(). ha_innobase::add_index(): After creating a primary key, hold dict_sys->mutex across all dictionary operations.
-