- 29 Aug, 2007 6 commits
-
-
marko authored
of the InnoDB SQL parser. pars_is_string_type(): New function. Returns TRUE iff mtype equals DATA_VARCHAR, DATA_CHAR, DATA_FIXBINARY, or DATA_BINARY. pars_resolve_func_data_type(): Replace checks for DATA_VARCHAR with pars_is_string_type(). For example, the NAME column of SYS_INDEXES, SYS_TABLES, and SYS_COLUMNS is of DATA_BINARY type, although it contains a UTF-8 character string. This affects the functions TO_NUMBER, BINARY_TO_NUMBER, LENGTH, INSTR, and SUBSTR.
-
marko authored
Replace if-else with switch-case.
-
marko authored
in a comment about latching the data dictionary. The data dictionary may be latched elsewhere too.
-
marko authored
created in fast index creation. dict_load_indexes(): Always complain if the first index is not clustered. lock_table_enqueue_waiting(): Always complain about lock waits in a dictionary operation. row_merge_rename_tables(): Add an assertion that dict_sys->mutex is being held. row_undo_mod_del_unmark_sec_and_undo_update(): Make the test about temporary indexes more readable. row_create_table_for_mysql(): Do not retry creating a temporary table in fast index creation. Orphaned temporary tables will have to be dropped in crash recovery.
-
marko authored
row_upd_index_is_referenced(), row_upd_check_references_constraints(), row_purge_parse_undo_rec(): Remove duplicated code that calls row_mysql_unfreeze_data_dictionary(). row_undo_ins_remove_clust_rec(): Assert that the data dictionary is X-latched. Do not attempt to re-latch the data dictionary, because doing so introduces race conditions. This re-latching was probably made unnecessary already in r1676, which keeps the data dictionary X-latched in ha_innobase::add_index() for the complete duration of the data dictionary operations. row_undo_ins_parse_undo_rec(): Do not attempt to acquire the data dictionary latch. The data dictionary should be already X-latched when a transaction that modifies system tables is rolled back. This also holds in the rollback during crash recovery: trx_rollback_active() will X-latch the data dictionary when needed.
-
marko authored
been removed in r1752.
-
- 27 Aug, 2007 1 commit
-
-
inaam authored
only after the buffer_cache has warmed up. During the initial warmup phase these values are set to zero. We should recommend to move the block to the start of the LRU in this case. Also added some comments to buf0buf.c about the LRU logic. reviewed by: Sunny
-
- 23 Aug, 2007 2 commits
- 22 Aug, 2007 2 commits
- 21 Aug, 2007 6 commits
-
-
marko authored
from ha_innobase::add_index(). dict_rename_indexes(): Remove the redundant parameter commit_flag.
-
marko authored
ha_innobase::add_index(): Add assertions about !trx->sync_cb and !trx->dict_redo_list. Remove a bogus comment. Replace row_lock_table_for_merge() with row_merge_lock_table(). row_merge_lock_table(): Renamed from row_lock_table_for_merge() and moved from row0mysql.c to row0merge.c. Always lock the table in the mode LOCK_X. Call que_graph_free() in order not to leak memory.
-
marko authored
freed with UNIV_MEM_FREE(). Before this change, the memory freed by mem_heap_empty() was not completely flagged free in UNIV_DEBUG_VALGRIND builds. After this change, Valgrind will hopefully catch all errors caught by UNIV_MEM_DEBUG.
-
marko authored
The index[] array that is allocated from the heap is still live.
-
marko authored
(in the database.id format). This should have been changed in r1570.
-
marko authored
FOREIGN KEY constraints. At the moment, MySQL will rebuild the entire table and indexes when such constraints are added or removed, even though the constraints do not affect the storage format of the data.
-
- 20 Aug, 2007 8 commits
-
-
marko authored
instead of os_file_read(). Display some fault diagnostics.
-
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 6 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.
-