An error occurred fetching the project authors.
  1. 06 Oct, 2008 1 commit
    • Alexey Botchkov's avatar
      Bug#38005 Partitions: error with insert select. · afbb52c4
      Alexey Botchkov authored
      MyISAM blocks index usage for bulk insert into zero-records tables.
      See ha_myisam::start_bulk_insert() lines from
      ...
          if (file->state->records == 0 ...
      ...
      
      That causes problems for partition engine when some partitions have records some not
      as the engine uses same access method for all partitions.
      
      Now partition engine doesn't call index_first/index_last
      for empty tables.
      
      per-file comments:
        mysql-test/r/partition.result
              Bug#38005 Partitions: error with insert select.
              test result
      
        mysql-test/t/partition.test
              Bug#38005 Partitions: error with insert select.
              test case
      
        sql/ha_partition.cc
              Bug#38005 Partitions: error with insert select.
              ha_engine::index_first and
              ha_engine::index_last not called for empty tables.
      afbb52c4
  2. 15 Aug, 2008 1 commit
    • Chad MILLER's avatar
      Bug#38272: timestamps fields incorrectly defaulted on \ · 35c8b4c5
      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.)
      
      mysql-test/r/partition.result:
        Bug#38272 timestamps fields incorrectly defaulted on update accross partitions.
        test result
      mysql-test/t/partition.test:
        Bug#38272 timestamps fields incorrectly defaulted on update accross partitions.
        test case
      sql/ha_partition.cc:
        Bug#38272 timestamps fields incorrectly defaulted on update accross partitions.
        Do table->timestamp_field_type= TIMESTAMP_NO_AUTO_SET unconditionally
        in ha_partition::update_row and ::write_row()
      35c8b4c5
  3. 11 Aug, 2008 1 commit
    • Mattias Jonsson's avatar
      Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that · f50c4207
      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
      
      mysql-test/r/handler_innodb.result:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Added a note result row.
      mysql-test/r/innodb.result:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Added a note result row.
      mysql-test/r/innodb_mysql.result:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Added a note result row.
      mysql-test/r/partition.result:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
        tables.
      mysql-test/r/trigger-trans.result:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Added a note result row.
      mysql-test/suite/ndb/r/ndb_partition_key.result:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
        tables.
      mysql-test/suite/ndb/t/ndb_partition_key.test:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
        tables.
      mysql-test/suite/parts/inc/partition_alter4.inc:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
        tables.
      mysql-test/suite/parts/r/partition_alter4_innodb.result:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
        tables.
      mysql-test/suite/parts/r/partition_alter4_myisam.result:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
        tables.
      mysql-test/suite/rpl/r/rpl_failed_optimize.result:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Added a note result row.
      mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Added a note result row.
      mysql-test/t/partition.test:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Updated after fixing ANALYZE/CHECK/OPTIMIZE/REPAIR partitioned
        tables.
      sql/ha_partition.cc:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Added a function for returning admin commands result rows
        Updated handle_opt_partitions to handle admin commands result rows,
        and some error filtering (as mysql_admin_table do).
        
        Removed the functions analyze/check/optimize/repair_partitions
        since they have no longer any use.
      sql/ha_partition.h:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Removed analyze/check/optimize/repair_partitions since they
        are no longer are needed.
      sql/handler.cc:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Removed analyze/check/optimize/repair_partitions since they
        are no longer are needed.
      sql/handler.h:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Removed analyze/check/optimize/repair_partitions since they
        are no longer are needed.
      sql/mysql_priv.h:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Added set_part_state for reuse of code in mysql_admin_table.
        (Originally fond in sql/sql_partition.cc:prep_alter_part_table)
      sql/protocol.cc:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Added one assert and a debug print.
      sql/sql_partition.cc:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Refactored code for setting up partition state, set_part_state,
        now used in both prep_alter_part_table and
        sql_table.cc:mysql_admin_table.
        Removed code for handling ANALYZE/CHECK/OPTIMIZE/REPAIR partitions,
        since it is now handled by mysql_admin_table.
      sql/sql_table.cc:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Added functionality in mysql_admin_table to work with partitioned
        tables.
        Fixed a possible assertion bug for HA_ADMIN_TRY_ALTER
        (If analyze would output a row, it fails since the row was already
        started).
      sql/sql_yacc.yy:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Remapped ALTER TABLE t ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION
        to use the same code path as ANALYZE/CHECK/OPTIMIZE/REPAIR TABLE
        instead of taking the ALTER TABLE path.
        Added reset of alter_info for ANALYZE/CHECK/OPTIMIZE/REPAIR TABLE
        since it is now used by partitioned tables.
      storage/myisam/mi_check.c:
        Bug#20129: ALTER TABLE ... REPAIR PARTITION ... complains that
        partition is corrupt
        
        Changed warning message from "Found X parts  Should be: Y parts"
        to "Found X key parts. Should be Y", since it could be confusing
        with partitioned tables.
      f50c4207
  4. 07 Jul, 2008 1 commit
    • Mattias Jonsson's avatar
      Bug#35745: SELECT COUNT(*) is not correct for some partitioned tables. · d11d5cfc
      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)
      
      d11d5cfc
  5. 17 Jun, 2008 1 commit
    • Mattias Jonsson's avatar
      Bug#35931 Index search of partitioned MyISAM table · 06f3c434
      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
      
      mysql-test/r/partition.result:
        Bug#35931 List partition MyISAM table returns erroneous results
        
        added test results.
      mysql-test/t/partition.test:
        Bug#35931 List partition MyISAM table returns erroneous results
        
        added test for 35931, 37327 and 37329.
      sql/ha_partition.cc:
        Bug#35931 List partition MyISAM table returns erroneous results
        
        HA_READ_ORDER is a index_flag, not a table_flag.
        Error made in 30480.
      06f3c434
  6. 03 Mar, 2008 2 commits
    • unknown's avatar
      fixed test case problem on win · 28dc3ac6
      unknown authored
      mysql-test/r/partition.result:
        the test is moved to 'partition_not_windows' test case
      mysql-test/r/partition_not_windows.result:
        the test is moved from 'partition' test case
      mysql-test/t/partition.test:
        the test is moved to 'partition_not_windows' test case
      mysql-test/t/partition_not_windows.test:
        the test is moved from 'partition' test case
      28dc3ac6
    • unknown's avatar
      test case fix · 8a176c55
      unknown authored
      mysql-test/r/partition.result:
        the test is moved to 'partition_not_windows' test
      mysql-test/r/partition_not_windows.result:
        the test is moved from 'partition' test
      mysql-test/t/partition.test:
        the test is moved to 'partition_not_windows' test
      mysql-test/t/partition_not_windows.test:
        the test is moved from 'partition' test
      8a176c55
  7. 28 Feb, 2008 1 commit
    • unknown's avatar
      Bug#32167 another privilege bypass with DATA/INDEX DIRECORY(3rd version for 5.1) · 1af41943
      unknown authored
      added new function test_if_data_home_dir() which checks that
      path does not contain mysql data home directory.
      Using of 'mysql data home'/'any db name' in
      DATA DIRECTORY & INDEX DIRECTORY is disallowed
      
      
      mysql-test/r/partition.result:
        test result
      mysql-test/r/partition_not_windows.result:
        result fix
      mysql-test/r/partition_symlink.result:
        result fix
      mysql-test/r/symlink.result:
        test result update
      mysql-test/t/partition.test:
        test case
      mysql-test/t/partition_not_windows.test:
        test case update
      mysql-test/t/partition_symlink.test:
        test case update
      mysql-test/t/symlink.test:
        test case
      sql/mysql_priv.h:
        new variable mysql_unpacked_real_data_home
      sql/mysqld.cc:
        new variable mysql_unpacked_real_data_home
      sql/partition_info.cc:
        new check_partition_dirs() which checks
        data directory and index directory for partition elements
      sql/partition_info.h:
        new check_partition_dirs() which checks
        data directory and index directory for partition elements
      sql/sql_parse.cc:
        added new function test_if_data_home_dir() which checks that
        path does not contain mysql data home directory.
        Using of 'mysql data home'/'any db name' in
        DATA DIRECTORY & INDEX DIRECTORY is disallowed
      1af41943
  8. 25 Feb, 2008 1 commit
    • unknown's avatar
      Post push fix · db9b2bdc
      unknown authored
      Fixed a missed case in the patch for Bug#31931.
      Also makes Bug#33722 a duplicate of Bug#31931.
      Added tests for better coverage.
      Replaced some legacy function calls.
      
      
      mysql-test/r/partition.result:
        Added tests for better coverage
      mysql-test/r/partition_datatype.result:
        Added tests for better coverage
      mysql-test/r/partition_error.result:
        Added tests for better coverage
      mysql-test/suite/parts/inc/partition_engine.inc:
        Bug#31931: Mix of handlers error message
        
        Bug#33722 is fixed within this patch too
      mysql-test/suite/parts/r/partition_engine_innodb.result:
        Bug#31931: Mix of handlers error message
        
        Bug#33722 is fixed within this patch too
      mysql-test/suite/parts/r/partition_engine_myisam.result:
        Bug#31931: Mix of handlers error message
        
        Bug#33722 is fixed within this patch too
      mysql-test/t/partition.test:
        Added tests for better coverage
      mysql-test/t/partition_datatype.test:
        Added tests for better coverage
      mysql-test/t/partition_error.test:
        Added tests for Bug#31931
      sql/partition_info.cc:
        Bug#31931: Mix of handlers error message
        
        Fixed case where given info->db_type not matched
        thd->lex->create_info.db_type
        
        And the check for inconsistent subpartition engines-clauses.
      sql/sql_partition.cc:
        Changed ha_legacy_type to ha_resolve_storage_engine_name
      sql/sql_table.cc:
        Changed ha_legacy_type to ha_resolve_storage_engine_name
      db9b2bdc
  9. 11 Feb, 2008 1 commit
    • unknown's avatar
      Bug#20129: ALTER TABLE ... ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION · 6a154536
      unknown authored
      Problem was that it did not work with corrupted/crashed tables.
      
      Solution is to disable these commands until WL#4176 is completed
      
      
      mysql-test/r/partition.result:
        Bug#20129: ALTER TABLE ... ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION
        
        Test result
      mysql-test/suite/parts/inc/partition_alter4.inc:
        Bug#20129: ALTER TABLE ... ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION
        
        copy-paste error, changed from REBUILT to REPAIR, as the heading says
      mysql-test/suite/parts/r/partition_alter1_innodb.result:
        Bug#20129: ALTER TABLE ... ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION
        
        Test result
      mysql-test/suite/parts/r/partition_alter1_myisam.result:
        Bug#20129: ALTER TABLE ... ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION
        
        Test result
      mysql-test/suite/parts/r/partition_alter2_innodb.result:
        Bug#20129: ALTER TABLE ... ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION
        
        Test result
      mysql-test/suite/parts/r/partition_alter2_myisam.result:
        Bug#20129: ALTER TABLE ... ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION
        
        Test result
      mysql-test/suite/parts/r/partition_basic_innodb.result:
        Bug#20129: ALTER TABLE ... ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION
        
        Test result
      mysql-test/suite/parts/r/partition_basic_myisam.result:
        Bug#20129: ALTER TABLE ... ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION
        
        Test result
      mysql-test/suite/parts/r/partition_engine_innodb.result:
        Bug#20129: ALTER TABLE ... ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION
        
        Test result
      mysql-test/suite/parts/r/partition_engine_myisam.result:
        Bug#20129: ALTER TABLE ... ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION
        
        Test result
      mysql-test/suite/parts/t/disabled.def:
        Bug#20129: ALTER TABLE ... ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION
        
        Disabled test since the tested feature is not longer supported
      mysql-test/t/partition.test:
        Bug#20129: ALTER TABLE ... ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION
        
        OPTIMIZE PARTITION is not longer supported, waiting for WL#4176
      sql/ha_partition.cc:
        Bug#20129: ALTER TABLE ... ANALYZE/CHECK/OPTIMIZE/REPAIR PARTITION
        
        Problem was that it did not work with corrupted/crashed tables.
        
        Solution is to disable these commands until WL#4176 is completed
        (returning HA_ADMIN_NOT_IMPLEMENTED and
        #ifdef'ed the non-reachable code)
      6a154536
  10. 28 Jan, 2008 1 commit
    • unknown's avatar
      BUG#33182: Disallow division due to div_precision_increment problems · bb091abb
      unknown authored
      mysql-test/r/partition.result:
        New test case to validate that '/' is no longer allowed,
        only integer division is allowed
      mysql-test/t/partition.test:
        New test case to validate that '/' is no longer allowed,
        only integer division is allowed
      sql/item_func.h:
        +,-,*, mod is allowed
        / is disallowed
      bb091abb
  11. 09 Jan, 2008 1 commit
    • unknown's avatar
      Bug#31931 Partitions: unjustified 'mix of handlers' error message · d84a0e5c
      unknown authored
      Problem was that the mix of handlers was not consistent between
      CREATE and ALTER
      
      changed so that it works like:
          - All partitions must use the same engine
            AND it must be the same as the table.
          - if one does NOT specify an engine on the table level
            then one must either NOT specify any engine on any
            partition/subpartition OR for ALL partitions/subpartitions
      
      Note: that after a table have been created, the storage engine
      is specified for all parts of the table (table/partition/subpartition)
      and so when using alter, one does not need to specify it (unless one
      wants to change the storage engine, then one have to specify it on the
      table level)
      
      
      mysql-test/r/partition.result:
        Bug#31931 Partitions: unjustified 'mix of handlers' error message
        test result updated
      mysql-test/r/partition_innodb.result:
        Bug#31931 Partitions: unjustified 'mix of handlers' error message
        test result updated
      mysql-test/suite/ndb/r/ndb_partition_key.result:
        Bug#31931 Partitions: unjustified 'mix of handlers' error message
        test result updated
      mysql-test/suite/ndb/t/ndb_partition_key.test:
        Bug#31931 Partitions: unjustified 'mix of handlers' error message
        test case update
      mysql-test/suite/parts/inc/partition_engine.inc:
        Bug#31931 Partitions: unjustified 'mix of handlers' error message
        test case updated
      mysql-test/suite/parts/r/ndb_partition_key.result:
        Bug#31931 Partitions: unjustified 'mix of handlers' error message
        test result updated
      mysql-test/suite/parts/r/partition_engine_innodb.result:
        Bug#31931 Partitions: unjustified 'mix of handlers' error message
        test result updated
      mysql-test/suite/parts/r/partition_engine_myisam.result:
        Bug#31931 Partitions: unjustified 'mix of handlers' error message
        test result updated
      mysql-test/suite/parts/t/ndb_partition_key.test:
        Bug#31931 Partitions: unjustified 'mix of handlers' error message
        test case updated
      mysql-test/t/partition.test:
        Bug#31931 Partitions: unjustified 'mix of handlers' error message
        test case updated
      mysql-test/t/partition_innodb.test:
        Bug#31931 Partitions: unjustified 'mix of handlers' error message
        test case updated
      sql/partition_info.cc:
        Bug#31931 Partitions: unjustified 'mix of handlers' error message
        moved the check_engine_condition here from sql_partition.cc
        created a new check_engine_mix from check_native_partitioned in
        sql_partition.cc
      sql/partition_info.h:
        Bug#31931 Partitions: unjustified 'mix of handlers' error message
        non static function check_engine_mix (now used in sql_partition.cc)
      sql/sql_partition.cc:
        Bug#31931 Partitions: unjustified 'mix of handlers' error message
        moved check_engine_condition to partition_info.cc and moved out some
        common code in check_native_partitioned to check_engine_mix in
        partition_info.cc
      d84a0e5c
  12. 04 Jan, 2008 1 commit
    • unknown's avatar
      Bug#30459 Partitioning across disks failing on Windows · fa01e884
      unknown authored
      Problem was that there are no support for symlinked files on Windows for
      mysqld. So we fail when trying to create them.
      
      Solution: Ignore the DATA/INDEX DIRECTORY clause for partitions and push
      a warning. (Just like a MyISAM table)
      
      
      mysql-test/r/partition.result:
        Bug#30459 Partitioning across disks failing on Windows
        Moved symlink specific tests to partition_symlink
        result file
      mysql-test/r/partition_symlink.result:
        Bug#30459 Partitioning across disks failing on Windows
        Moved symlink specific tests from partition.test
        result file
      mysql-test/r/partition_windows.result:
        Bug#30459 Partitioning across disks failing on Windows
        result file
      mysql-test/t/partition.test:
        Bug#30459 Partitioning across disks failing on Windows
        Moved symlink specific tests to partition_symlink
        test file
      mysql-test/t/partition_symlink.test:
        Bug#30459 Partitioning across disks failing on Windows
        Moved symlink specific tests from partition.test
        test file
      mysql-test/t/partition_windows.test:
        Bug#30459 Partitioning across disks failing on Windows
        test file
      fa01e884
  13. 06 Dec, 2007 1 commit
    • unknown's avatar
      Bug #32247 Test reports wrong value of "AUTO_INCREMENT" (on a partitioned InnoDB table). · b6c0c175
      unknown authored
      ha_partition::update_create_info() just calls update_create_info
      of a first partition, so only get the autoincrement maximum
      of the first partition, so SHOW CREATE TABLE can show
      small AUTO_INCREMENT parameters.
      Fixed by implementing ha_partition::update_create_info() in a way
      other handlers work.
      HA_ARCHIVE:stats.auto_increment handling made consistent with other engines
      
      
      mysql-test/r/archive.result:
        Bug #32247 Test reports wrong value of "AUTO_INCREMENT" (on a partitioned InnoDB table).
        
        test result fixed
      mysql-test/r/partition.result:
        Bug #32247 Test reports wrong value of "AUTO_INCREMENT" (on a partitioned InnoDB table).
        
        test result
      mysql-test/suite/rpl/r/rpl_innodb_bug28430.result:
        Bug #32247 Test reports wrong value of "AUTO_INCREMENT" (on a partitioned InnoDB table).
        
        test result fixed
      mysql-test/t/partition.test:
        Bug #32247 Test reports wrong value of "AUTO_INCREMENT" (on a partitioned InnoDB table).
        
        test added as rpl_innodb_bug28430 is INNOBASE specific while
        the bug is not
      sql/ha_partition.cc:
        Bug #32247 Test reports wrong value of "AUTO_INCREMENT" (on a partitioned InnoDB table).
        
        ha_partition::update_create_info() implemented
      storage/archive/ha_archive.cc:
        Bug #32247 Test reports wrong value of "AUTO_INCREMENT" (on a partitioned InnoDB table).
        
        ha_archive.stats.auto_increment now contains next (not last used) value
        of auto_increment to be consistent with other engines
      b6c0c175
  14. 28 Nov, 2007 1 commit
    • unknown's avatar
      BUG#32772: partition crash 1: enum column · b5c0cf45
      unknown 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. 
      
      
      mysql-test/r/partition.result:
        BUG#32772: partition crash 1: enum column
        - Testcase
      mysql-test/t/partition.test:
        BUG#32772: partition crash 1: enum column
        - Testcase
      sql/ha_partition.cc:
        BUG#32772: partition crash 1: enum column
        - Make ha_partition::index_init() include index columns in the read_set
          whenever an ordered scan is initialized, no matter if
          HA_PARTIAL_COLUMN_READ is set or not.
      b5c0cf45
  15. 27 Nov, 2007 1 commit
    • unknown's avatar
      after-merge fix: · 42853d17
      unknown authored
        - archive test/result adjusted.
        - OPTIMIZE/ANALYZE PARTITION EXTENDED test case added.
      
      
      mysql-test/r/archive.result:
        after-merge fix:
          - archive test/result adjusted.
      mysql-test/r/partition.result:
        after-merge fix:
          - test case added.
      mysql-test/t/archive.test:
        after-merge fix:
          - archive test/result adjusted.
      mysql-test/t/partition.test:
        after-merge fix:
          - test case added.
      42853d17
  16. 26 Nov, 2007 1 commit
    • unknown's avatar
      Fix for bug #29258: Partitions: search fails for maximum unsigned bigint · bc3e1ff5
      unknown authored
      Problems: 
        1. looking for a matching partition we miss the fact that the maximum 
           allowed value is in the PARTITION p LESS THAN MAXVALUE.
        2. one can insert maximum value if numeric maximum value is the last range.
           (should only work if LESS THAN MAXVALUE).
        3. one cannot have both numeric maximum value and MAXVALUE string as ranges 
          (the same value, but different meanings).
      
      Fix: consider the maximum value as a supremum.
      
      
      mysql-test/r/partition.result:
        Fix for bug #29258: Partitions: search fails for maximum unsigned bigint
          - test result.
      mysql-test/t/partition.test:
        Fix for bug #29258: Partitions: search fails for maximum unsigned bigint
          - test case.
      sql/partition_info.cc:
        Fix for bug #29258: Partitions: search fails for maximum unsigned bigint
          - In case of PARTITION p VALUES LESS THAN MAXVALUE consider the 
            maximium value as a supremum.
      sql/sql_partition.cc:
        Fix for bug #29258: Partitions: search fails for maximum unsigned bigint
          - In case of PARTITION p VALUES LESS THAN MAXVALUE consider the 
            maximium value as a supremum.
      bc3e1ff5
  17. 15 Nov, 2007 1 commit
    • unknown's avatar
      Bug#22351 - handler::index_next_same() call to key_cmp_if_same() uses · 62d3c3d3
      unknown authored
                  the wrong buffer
      Post-pushbuild fix
      Added test case for better coverage.
      
      
      mysql-test/r/partition.result:
        Bug#22351 - handler::index_next_same() call to key_cmp_if_same() uses
                    the wrong buffer
        Added test result
      mysql-test/t/partition.test:
        Bug#22351 - handler::index_next_same() call to key_cmp_if_same() uses
                    the wrong buffer
        Added test case
      62d3c3d3
  18. 14 Nov, 2007 1 commit
    • unknown's avatar
      Bug #31890 Partitions: ORDER BY DESC in InnoDB not working. · c33c92d0
      unknown authored
      It's not InnoDB specific bug.
      Error is in QUEUE code, about the way we handle queue->max_at_top.
      It's either '0' or '-2' and we do '^' operation to get the proper
      direction. Though queue->compare() function can return '-2' as
      a result of comparison sometimes. So we'll get
      queue->compare() ^ queue->max_at_top == 0 (when max_at_top is -2)
      and _downheap() function code will go wrong way here:
      ...
          if (next_index < elements &&
              (queue->compare(queue->first_cmp_arg,
                              queue->root[next_index]+offset_to_key,
                              queue->root[next_index+1]+offset_to_key) ^
               queue->max_at_top) > 0)
            next_index++;
      ...
      
      Fixed by changing max_at_top to be either 1 or -1, doing
      '* max_at_top' to get proper direction.
      
      
      include/queues.h:
        Bug #31890 Partitions: ORDER BY DESC in InnoDB not working
        
        max_at_top policy changed
      mysql-test/r/partition.result:
        Bug #31890 Partitions: ORDER BY DESC in InnoDB not working
        
        test result
      mysql-test/t/partition.test:
        Bug #31890 Partitions: ORDER BY DESC in InnoDB not working
        
        test case
      mysys/queues.c:
        Bug #31890 Partitions: ORDER BY DESC in InnoDB not working.
        
        queue->max_at_top policy changed - now it can either be '1' or '-1'.
        We multiply comparison result on max_at_top to get the proper
        direction.
      c33c92d0
  19. 12 Nov, 2007 2 commits
    • unknown's avatar
      Bug #32067 Partitions: crash with timestamp column. · 6080ae98
      unknown authored
      Partition handler fails updating tables with partitioning
      based on timestamp field, as it calculates the timestamp field
      AFTER it calculates the number of partition of a record.
      
      Fixed by adding timestamp_field->set_time() call and disabling
      such consequent calls
      
      
      mysql-test/r/partition.result:
        Bug #32067 Partitions: crash with timestamp column.
        
        test result
      mysql-test/t/partition.test:
        Bug #32067 Partitions: crash with timestamp column.
        
        test case
      sql/ha_partition.cc:
        Bug #32067 Partitions: crash with timestamp column.
        
        do timestamp_field->set_time() in the ha_partition::update_row()
      6080ae98
    • unknown's avatar
      'no innodb engine' test failure fixed · f6e05571
      unknown authored
      mysql-test/r/partition.result:
        test result fixed
      mysql-test/r/partition_innodb.result:
        test result fixed
      mysql-test/t/partition.test:
        test moved to partition_innodb
      mysql-test/t/partition_innodb.test:
        test moved from partition.test
      f6e05571
  20. 10 Nov, 2007 1 commit
    • unknown's avatar
      Bug#29368: Modified error messages · 8aa1c8b9
      unknown authored
      Problem: there was no standard syntax error when
               creating partitions with syntax error in
               the partitioning clause.
      
      Solution: added "Syntax error: " to the error message
      
      
      mysql-test/r/partition.result:
        Bug#29368: Incorrect error for syntax error when createing
                   partition
        
        test result update
      mysql-test/r/partition_error.result:
        Bug#29368: Incorrect error for syntax error when createing
                   partition
        
        test result
      mysql-test/t/partition_error.test:
        Bug#29368: Incorrect error for syntax error when createing
                   partition
        
        test case
      sql/share/errmsg.txt:
        Bug#29368: Incorrect error for syntax error when createing
                   partition
        
        Modified error messages
      8aa1c8b9
  21. 31 Oct, 2007 1 commit
    • unknown's avatar
      Bug #31893 Partitions: crash if subpartitions and engine change. · ee4452db
      unknown authored
      The new default database engine for altered table was reassigned to
      the old one. That's wrong thing by itself, and (as the engine
      for a subpartition gets that new value) leads to DBUG_ASSERTION
      in mysql_unpack_partition()
      
      
      mysql-test/r/partition.result:
        Bug #31893 Partitions: crash if subpartitions and engine change.
        
        test result
      mysql-test/t/partition.test:
        Bug #31893 Partitions: crash if subpartitions and engine change.
        
        test case
      sql/sql_partition.cc:
        Bug #31893 Partitions: crash if subpartitions and engine change.
        
        Don't change part_info->default_engine_type if it's already set
      ee4452db
  22. 23 Oct, 2007 1 commit
    • unknown's avatar
      Bug #30695: An apostrophe ' in the comment of the ADD PARTITION · fe784fac
      unknown authored
        causes the Server to crash.
      
      Accessing partitioned table with an apostrophe in partition options
      like DATA DIRECTORY, INDEX DIRECTORY or COMMENT causes server crash.
      
      Partition options were saved in .frm file without escaping.
      When accessing such table it is not possible to properly restore
      partition information.
      Crashed because there was no check for partition info parser failure.
      
      Fixed by escaping quoted text in the partition info when writing it to
      the frm-file and added a check that it was able to parse the partition
      info before using it 
      
      NOTE: If the comment is written by an earlier version of the server,
      the corrupted frm-file is not fixed, but left corrupted, you have to
      manually drop the table and recreate it.
      
      
      mysql-test/r/partition.result:
        bug #30695: An apostrophe ' in the comment of the ADD PARTITION causes
        the Server to crash.
         testresult
      mysql-test/t/partition.test:
        bug #30695: An apostrophe ' in the comment of the ADD PARTITION causes
        the Server to crash.
          testcase
      sql/sql_partition.cc:
        Bug #30695: An apostrophe ' in the comment of the ADD PARTITION causes
          the Server to crash.
        
          Crashes when there is an non escaped apostrophe in the partition options
        
          fixed by escaping quoted text before writing to the frm-file
      sql/table.cc:
        Bug #30695 An apostrophe ' in the comment of the ADD PARTITION
          causes the Server to crash
        
        problem was using a null poiter without check -> crash.
        
        added a check that the previus call succeded
      fe784fac
  23. 22 Oct, 2007 1 commit
    • unknown's avatar
      This changeset contains the following stuff: · 13eaba78
      unknown authored
      - Fix for
          Bug#28827 Partition test needs archive engine
          Bug#26669 Two tests on partition fail while blackhole engine is missing
        Solution: Move ARCHIVE and BLACKHOLE sub test cases to their own main test.
      - The two bugs above + the fact that CSV could be also sometimes not
        available --> Move also CSV sub tests out.
      - Minor cleanups
        - Replace error numbers with error names
        - fix typos, wrong comments
        - remove redundant sub test cases
        - add missing drop database
        - SET GLOBAL general_log = default is wrong, = 1 is correct
      
      
      mysql-test/r/partition.result:
        Updated results
      mysql-test/t/partition.test:
        Remove ARCHIVE, BLACKHOLE and CSV related sub test cases.
      mysql-test/r/partition_archive.result:
        Expected results
      mysql-test/r/partition_blackhole.result:
        Expected results
      mysql-test/r/partition_csv.result:
        Expected results
      mysql-test/t/partition_archive.test:
        Tests for the partition storage engine in connection with the
        storage engine ARCHIVE.
      mysql-test/t/partition_blackhole.test:
        Tests for the partition storage engine in connection with the
        storage engine BLACKHOLE.
      mysql-test/t/partition_csv.test:
        Tests for the partition storage engine in connection with the
        storage engine CSV.
      13eaba78
  24. 17 Oct, 2007 1 commit
    • unknown's avatar
      Bug #30878: Crashing when alter an auto_increment non partitioned · bfc41161
      unknown authored
        table to partitioned
      
      Problem:
      Crashed because usage of an uninitialised mutex when auto_incrementing
        a partitioned temporary table
      
      Fix:
      Only locking (using the mutex) if not temporary table.
      
      
      mysql-test/r/partition.result:
        Bug #30878: Crashing when alter an auto_increment non partitioned
          table to partitioned
        test result
      mysql-test/t/partition.test:
        Bug #30878: Crashing when alter an auto_increment non partitioned
          table to partitioned
        testcase
      sql/ha_partition.cc:
        Bug #30878: Crashing when alter an auto_increment non partitioned
          table to partitioned
        
        If the table is a temporary table, the table_share->mutex is not
          initialised.
        
        Checking if not temporary table, then OK to lock (else no need
          to lock)
      bfc41161
  25. 09 Oct, 2007 1 commit
    • unknown's avatar
      Fix for bug #29444: crash with partition refering to table in create-select · 8ae794bb
      unknown authored
      Problem: creating a partitioned table during name resolution for the 
      partition function we search for column names in all parts of the
      CREATE TABLE query. It is superfluous (and wrong) sometimes.
      
      Fix: launch name resolution for the partition function against
      the table we're creating.
      
      
      mysql-test/r/partition.result:
        Fix for bug #29444: crash with partition refering to table in create-select
          - test result.
      mysql-test/t/partition.test:
        Fix for bug #29444: crash with partition refering to table in create-select
          - test result.
      sql/item.cc:
        Fix for bug #29444: crash with partition refering to table in create-select
          - LEX::use_only_table_context introduced, which is used in the 
            Item_field::fix_fields() to resolve names only against
            context->first_name_resolution_table/last_name_resolution_table.
      sql/sql_lex.cc:
        Fix for bug #29444: crash with partition refering to table in create-select
          - LEX::use_only_table_context introduced, which is used in the 
            Item_field::fix_fields() to resolve names only against
            context->first_name_resolution_table/last_name_resolution_table.
      sql/sql_lex.h:
        Fix for bug #29444: crash with partition refering to table in create-select
          - LEX::use_only_table_context introduced, which is used in the 
            Item_field::fix_fields() to resolve names only against
            context->first_name_resolution_table/last_name_resolution_table.
      sql/sql_partition.cc:
        Fix for bug #29444: crash with partition refering to table in create-select
          - set the lex->use_only_table_context before the func_expr->fix_fields()
            call to ensure we're resolving names against the table we're creating;
            then restore it back after the call.
      8ae794bb
  26. 04 Oct, 2007 1 commit
    • unknown's avatar
      Bug #30484: Partitions: crash with self-referencing trigger · b4d566a0
      unknown authored
      Two cases in ha_partition::extra() was missing
      (HA_EXTRA_DELETE_CANNOT_BATCH and HA_EXTRA_UPDATE_CANNOT_BATCH)
      which only is currently used by NDB (which not uses ha_partition)
      
      
      mysql-test/r/partition.result:
        Added result for test of Bug #30484
      mysql-test/t/partition.test:
        Added test for Bug #30484
      sql/ha_partition.cc:
        Added HA_EXTRA_DELETE_CANNOT_BATCH and HA_EXTRA_UPDATE_CANNOT_BATCH
        in ha_partition::extra to do nothing
        (Only currently used in NDB, which is not dependent of ha_partition)
      b4d566a0
  27. 02 Jul, 2007 1 commit
  28. 08 Jun, 2007 1 commit
    • unknown's avatar
      Bug #27816: Log tables ran with partitions crashes the server · a9ce1388
      unknown authored
       when logging is enabled.
      Currently the partition engine doesn't allow log tables to
      be partitioned. But this was not checked and the server crashed.
      Fixed by adding a check in ALTER TABLE to disable partitioning the
      log tables.
      While working on the cause of the problem improved the way the log
      thread structures are initialized before opening the log tables.
      
      
      mysql-test/r/partition.result:
        Bug #27816: test case
      mysql-test/t/partition.test:
        Bug #27816: test case
      sql/log.cc:
        Bug #27816: optional
         Improved initialization of the log threads before opening 
         the log table.
         Remedies problems that arise from open_table() et. al. 
         depending on a correctly initialized thd.
         Prerequisite for handling partitioned log tables :
         they call the parser while reading the .frm file.
      sql/sql_table.cc:
        Bug #27816: throw an error when paritioning the log tables : 
         not supported by the partition engine.
      a9ce1388
  29. 07 Jun, 2007 1 commit
    • unknown's avatar
      Fix for bug #28806: Running SHOW TABLE STATUS during high INSERT load crashes server · 675d0941
      unknown authored
      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().
      
      
      mysql-test/r/partition.result:
        Fix for bug #28806: Running SHOW TABLE STATUS during high INSERT load crashes server
          - test result.
      mysql-test/t/partition.test:
        Fix for bug #28806: Running SHOW TABLE STATUS during high INSERT load crashes server
          - test case.
      sql/ha_partition.cc:
        Fix for bug #28806: Running SHOW TABLE STATUS during high INSERT load crashes server
          - use info(HA_STATUS_AUTO) calls to get autoincrement values for partitions,
            set the auto_increment_value as the biggest one.
      675d0941
  30. 04 Jun, 2007 1 commit
    • unknown's avatar
      Bug #28488: Incorrect information in file: './test/t1_test#.frm' · fce63f8f
      unknown authored
      While executing ALTER TABLE ... PARTITION the server uses 
      a temporary "shadow" table to create the updated table.
      This shadow table then gets renamed as the original table.
      The shadow table was not prefixed with the special prefix that
      marks temporary tables so it was picked up by SHOW TABLE STATUS.
      Fixed by isolating the code to create the shadow table name in a
      separate function and prefixing the shadow table name with the
      special prefix to exclude it from the list of user tables.
      See bug 18775 and WL1324 for details.
      
      
      mysql-test/r/partition.result:
        Bug #28488: test case
      mysql-test/t/partition.test:
        Bug #28488: test case
      sql/mysql_priv.h:
        Bug #28488: prefix shadow file with the temp prefix
      sql/sql_partition.cc:
        Bug #28488: prefix shadow file with the temp prefix
      sql/sql_table.cc:
        Bug #28488: prefix shadow file with the temp prefix
      fce63f8f
  31. 06 May, 2007 1 commit
    • unknown's avatar
      Bug #28005 Partitions: can't use -9223372036854775808 · e449dcfe
      unknown authored
      the Item_neg changes INT_RESULT with DECIMAL_RESULT when
      it gets this border value, what is not necessary.
      
      
      mysql-test/r/partition.result:
        result added
      mysql-test/t/partition.test:
        testcase
      sql/item_func.cc:
        we can handle '==' case in ordinary way - no need to use DECIMAL_RESULT
      e449dcfe
  32. 23 Apr, 2007 1 commit
    • unknown's avatar
      Bug#25141 Crash Server on Partitioning command · 6b573ac5
      unknown authored
      - The function build_table_filename() builds up a string unconditionally 
      using the forward slash as a path separator. Later, when the string is 
      searched for FN_LIBCHAR by the set_up_table_before_create() function, a 
      null pointer is returned that is finally used by strlen in the 
      append_file_to_dir() function which causes the crash.
      
      
      mysql-test/r/partition.result:
        Bug#25141 Crash Server on Partitioning command
        - Updated results
      mysql-test/t/partition.test:
        Bug#25141 Crash Server on Partitioning command
        - Enable test on Windows.
        - Move failing Windows tests to partition_not_winodws test
      sql/sql_table.cc:
        Bug#25141 Crash Server on Partitioning command
        - Use OS specific path separator when building table_filename
      mysql-test/r/partition_not_windows.result:
        Bug#25141 Crash Server on Partitioning command
        - Non-Windows results.
      mysql-test/r/partition_windows.result:
        Bug#25141 Crash Server on Partitioning command
        - Windows specific tests
      mysql-test/t/partition_not_windows.test:
        Bug#25141 Crash Server on Partitioning command
        - Non-Windows specific partition tests
      mysql-test/t/partition_windows.test:
        Bug#25141 Crash Server on Partitioning command
        - Windows specific partition tests.
      6b573ac5
  33. 19 Apr, 2007 1 commit
    • unknown's avatar
      Bug #27123 (partition + on duplicate key update + varchar = Can't find · 61145636
      unknown authored
      record in table)
      
      key_restore function didn't work as intended in the case of
      VARCHAR or BLOB fields, stored the restored key in field->ptr instead
      of to_record.
      That produced the wrong key so search returned wrong result
      
      
      mysql-test/r/partition.result:
        result added
      mysql-test/t/partition.test:
        testcase
      sql/field.cc:
        Field_blob::store_length made static
      sql/field.h:
        Field_blob::store_length and set_ptr functions implemented in slightly
        different way
      sql/ha_ndbcluster.cc:
        set_ptr_offset used
      sql/key.cc:
        set key_part->field->ptr to the proper place inside the to_record
        so the restored key will be placed there as key_restore
        is supposed to behave
      61145636
  34. 29 Mar, 2007 1 commit
  35. 27 Mar, 2007 1 commit
    • unknown's avatar
      Bug #27084 partitioning by list seems failing when using case · 50563d39
      unknown authored
      creation of the partitioned table could fail as we created Item-s for
      it's list function in thd->mem_root, and then do Item->fix_fields
      in the context of other table->mem_root (so that memory alloced
      there was alloced in this table->mem_root). As we freed the
      table->mem_root before we do thd->free_items, our Item-s had
      pointers to the freed memory, that caused the crash
      
      
      mysql-test/r/partition.result:
        result
      mysql-test/t/partition.test:
        testcase
      sql/item_cmpfunc.cc:
        here is better place for the implementation
      sql/item_cmpfunc.h:
        implementation moved to .cc file
      sql/sql_partition.cc:
        work_part_info_used parameter added to mysql_unpack_partition
      sql/sql_partition.h:
        work_part_info_used parameter added to mysql_unpack_partition
      sql/table.cc:
        we do 'fix_partition_func' using the proper arena now.
        It's necessary as Item_*::fix_fields can alloc memory
        using thd->mem_root and this has to be same mem_root that
        we used to alloc these Item-s
      50563d39
  36. 10 Mar, 2007 1 commit
    • unknown's avatar
      Bug #24633 SQL MODE "NO_DIR_IN_CREATE" does not work with · 32a19db3
      unknown authored
      partitioned tables"
      We have to ignore 'data directory' and 'index directory' parameters
      if NO_DIR_IN_CREATE set.
      
      
      mysql-test/r/partition.result:
        result fixed
      mysql-test/t/partition.test:
        testcase
      sql/partition_info.cc:
        clear data_field_name and index_field_name if NO_DIR_IN_CREATE set
      32a19db3
  37. 12 Jan, 2007 1 commit
    • unknown's avatar
      bug #24186 (nested query across partitions returns fewer records) · 94046b73
      unknown authored
      Subselect's engine checks table->status field to determine if the
      record was properly found when we use keyread upon the table.
      Partition engine checks all the partitions for given key
      before return. So if matching record was found in the first
      partition and no matching records were found in the second, 
      we have table->status == NOT_FOUND after the function, what
      makes subselects to skip matching records.
      The patch adds table->status= 0 if we actually found something.
      
      
      mysql-test/r/partition.result:
        result fixed
      mysql-test/t/partition.test:
        testcase
      sql/ha_partition.cc:
        table->status set to 0 if we found something in previous partitions
      94046b73
  38. 18 Dec, 2006 1 commit
    • unknown's avatar
      bug #24502 (reorganize partition closes connection) · c6ac9185
      unknown authored
      when REORGANIZE creates new partition, no_subparts for that partition
      isn't set right (call handler::set_partitions_defaults always returns 1)
      Normally the number of subpartitions should be inherited from the
      table.
      
      
      mysql-test/r/partition.result:
        result fixed
      mysql-test/t/partition.test:
        testcase
      sql/sql_partition.cc:
        no_subparts is set for newly created partitions
      c6ac9185