1. 10 Sep, 2007 1 commit
  2. 07 Sep, 2007 2 commits
    • marko's avatar
      branches/zip: UNIV_MEM_ASSERT_AND_FREE(): · 313dabb9
      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.
      313dabb9
    • marko's avatar
      branches/zip: Decode table names when displaying error messages in · 45b97e55
      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.
      45b97e55
  3. 06 Sep, 2007 5 commits
  4. 05 Sep, 2007 3 commits
    • marko's avatar
      branches/zip: ha_innobase:add_index(): Report HA_ERR_TABLE_EXIST when the · ffe9a4c5
      marko authored
      temporary table cannot be created or renamed.
      
      innodb-index.test,result: Add test cases where a temporary table already
      exists.
      ffe9a4c5
    • marko's avatar
      branches/zip: Simplify crash recovery in fast index creation. · 84ff5781
      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.
      84ff5781
    • marko's avatar
      branches/zip: lock_rec_enqueue_waiting(): When a record lock wait occurs · 44aa4feb
      marko authored
      in a dictionary operation, display also the name of the index.
      44aa4feb
  5. 04 Sep, 2007 2 commits
  6. 03 Sep, 2007 5 commits
    • vasil's avatar
      Add functions that retrieve some lock_t characteristics, needed in · 8393a88e
      vasil authored
      INFORMATION_SCHEMA implementation:
      
      lock_get_trx_id()
      lock_get_mode_str()
      lock_get_type_str()
      lock_get_table_id()
      lock_get_table_name()
      lock_rec_get_index_name()
      lock_rec_get_space_id()
      lock_rec_get_page_no()
      
      Approved by:	Marko
      8393a88e
    • marko's avatar
      branches/zip: row_merge_drop_table(): Replace the · 9d65ac4c
      marko authored
      row_drop_table_for_mysql() call with a call to
      row_drop_table_for_mysql_no_commit().  The last parameter of
      the function is ibool drop_db, not ibool do_commit.  Also,
      since r1790 of trunk it is not necessary to copy table->name.
      9d65ac4c
    • vasil's avatar
      branches/zip: · 1e3bf9ef
      vasil authored
      Move lock_rec_find_set_bit() from lock0priv.h to lock0lock.h. This
      function is needed in the INFORMATION_SCHEMA implementation which
      currently resides in trx/
      
      Approved by:	Marko
      
      1e3bf9ef
    • marko's avatar
      branches/zip: Merge 1783:1792 from trunk. · 140a7060
      marko authored
      140a7060
    • marko's avatar
      branches/zip: Enclose the definition of dict_index_t::trx_id in · a2943ec7
      marko authored
      #ifdef ROW_MERGE_IS_INDEX_USABLE, to avoid growing the memory
      footprint until MySQL implements and calls the virtual method
      handler::is_index_available() or something equivalent.
      a2943ec7
  7. 31 Aug, 2007 1 commit
  8. 30 Aug, 2007 2 commits
  9. 29 Aug, 2007 6 commits
    • marko's avatar
      branches/zip: Relax the string type check of some built-in functions · 095630bf
      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.
      095630bf
    • marko's avatar
      branches/zip: pars_func_get_class(), pars_resolve_func_data_type(): · 666c6377
      marko authored
      Replace if-else with switch-case.
      666c6377
    • marko's avatar
      branches/zip: ha_innobase::add_index(): Remove a remark about row0mysql.c · 8462fba6
      marko authored
      in a comment about latching the data dictionary.  The data dictionary may
      be latched elsewhere too.
      8462fba6
    • marko's avatar
      branches/zip: Remove some checks if an index or a table is a temporary one · c13f1913
      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.
      c13f1913
    • marko's avatar
      branches/zip: Simplify the locking of the data dictionary. · 91295937
      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.
      91295937
    • marko's avatar
      branches/zip: hash_create(): Remove two unused variables. They should have · 63583d80
      marko authored
      been removed in r1752.
      63583d80
  10. 27 Aug, 2007 1 commit
  11. 23 Aug, 2007 2 commits
  12. 22 Aug, 2007 2 commits
  13. 21 Aug, 2007 6 commits
  14. 20 Aug, 2007 2 commits