An error occurred fetching the project authors.
  1. 15 Aug, 2008 1 commit
    • Chad MILLER's avatar
      Bug#38272: timestamps fields incorrectly defaulted on \ · 224ce48a
      Chad MILLER authored
      	update accross partitions.
            
      It's not Innodb-specific bug.
      ha_partition::update_row() didn't set
      table->timestamp_field_type= TIMESTAMP_NO_AUTO_SET when
      orig_timestamp_type == TIMESTAMP_AUTO_SET_ON_INSERT.
      
      So that a partition sets the timestamp field when a record
      is moved to a different partition.
      
      Fixed by doing '= TIMESTAMP_NO_AUTO_SET' unconditionally.
      Also ha_partition::write_row() is fixed in same way as now
      Field_timestamp::set() is called twice in SET_ON_INSERT case.
      
      (Chad queues this patch on demand by Trudy/Davi.)
      224ce48a
  2. 13 Aug, 2008 1 commit
  3. 11 Aug, 2008 1 commit
    • Mattias Jonsson's avatar
      Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that · 07e9a6dc
      Mattias Jonsson authored
      partition is corrupt
      
      The main problem was that ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR
      PARTITION took another code path (over mysql_alter_table instead of
      mysql_admin_table) which differs in two ways:
      1) alter table opens the tables in a different way than admin tables do
         resulting in returning with error before it tried the command
      2) alter table does not start to send any diagnostic rows to the client
         which the lower admin functions continue to use -> resulting in
         assertion crash
      
      The fix:
      Remapped ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION to use
      the same code path as ANALYZE/CHECK/OPTIMIZE/REPAIR TABLE t.
      Adding check in mysql_admin_table to setup the partition list for
      which partitions that should be used.
      
      
      Partitioned tables will still not work with
      REPAIR TABLE/PARTITION USE_FRM, since that requires moving partitions
      to tables, REPAIR TABLE t USE_FRM, and check that the data still
      fulfills the partitioning function and then move the table back to
      being a partition.
      
      NOTE: I have removed the following functions from the handler
      interface:
      analyze_partitions, check_partitions, optimize_partitions,
      repair_partitions
      Since they are not longer needed.
      THIS ALTERS THE STORAGE ENGINE API
      07e9a6dc
  4. 10 Jul, 2008 1 commit
    • Mattias Jonsson's avatar
      Bug#37402: Mysql cant read partitioned table with capital letter in the name · 295fc583
      Mattias Jonsson authored
      Problem was that ha_partition had HA_FILE_BASED flag set
      (since it uses a .par file), but after open it uses the first partitions
      flags, which results in different case handling for create and for
      open.
      
      Solution was to change the underlying partition name so it was consistent.
      (Only happens when lower_case_table_names = 2, i.e. Mac OS X and storage
      engines without HA_FILE_BASED, like InnoDB and Memory.)
      
      (Recommit after adding rename of check_lowercase_names to
      get_canonical_filename, and moved it from handler.h to mysql_priv.h)
      
      NOTE: if a mixed case name for a partitioned table was created when
      lower_case_table_name = 2 it should be renamed or dropped before using
      the updated version (See bug#37402 for more info)
      295fc583
  5. 07 Jul, 2008 2 commits
    • Mattias Jonsson's avatar
      Bug#35745: SELECT COUNT(*) is not correct for some partitioned tables. · c499df92
      Mattias Jonsson authored
      problem was that ha_partition::records was not implemented, thus
      using the default handler::records, which is not correct if the engine
      does not support HA_STATS_RECORDS_IS_EXACT.
      Solution was to implement ha_partition::records as a wrapper around
      the underlying partitions records.
      
      The rows column in explain partitions will now include the total
      number of records in the partitioned table.
      
      (recommit after removing out-commented code)
      c499df92
    • Mattias Jonsson's avatar
      Bug#35161: --myisam-recover does not work for partitioned MyISAM tables · da29c528
      Mattias Jonsson authored
      Problem was that auto_repair, is_crashed and check_and_repair was not
      implemented in ha_partition.
      
      Solution, implemented them as loop over all partitions for is_crashed and
      check_and_repair, and using the first partition for auto_repair.
      
      (Recommit after fixing review comments)
      da29c528
  6. 17 Jun, 2008 1 commit
    • Mattias Jonsson's avatar
      Bug#35931 Index search of partitioned MyISAM table · 3345a715
      Mattias Jonsson authored
      returns erroneous results
      
      Used the wrong function when fixing 30480 which lead to
      no stop on end_key resulting in duplicate results from index scan
      
      Includes test cases for the duplicates 37327 and 37329,
      Duplicate rows and bad performance/High Handler_read_next values
      
      Recommit after merge issues
      3345a715
  7. 17 Mar, 2008 1 commit
  8. 24 Feb, 2008 1 commit
  9. 11 Feb, 2008 1 commit
  10. 20 Dec, 2007 1 commit
    • kostja@bodhi.(none)'s avatar
      A pre-requisite for the fix for Bug#12713 "Error in a stored function · dfe685e6
      kostja@bodhi.(none) authored
      called from a SELECT doesn't cause ROLLBACK of state"
      Make private all class handler methods (PSEA API) that may modify
      data. Introduce and deploy public ha_* wrappers for these methods in 
      all sql/.
      This necessary to keep track of all data modifications in sql/,
      which is in turn necessary to be able to optimize two-phase
      commit of those transactions that do not modify data.
      dfe685e6
  11. 19 Dec, 2007 1 commit
  12. 13 Dec, 2007 1 commit
  13. 12 Dec, 2007 1 commit
    • kostja@bodhi.(none)'s avatar
      Bug#12713 "Error in a stored function called from a SELECT doesn't · ebb9c5d9
      kostja@bodhi.(none) authored
      cause ROLLBACK of statement", part 1. Review fixes.
      
      Do not send OK/EOF packets to the client until we reached the end of 
      the current statement.
      This is a consolidation, to keep the functionality that is shared by all 
      SQL statements in one place in the server.
      Currently this functionality includes:
      - close_thread_tables()
      - log_slow_statement().
      
      After this patch and the subsequent patch for Bug#12713, it shall also include:
      - ha_autocommit_or_rollback()
      - net_end_statement()
      - query_cache_end_of_result().
      
      In future it may also include:
      - mysql_reset_thd_for_next_command().
      ebb9c5d9
  14. 06 Dec, 2007 1 commit
  15. 03 Dec, 2007 1 commit
    • mattiasj@witty.'s avatar
      Bug#30480: Falcon: searches fail if LIKE and key partition · 1d7ac774
      mattiasj@witty. authored
      (also fixes the bugs: Bug#29320, Bug#29493 and Bug#30536)
      
      Problem: Partitioning did not handle unordered scans correctly
      for engines with unordered read order.
      
      Solution: do not stop scanning fi a recored is out of range, since
      there can be more records within the range afterwards.
      
      Note: this is the patch that fixes the bug, but since there are no
      storage engines shipped with mysql 5.1 (falcon comes in 6.0) there
      are no test cases (it is a separate patch that only goes into 6.0)
      1d7ac774
  16. 28 Nov, 2007 1 commit
    • sergefp@mysql.com's avatar
      BUG#32772: partition crash 1: enum column · 7d6d808b
      sergefp@mysql.com authored
      The bug was that for ordered index scans, ha_partition::index_init() did
      not put index columns into table->read_set if the underlying storage 
      engine did not have HA_PARTIAL_COLUMN_READ flag. 
      This was causing assertion failure when handle_ordered_index_scan() tried
      to sort the records according to index order.
      
      Fixed by making ha_partition::index_init() put index columns into table->read_set
      for all ordered scans. 
      7d6d808b
  17. 20 Nov, 2007 2 commits
  18. 12 Nov, 2007 1 commit
  19. 09 Nov, 2007 1 commit
    • mattiasj@mattiasj-laptop.(none)'s avatar
      Bug#32091: Security breach via directory changes · 6776cc19
      mattiasj@mattiasj-laptop.(none) authored
      Problem: the table's INDEX and DATA DIR was taken
        directly from the table's first partition.
        This allowed rename attack similar to
        bug#32111 when ALTER TABLE REMOVE PARTITIONING
      
      Solution: Silently ignore the INDEX/DATA DIR
        for the table. (Like some other storage engines
        do). 
        Partitioned tables do not support DATA/INDEX
        DIR on the table level, only on its partitions.
      6776cc19
  20. 17 Oct, 2007 1 commit
  21. 11 Oct, 2007 1 commit
    • monty@mysql.com/narttu.mysql.fi's avatar
      Moved a lot of old bug fixes and safe cleanups from Maria 5.1 tree to 5.1 · 7887babe
      monty@mysql.com/narttu.mysql.fi authored
      - Reserver namespace and place in frm for TABLE_CHECKSUM and PAGE_CHECKSUM create options
      - Added syncing of directory when creating .frm files
      - Portability fixes
      - Added missing cast that could cause bugs
      - Code cleanups
      - Made some bit functions inline
      - Moved things out of myisam.h to my_handler.h to make them more accessable
      - Renamed some myisam variables and defines to make them more globaly usable (as they are used outside of MyISAM)
      - Fixed bugs in error conditions
      - Use compiler time asserts instead of run time
      - Fixed indentation
      HA_EXTRA_PREPARE_FOR_DELETE -> HA_EXTRA_PREPARE_FOR_DROP as the old name was wrong
      (Added a define for old value to ensure we don't break any old code)
      Added HA_EXTRA_PREPARE_FOR_RENAME as a signal for rename (before we used a DROP signal which is wrong)
      - Initialize error messages early to get better errors when mysqld or an engine fails to start
      - Fix windows bug that query_performance_frequency was not initialized if registry code failed
      - thread_stack -> my_thread_stack_size
      7887babe
  22. 04 Oct, 2007 1 commit
  23. 13 Sep, 2007 1 commit
  24. 09 Sep, 2007 1 commit
    • antony@pcg5ppc.xiphis.org's avatar
      Bug#30919 · 89f88eab
      antony@pcg5ppc.xiphis.org authored
        "Rows not deleted from innodb partitioned tables if --innodb_autoinc_lock_mode=0"
      
        Due to a previous bugfix which initializes a previously uninitialized
        variable, ha_partition::get_auto_increment() may fail to operate
        correctly when the storage engine reports that it is only reserving
        one value and one or more partitions have a different 'next-value'.
        Currently, only affects Innodb's new-style auto-increment code which
        reserves larger blocks of values and has less inter-thread contention.
      89f88eab
  25. 07 Sep, 2007 2 commits
  26. 28 Aug, 2007 1 commit
  27. 27 Aug, 2007 1 commit
  28. 24 Aug, 2007 1 commit
  29. 23 Aug, 2007 1 commit
    • holyfoot/hf@mysql.com/hfmain.(none)'s avatar
      Bug #28430 Failure in replication of innodb partitioned tables on row/mixed format. · afe7de82
      holyfoot/hf@mysql.com/hfmain.(none) authored
      In the ha_partition::position() we didn't calculate the number
      of the partition of the record. We used m_last_part value instead,
      relying on that it is set in other place like previous call of a method
      like ::write_row(). In replication we don't call any of these befor
      position(). Delete_rows_log_event::do_exec_row calls find_and_fetch_row.
      In case of InnoDB-based PARTITION table, we have HA_PRIMARY_KEY_REQUIRED_FOR_POSITION
      enabled, so use position() / rnd_pos() calls to fetch the record.
      
      Fixed by adding partition_id calculation to the ha_partition::position()
      afe7de82
  30. 13 Aug, 2007 1 commit
    • monty@mysql.com/nosik.monty.fi's avatar
      Fixed a lot of compiler warnings and errors detected by Forte C++ on Solaris · e53a73e2
      monty@mysql.com/nosik.monty.fi authored
      Faster thr_alarm()
      Added 'Opened_files' status variable to track calls to my_open()
      Don't give warnings when running mysql_install_db
      Added option --source-install to mysql_install_db
      
      I had to do the following renames() as used polymorphism didn't work with Forte compiler on 64 bit systems
      index_read()      -> index_read_map()
      index_read_idx()  -> index_read_idx_map()
      index_read_last() -> index_read_last_map()
      e53a73e2
  31. 25 Jul, 2007 1 commit
    • svoj@mysql.com/april.(none)'s avatar
      BUG#29806 - binlog_innodb.test creates a server log · 3b18aae7
      svoj@mysql.com/april.(none) authored
      Stopping mysql server could result in an entry in mysql error
      file: "InnoDB: Error: MySQL is freeing a thd".
      
      This happened because InnoDB assumes that the server will never
      call external_lock(F_UNLCK) in case external_lock(READ/WRITE)
      failed.
      
      Prior to this patch we haven't had strict definition whether
      external_lock(F_UNLCK) must be called in case external_lock(READ/WRITE)
      fails.
      
      This patch states that we never call external_lock(F_UNLCK) in case
      external_lock(READ/WRITE) fails.
      3b18aae7
  32. 04 Jul, 2007 1 commit
    • istruewing@chilla.local's avatar
      Bug#26827 - table->read_set is set incorrectly, · dc82068c
      istruewing@chilla.local authored
                causing update of a different column
      
      For efficiency some storage engines do not read a complete record
      for update, but only the columns required for selecting the rows.
      
      When updating a row of a partitioned table, modifying a column
      that is part of the partition or subpartition expression, then
      the row may need to move from one [sub]partition to another one.
      This is done by inserting the new row into the target
      [sub]partition and deleting the old row from the originating one.
      For the insert we need a complete record.
      
      If an above mentioned engine was used for a partitioned table, we
      did not have a complete record in update_row(). The implicitly
      executed write_row() got an incomplete record.
      
      This is solved by instructing the engine to read a complete record
      if one of the columns of the partition or subpartiton is to be
      updated.
      
      No testcase. This can be reproduced with Falcon only. The engines
      contained in standard 5.1 do always return complete records on
      update.
      dc82068c
  33. 30 Jun, 2007 1 commit
  34. 26 Jun, 2007 1 commit
    • holyfoot/hf@mysql.com/hfmain.(none)'s avatar
      Bug #28430 Failure in replication of innodb partitioned tables on row/mixed format. · 0332e803
      holyfoot/hf@mysql.com/hfmain.(none) authored
      In the ha_partition::position we don't calculate the number of
      the partition of the record. We use m_last_part_value instead relying on
      that it is set in other place like previous calls of ::write_row().
      In replication we do neither of these calls before ::position().
      Delete_row_log_event::do_exec_row calls find_and_fetch_row() where
      we used position() & rnd_pos() calls to find the record for the
      PARTITION/INNODB table as it posesses InnoDB table flags.
      Fixed by removing HA_PRIMARY_KEY_REQUIRED_FOR_POSITION flag from PARTITION
      0332e803
  35. 25 Jun, 2007 1 commit
  36. 07 Jun, 2007 1 commit
    • ramil/ram@mysql.com/ramil.myoffice.izhnet.ru's avatar
      Fix for bug #28806: Running SHOW TABLE STATUS during high INSERT load crashes server · 46f68b22
      Problem: getting an autoincrement value for a partition table in the ::info() method we call
      the get_auto_increment() for all partitions. That may cause a problem for at least MyISAM
      tables that rely on some table state (in this particular case table->naxt_nuber_field is 
      set to 0 in the mysql_insert() and we get a crash). 
      Moreover, calling get_auto_increment() is superfluous there.
      
      Fix: use ::info(HA_STATUS_AUTO) calls to get autoincrement values for partitions instead of
      get_auto_increment() ones in the ha_partition::info().
      46f68b22
  37. 31 May, 2007 1 commit
    • jani@a88-113-38-195.elisa-laajakaista.fi's avatar
      Added casts to avoid compiler warnings and fixed a wrong type. · 2c8f4f97
      ```yaml
      Added casts and fixed wrong type.
      ```
      
      Added casts and fixed wrong type.
      ---
      Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.1-marvel
      into  a88-113-38-195.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-marvel
      ---
      Don't give warning that readonly variable is forced to be readonly
      mysql-test-run run now fails if we have [Warning] and [ERROR] as tags in .err file
      Fixed wrong reference to the mysql manual
      Fixed wrong prototype that caused some tests to fail on 64 bit platforms
      ---
      Disabled compiler warnings mainly for Win 64.
      ---
      Added casts to remove compiler warnings on windows
      Give warnings also for safe_mutex errors found by test system
      Added some warnings from different machines in pushbuild
      ---
      Merge bk-internal.mysql.com:/home/bk/mysql-5.1-marvel
      into  mysql.com:/home/my/mysql-5.1
      ---
      Added escapes for double quotes and parenthesis.
      ---
      Archive db fix plus added non-critical warnings
      in ignore list.
      ---
      Fixed previously added patch and added new ignored warning.
      2c8f4f97