An error occurred fetching the project authors.
  1. 29 Apr, 2011 1 commit
  2. 09 Feb, 2011 1 commit
    • MySQL Build Team's avatar
      Backport into build-201102032246-5.1.52sp1 · bdc90542
      MySQL Build Team authored
      > ------------------------------------------------------------
      > revno: 3527.3.1
      > revision-id: mattias.jonsson@oracle.com-20101222095036-2lpx0gqu4i45jtkz
      > parent: sven.sandberg@oracle.com-20101220090735-psae11j9nwuj8vzl
      > committer: Mattias Jonsson <mattias.jonsson@oracle.com>
      > branch nick: b54483-51-bt_2
      > timestamp: Wed 2010-12-22 10:50:36 +0100
      > message:
      >   Bug#54483: valgrind errors when making warnings for multiline inserts into partition
      >   Bug#57071: EXTRACT(WEEK from date_col) cannot be allowed as partitioning function
      >   
      >   There were functions allowed as partitioning functions
      >   that implicit allowed cast. That could result in unacceptable
      >   behaviour.
      >   
      >   Solution was to check that the arguments of date and time functions
      >   have allowed types (field and date/datetime/time depending on function).
      bdc90542
  3. 24 Jan, 2011 1 commit
    • Mattias Jonsson's avatar
      Bug#59297: Can't find record in 'tablename' on update inner join · fd5782dc
      Mattias Jonsson authored
      Regression introduced in bug#52455. Problem was that the
      fixed function did not set the last used partition variable, resulting
      in wrong partition used when storing the position of the newly
      retrieved row.
      
      Fixed by setting the last used partition in ha_partition::index_read_idx_map.
      fd5782dc
  4. 22 Dec, 2010 1 commit
    • Mattias Jonsson's avatar
      Bug#54483: valgrind errors when making warnings for multiline inserts into partition · 966d0eba
      Mattias Jonsson authored
      Bug#57071: EXTRACT(WEEK from date_col) cannot be allowed as partitioning function
      
      There were functions allowed as partitioning functions
      that implicit allowed cast. That could result in unacceptable
      behaviour.
      
      Solution was to check that the arguments of date and time functions
      have allowed types (field and date/datetime/time depending on function).
      966d0eba
  5. 30 Sep, 2010 1 commit
  6. 27 Aug, 2010 1 commit
  7. 10 Aug, 2010 1 commit
  8. 22 Mar, 2010 1 commit
    • Sergey Vojtovich's avatar
      BUG#51868 - crash with myisam_use_mmap and partitioned · 356d0754
      Sergey Vojtovich authored
                  myisam tables
      
      Queries following TRUNCATE of partitioned MyISAM table
      may crash server if myisam_use_mmap is true.
      
      Internally this is MyISAM bug, but limited to partitioned
      tables, because MyISAM doesn't use ::delete_all_rows()
      method for TRUNCATE, but goes via table recreate instead.
      
      MyISAM didn't properly fall back to non-mmaped I/O after
      mmap() failure. Was not repeatable on linux before, likely
      because (quote from man mmap):
        SUSv3  specifies  that  mmap() should fail if length is 0.
        However, in kernels before 2.6.12, mmap() succeeded in
        this case: no mapping was created and the call returned
        addr. Since kernel 2.6.12, mmap() fails with the error
        EINVAL for this case.
      356d0754
  9. 14 Dec, 2009 1 commit
  10. 17 Nov, 2009 1 commit
  11. 09 Nov, 2009 1 commit
  12. 03 Nov, 2009 1 commit
    • Mattias Jonsson's avatar
      Bug#46923: select count(*) from partitioned table fails with · 8a2ca22a
      Mattias Jonsson authored
      ONLY_FULL_GROUP_BY
      
      Problem was that during checking and preparation of the
      partitioining function as a side effect in fix_fields
      the full_group_by_flag was changed.
      
      Solution was to set it back to its original value after
      calling fix_fields.
      
      Updated patch, to also exclude allow_sum_func from being
      affected of fix_fields, as requested by reviewer.
      8a2ca22a
  13. 08 Oct, 2009 1 commit
  14. 21 Aug, 2009 1 commit
    • Mattias Jonsson's avatar
      Bug#46639: 1030 (HY000): Got error 124 from storage engine on · 586ee5d6
      Mattias Jonsson authored
      INSERT ... SELECT ...
      
      Problem was that when bulk insert is used on an empty
      table/partition, it disables the indexes for better
      performance, but in this specific case it also tries
      to read from that partition using an index, which is
      not possible since it has been disabled.
      
      Solution was to allow index reads on disabled indexes
      if there are no records.
      
      Also reverted the patch for bug#38005, since that was a workaround
      in the partitioning engine instead of a fix in myisam.
      586ee5d6
  15. 06 Aug, 2009 2 commits
    • Mattias Jonsson's avatar
      Bug#46478: timestamp field incorrectly defaulted · 89b9fbd4
      Mattias Jonsson authored
      when partition is reoganized.
      
      Problem was that table->timestamp_field_type was not changed
      before copying rows between partitions.
      
      fixed by setting it to TIMESTAMP_NO_AUTO_SET as the first thing
      in fast_alter_partition_table, so that all if-branches is covered.
      89b9fbd4
    • Satya B's avatar
      Fix for BUG#45816 - assertion failure with index containing double · ad951044
      Satya B authored
                          column on partitioned table
            
            
      An assertion 'ASSERT_COULUMN_MARKED_FOR_READ' is failed if the query 
      is executed with index containing double column on partitioned table.
      The problem is that assertion expects all the fields which are read,
      to be in the read_set.
            
      In this query only the field 'a' is in the readset as the tables in
      the query are joined by the field 'a' and so the assertion fails 
      expecting other field 'b'.
            
      Since the function cmp() is just comparison of two parameters passed, 
      the assertion is not required.
            
      Fixed by removing the assertion in the double fields comparision
      function and also fixed the index initialization to do ordered
      index scan with RW LOCK which ensures all the fields from a key are in
      the read_set.
       
      
      Note: this bug is not reproducible with other datatypes because the
            assertion doesn't exist in comparision function for other 
            datatypes.
      ad951044
  16. 31 Jul, 2009 2 commits
  17. 29 Jul, 2009 1 commit
  18. 02 Jul, 2009 1 commit
    • Georgi Kodinov's avatar
      Bug #45807: crash accessing partitioned table and sql_mode · 5572f8e7
      Georgi Kodinov authored
      contains ONLY_FULL_GROUP_BY
      
      The partitioning code needs to issue a Item::fix_fields()
      on the partitioning expression in order to prepare 
      it for being evaluated.
      It does this by creating a special table and a table list 
      for the scope of the partitioning expression.
      But when checking ONLY_FULL_GROUP_BY the 
      Item_field::fix_fields() was relying that there always be
      cached_table set and was trying to use it to get the 
      select_lex of the SELECT the field's table is in.
      But the cached_table was not set by the partitioning code
      that creates the artificial TABLE_LIST used to resolve the
      partitioning expression and this resulted in a crash.
       
      Fixed by rectifying the following errors :
      1. Item_field::fix_fields() : the code that check for 
      ONLY_FULL_GROUP_BY relies on having tables with 
      cacheable_table set. This is mostly true, the only 
      two exceptions being the partitioning context table
      and the trigger context table.
      Fixed by taking the current parsing context if no pointer
      to the TABLE_LIST instance is present in the cached_table.
      
      2. fix_fields_part_func() : 
      
      2a. The code that adds the table being created to the 
      scope for the partitioning expression is mostly a copy 
      of the add_table_to_list and friends with one exception :
      it was not marking the table as cacheable (something that
      normal add_table_to_list is doing). This caused the 
      problem in the check for ONLY_FULL_GROUP_BY in 
      Item_field::fix_fields() to appear.
      Fixed by setting the correct members to make the table
      cacheable.
      The ideal structural fix for this is to use a unified 
      interface for adding a table to a table list 
      (add_table_to_list?) : noted in a TODO comment
      
      2b. The Item::fix_fields() was called with a NULL destination
      pointer. This causes uninitalized memory reads in the 
      overloaded ::fix_fields() function (namely 
      Item_field::fix_fields()) as it expects a non-zero pointer 
      there. Fixed by passing the source pointer similarly to how 
      it's done in JOIN::prepare().
      5572f8e7
  19. 16 Jun, 2009 1 commit
  20. 01 Apr, 2009 1 commit
  21. 18 Feb, 2009 1 commit
  22. 25 Nov, 2008 1 commit
    • Build Team's avatar
      mysql-test/r/partition.result · d2c48167
      Build Team authored
      mysql-test/t/partition.test
      sql/ha_partition.cc
        Bug#40954: Crash in MyISAM index code with concurrency test using partitioned tables
        Problem was usage of read_range_first with an empty key.
        Solution was to not to give a key if it was empty. (real author Mattias Jonsson)
      
      storage/archive/archive_reader.c
      client/mysqlslap.c
        Aligned the copyright texts output from "--version" of tools, to
        let internal tools be able to change them if needed.
      
      storage/ndb/test/tools/connect.cpp
      storage/ndb/test/run-test/atrt.hpp
        Corrected a few GPL headers not restricted to GPL version 2
      
      Makefile.am
        Added missing --report-features to the 'test-bt-fast' target
      
      support-files/mysql.spec.sh
        Reversed the removal of the "%define license GPL" in as internal
        tools depended on it
      d2c48167
  23. 24 Nov, 2008 1 commit
  24. 13 Nov, 2008 1 commit
    • Sven Sandberg's avatar
      BUG#38350: Many tests don't clean up after themselves on exit. · 78a3abec
      Sven Sandberg authored
      Problem: Many test cases don't clean up after themselves (fail
      to drop tables or fail to reset variables). This implies that:
      (1) check-testcase in the new mtr that currently lives in
      5.1-rpl failed. (2) it may cause unexpected results in
      subsequent tests.
      Fix: make all tests clean up.
      Also: cleaned away unnecessary output in rpl_packet.result
      Also: fixed bug where rpl_log called RESET MASTER with a running
      slave. This is not supposed to work.
      Also: removed unnecessary code from rpl_stm_EE_err2 and made it
      verify that an error occurred.
      Also: removed unnecessary code from rpl_ndb_ctype_ucs2_def.
      78a3abec
  25. 05 Nov, 2008 1 commit
  26. 04 Nov, 2008 1 commit
  27. 06 Oct, 2008 2 commits
    • Alexey Botchkov's avatar
      Bug#38005 Partitions: error with insert select. · acdaa9ae
      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.
      acdaa9ae
    • Alexey Botchkov's avatar
      Bug#38083 Error-causing row inserted into partitioned table despite error · a206d672
      Alexey Botchkov authored
            
          problems are located in the sql_partition.cc where functions calculation
          partition_id don't expect error returned from item->val_int().
          Fixed by adding checks to these functions.
          Note  - it tries to fix more problems than just the reported bug.
            
      per-file comments:
      modified:
        mysql-test/r/partition.result
          Bug#38083 Error-causing row inserted into partitioned table despite error
              test result
        mysql-test/t/partition.test
          Bug#38083 Error-causing row inserted into partitioned table despite error
              test case
        sql/opt_range.cc
          Bug#38083 Error-causing row inserted into partitioned table despite error
              get_part_id() call fixed
        sql/partition_info.h
          Bug#38083 Error-causing row inserted into partitioned table despite error
              get_subpart_id_func interface changed. 
        sql/sql_partition.cc
          Bug#38083 Error-causing row inserted into partitioned table despite error
              various functions calculationg partition_id and subpart_id didn't expect
                  an error returned from item->val_int().  Error checks added.
      a206d672
  28. 01 Sep, 2008 1 commit
  29. 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
  30. 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
  31. 07 Jul, 2008 1 commit
    • 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
  32. 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
  33. 03 Mar, 2008 2 commits
  34. 28 Feb, 2008 1 commit
  35. 25 Feb, 2008 1 commit
    • mattiasj@witty.'s avatar
      Post push fix · 2e3ed6a2
      mattiasj@witty. 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.
      2e3ed6a2
  36. 11 Feb, 2008 1 commit