An error occurred fetching the project authors.
  1. 02 Apr, 2009 1 commit
  2. 28 Dec, 2008 1 commit
    • Mattias Jonsson's avatar
      Bug#40972: some sql execution lead the whole databse crashing · f257aac8
      Mattias Jonsson authored
      Problem was an errornous date that lead to end partition
      was before the start, leading to a crash.
      
      Solution was to check greater or equal instead of only
      equal between start and end partition.
      
      NOTE: partitioning pruning handles incorrect dates
      differently than index lookup, which can give different
      results in a partitioned table versus a non partitioned
      table for queries having 'bad' dates in the where clause.
      
      mysql-test/r/partition_pruning.result:
        Bug#40972: some sql execution lead the whole databse crashing
        
        Updated result file
      mysql-test/t/partition_pruning.test:
        Bug#40972: some sql execution lead the whole databse crashing
        
        Added test.
      sql/sql_partition.cc:
        Bug#40972: some sql execution lead the whole databse crashing
        
        There can be cases where the start/cur partition is greater
        than the end partition, so it must not continue, since that
        can lead to a crash.
      f257aac8
  3. 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
  4. 14 Sep, 2007 1 commit
    • unknown's avatar
      BUG#27927:Partition pruning not optimal with TO_DAYS and YEAR functions · 4aaabb06
      unknown authored
      - Introduced val_int_endpoint() function which converts between func 
        argument intervals and func value intervals for monotonic functions.
      - Made partition interval analyzer use part_expr->val_int_endpoint()
        to check if the edge values should be included.
      
      
      mysql-test/r/partition_pruning.result:
        BUG#27927: Partition pruning not optimal with TO_DAYS and YEAR functions
        - Testcase
      mysql-test/t/partition_pruning.test:
        BUG#27927: Partition pruning not optimal with TO_DAYS and YEAR functions
        - Testcase
      sql/item.cc:
        BUG#27927: Partition pruning not optimal with TO_DAYS and YEAR functions
        - Added Item_field::val_int_endpoint() implementation
      sql/item.h:
        BUG#27927: Partition pruning not optimal with TO_DAYS and YEAR functions
        - Added Item::val_int_endpoint() which converts intervals from argument
          space to function value space for unary monotonic functions.
      sql/item_timefunc.cc:
        BUG#27927: Partition pruning not optimal with TO_DAYS and YEAR functions
        - Added val_int_endpoint() for TO_DAYS and YEAR functions.
      sql/item_timefunc.h:
        BUG#27927: Partition pruning not optimal with TO_DAYS and YEAR functions
        - Added val_int_endpoint() for TO_DAYS and YEAR functions.
      sql/partition_info.h:
        BUG#27927: Partition pruning not optimal with TO_DAYS and YEAR functions
        - Removed partition_info::range_analysis_include_bounds as it is no longer 
          needed.
      sql/sql_partition.cc:
        BUG#27927: Partition pruning not optimal with TO_DAYS and YEAR functions
        - Make partition interval analyzer use part_expr->val_int_endpoint() to 
          check if the edge values should be included.
      4aaabb06
  5. 11 Sep, 2007 1 commit
  6. 24 Aug, 2007 1 commit
    • unknown's avatar
      ha_partition.cc, ha_partition.h: · 98af69e8
      unknown authored
        bug fixed
      partition_pruning.result:
        test fixed
      
      
      mysql-test/r/partition_pruning.result:
        test fixed
      sql/ha_partition.cc:
        bug fixed
      sql/ha_partition.h:
        bug fixed
      98af69e8
  7. 23 Aug, 2007 1 commit
    • unknown's avatar
      Bug #28430 Failure in replication of innodb partitioned tables on row/mixed format. · f0d1ac25
      unknown 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()
      
      
      sql/ha_partition.h:
         Bug #28430 Failure in replication of innodb partitioned tables on row/mixed format.
        column_bitmaps_signal interface added
      sql/ha_partition.cc:
        Bug #28430 Failure in replication of innodb partitioned tables on row/mixed format.
        Calculate the number of the partition in ha_partition::position().
        ha_partition::column_bitmaps_signal() implemented
      mysql-test/r/partition_pruning.result:
        Bug #28430 Failure in replication of innodb partitioned tables on row/mixed format.
        test result fixed
      f0d1ac25
  8. 13 Jun, 2007 1 commit
    • unknown's avatar
      Disabled ascii-function · ff3f8990
      unknown authored
      mysql-test/r/partition_bug18198.result:
        Disabled a lot of test cases using ascii-function
      mysql-test/r/partition_charset.result:
        Disabled a lot of test cases using ascii-function
      mysql-test/r/partition_error.result:
        Disabled a lot of test cases using ascii-function
      mysql-test/r/partition_pruning.result:
        Disabled a lot of test cases using ascii-function
      mysql-test/r/partition_range.result:
        Disabled a lot of test cases using ascii-function
      mysql-test/t/partition_bug18198.test:
        Disabled a lot of test cases using ascii-function
      mysql-test/t/partition_charset.test:
        Disabled a lot of test cases using ascii-function
      mysql-test/t/partition_error.test:
        Disabled a lot of test cases using ascii-function
      mysql-test/t/partition_pruning.test:
        Disabled a lot of test cases using ascii-function
      mysql-test/t/partition_range.test:
        Disabled a lot of test cases using ascii-function
      ff3f8990
  9. 06 Apr, 2007 1 commit
  10. 04 Apr, 2007 1 commit
  11. 31 Jul, 2006 1 commit
    • unknown's avatar
      BUG#18198: More fixes · 04a70beb
      unknown authored
      mysql-test/r/partition.result:
        Removed test case no longer supported
      mysql-test/r/partition_error.result:
        Changed behaviour of test case
      mysql-test/r/partition_pruning.result:
        Changed behaviour of test case
      mysql-test/t/partition.test:
        Changed behaviour of test case
      mysql-test/t/partition_error.test:
        Changed behaviour of test case
      mysql-test/t/partition_pruning.test:
        Changed behaviour of test case
      sql/sql_partition.cc:
        Ensured PARTITION BY KEY can use any column type
      04a70beb
  12. 28 Jul, 2006 1 commit
    • unknown's avatar
      BUG#14940 "MySQL choose wrong index", v.2 · ef452e19
      unknown authored
      - Make the range-et-al optimizer produce E(#table records after table 
                                                 condition is applied),
      - Make the join optimizer use this value,
      - Add "filtered" column to EXPLAIN EXTENDED to show 
        fraction of records left after table condition is applied
      - Adjust test results, add comments
      
      
      mysql-test/r/archive_gis.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/auto_increment.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/bdb_gis.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/bench_count_distinct.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/binlog_stm_blackhole.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/case.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/cast.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/compress.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/ctype_collate.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/ctype_cp1250_ch.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/date_formats.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/distinct.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/fulltext.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_compress.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_crypt.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_default.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_encrypt.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_gconcat.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_group.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_if.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_in.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_like.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_math.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_op.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_regexp.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_set.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_str.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_system.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_test.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/func_time.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/gis.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/group_by.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/group_min_max.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/having.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/heap.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/heap_hash.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/index_merge.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/index_merge_innodb.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/index_merge_ror.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/innodb_gis.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/insert_update.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/join.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/join_nested.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/key_diff.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/myisam.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/ndb_gis.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/negation_elimination.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/null.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/olap.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/partition_pruning.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/query_cache.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/row.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/rpl_get_lock.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/rpl_master_pos_wait.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/select.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/ssl.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/ssl_compress.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/subselect.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/type_blob.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/union.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/varbinary.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/variables.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/r/view.result:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/ctype_cp1250_ch.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/func_like.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/group_min_max.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/index_merge_ror.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/index_merge_ror_cpk.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/join.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      mysql-test/t/partition_pruning.test:
        BUG#14940: Adjust the test results: EXPLAIN EXTENDED now has extra "filtered" column
      sql/opt_range.cc:
        BUG#14940: Make range/index_merge/group-min-max optimizer produce TABLE::quick_condition_rows -
          estimate of #records that will match the table condition.
      sql/sql_class.cc:
        BUG#14940: Add "filtered" column to output of EXPLAIN EXTENDED
      sql/sql_select.cc:
        BUG#14940: 
        - Make the join optimizer to use TABLE::quick_condition_rows=
          = E(#table records after filtering with table condition) 
        - Add "filtered" column to output of EXPLAIN EXTENDED
      sql/sql_select.h:
        BUG#14940: Added comments
      sql/table.h:
        BUG#14940: Added comments
      ef452e19
  13. 24 Jul, 2006 1 commit
    • unknown's avatar
      BUG#20257: Fix partition pruning for BIGINT UNSIGNED: · 045cde1c
      unknown authored
       - Fix problems in the "Interval walking" partition interval analyzer.
      
      
      mysql-test/r/partition_pruning.result:
        BUG#20257: Add more testcases for partition pruning
      mysql-test/t/partition_pruning.test:
        BUG#20257: Add more testcases for partition pruning
      sql/sql_partition.cc:
        BUG#20257: Fix partition pruning for BIGINT UNSIGNED, interval walking:
         - provide special handling for an edge case of interval of size 4G-1.
         - Store interval size in ulonglong, not uint (it was possible to miss partitions this way)
         - In get_next_partition_via_walking(), interpret the value of walked-over field as having the 
           same "signedness" as field (this is so because this value was obtained by calling field->val_int())
         - Remove out of date todo comment.
      045cde1c
  14. 20 Jul, 2006 1 commit
    • unknown's avatar
      BUG20733: Bug in partition pruning with zerofill field · d3b743ae
      unknown authored
      Problem was with handling NULL values in ranges
      
      
      mysql-test/r/partition_hash.result:
        New partition pruning test cases
      mysql-test/r/partition_list.result:
        New partition pruning test cases
      mysql-test/r/partition_pruning.result:
        New partition pruning test cases
      mysql-test/r/partition_range.result:
        New partition pruning test cases
      mysql-test/t/partition_hash.test:
        New partition pruning test cases
      mysql-test/t/partition_list.test:
        New partition pruning test cases
      mysql-test/t/partition_pruning.test:
        New partition pruning test cases
      mysql-test/t/partition_range.test:
        New partition pruning test cases
      sql/opt_range.cc:
        Added comment
      sql/sql_partition.cc:
        Partition pruning didn't handle ranges with NULL values in a proper manner
      d3b743ae
  15. 30 Jun, 2006 1 commit
    • unknown's avatar
      BUG#20484: "Partitions: crash with EXPLAIN and UNION" · d2f08db4
      unknown authored
       - Don't forget to produce "partitions" column for "UNION RESULT" row of EXPLAIN output
      
      
      mysql-test/r/partition_pruning.result:
        BUG#20484: Testcase
      mysql-test/t/partition_pruning.test:
        BUG#20484: Testcase
      d2f08db4
  16. 21 Jun, 2006 1 commit
    • unknown's avatar
      Bug#20086: Can't get data from key partitioned tables with VARCHAR key · 4e138572
      unknown authored
      The problem appeared because the same values produced different hash
      during INSERT and SELECT for VARCHAR data type.
      Fix:
      VARCHAR required special treatment to avoid hashing of length bytes
      (leftmost one or two bytes) as well as trailing bytes beyond real length,
      which could contain garbage. Fix is done by introducing hash() - new method
      in the Field class.
      
      
      mysql-test/r/partition_innodb.result:
        Adding test case
      mysql-test/r/partition_pruning.result:
        Fixing test results (results differ due to changes in hash function)
      mysql-test/t/partition_innodb.test:
        Adding test case
      sql/field.cc:
        Adding generic hash() method, and a special
        method for VARCHAR.
      sql/field.h:
        Adding prototypes for new methods
      sql/key.cc:
        Mark columns for write before executinf of set_key_image().
        Thanks for Mikael for suggesting this fix.
      sql/sql_partition.cc:
        Removing old hash code.
        Using new methid field->hash() instead.
      4e138572
  17. 05 Jun, 2006 1 commit
    • unknown's avatar
      BUG#19684: Garbage in 'partitions' column in EXPLAIN output: · 027d90bc
      unknown authored
      In select_describe(), make the String object that holds the value of 
      "partitions" column to "own" the value buffer, so the buffer isn't
      prematurely freed.
      [this is the second attempt with review fixes]
      
      
      mysql-test/r/partition_pruning.result:
        BUG#19684: Testcase
      mysql-test/t/partition_pruning.test:
        BUG#19684: Testcase
      sql/sql_select.cc:
        BUG#19684: Garbage in 'partitions' column in EXPLAIN output:
        - Added comment
        - Make the String object that holds the value of "partitions" column
          to "own" the value buffer, so the buffer isn't prematurely freed.
      027d90bc
  18. 04 Jun, 2006 1 commit
  19. 12 Apr, 2006 1 commit
    • unknown's avatar
      BUG#18962: DROP PARTITION fails when partitions dropped for subpartitions with... · 3378a31c
      unknown authored
      BUG#18962: DROP PARTITION fails when partitions dropped for subpartitions with default naming procedure
      Fixed naming procedures for default partitioning and default subpartitioning
      
      
      mysql-test/r/partition_pruning.result:
        Fixed test cases for new naming of default subpartitions
      mysql-test/r/partition_range.result:
        New test case
      mysql-test/t/partition_range.test:
        New test case
      sql/partition_info.cc:
        Fixed naming procedures for default partitioning and default subpartitioning
      sql/partition_info.h:
        Fixed naming procedures for default partitioning and default subpartitioning
      3378a31c
  20. 10 Apr, 2006 1 commit
  21. 06 Apr, 2006 1 commit
    • unknown's avatar
      BUG#18558 "Partition pruning results are incorrect for certain class of WHERE clauses" : · 4d1666f6
      unknown authored
      * Produce right results for conditions that were transformed to "(partitioning_range) AND
        (list_of_subpartitioning_ranges)": make each partition id set iterator auto-reset itself
        after it has returned all partition ids in the sequence 
      * Fix "Range mapping" and "Range mapping" partitioning interval analysis functions to 
        correctly deal with NULL values. 
      
      
      mysql-test/r/partition_pruning.result:
        Testcase for BUG#18558
      mysql-test/t/partition_pruning.test:
        Testcase for BUG#18558
      sql/opt_range.cc:
        BUG#18558: Move partition set iterator initialization to sql_partition.cc, comment fixes
      sql/partition_info.h:
        BUG#18558: Make each partition set iterator auto-reset itself after it has returned all 
        partition ids in the set it enumerates.
      sql/sql_partition.cc:
        BUG#18558: 
        - Make each partition set iterator auto-reset itself after it has returned all 
          partition ids in the set it enumerates. 
        - Fix partition interval analysis to correctly handle intervals with one or both
          NULL bounds.
      sql/sql_partition.h:
        BUG#18558: 
         - Make each partition set iterator auto-reset itself after it has returned all 
           partition ids in the set it enumerates. 
         - Rename PARTITION_ITERATOR::has_null_value to ret_null_part
      4d1666f6
  22. 03 Apr, 2006 1 commit
    • unknown's avatar
      BUG#18659: In get_part_iter_for_interval_via_walking(), when we need to · a26509ae
      unknown authored
      obtain partition number, call partition_info->get_part_partition_id() when
      the table has subpartitions, and get_partition_id() otherwise. (The bug
      was that we were always doing the latter)
      
      
      mysql-test/r/partition_pruning.result:
        Testcase for BUG#18659
      mysql-test/t/partition_pruning.test:
        Testcase for BUG#18659
      a26509ae
  23. 31 Mar, 2006 1 commit
    • unknown's avatar
      Fix for BUG#18025: Wrong query results because of bugs in partition pruning: · 45751090
      unknown authored
       - Fix typo bug in SEL_ARG::is_singlepoint()
       - In set_up_range_analysis_info(), treat MEDIUMINT as enumerable type just like other integer types
      
      
      mysql-test/r/partition_pruning.result:
        Testcase for BUG#18025
      mysql-test/t/partition_pruning.test:
        Testcase for BUG#18025
      sql/opt_range.cc:
        BUG#18025: Fix a typo bug in SEL_ARG::is_singlepoint()
      sql/sql_partition.cc:
        BUG#18025: In set_up_range_analysis_info(), treat MEDIUMINT as enumerable type just like other integer types.
      45751090
  24. 24 Feb, 2006 1 commit
  25. 06 Feb, 2006 1 commit
  26. 29 Jan, 2006 1 commit
    • unknown's avatar
      WL# 2986 · ff5d0124
      unknown authored
      Final patch
      -----------
      
      This WL is about using this bitmap in all parts of the partition handler.
      Thus for:
      rnd_init/rnd_next
      index_init/index_next and all other variants of index scans
      read_range_... the various range scans implemented in the partition handler.
      
      Also use those bitmaps in the various other calls that currently loop over all
      partitions.
      
      
      
      
      mysql-test/r/partition_pruning.result:
        WL# 2986
        
        New results reflecting bitmap being used to determine if a partition is to be
        included
      mysql-test/t/partition_pruning.test:
        WL# 2986
        
        New tests to show bitmap being used in ha_partition
      sql/ha_partition.cc:
        WL# 2986
        
        Used work from 2682 and removed the partition select code.
            
        Added do {} while loop to any iteration over partitions to now utilise 
        m_part_info->used_partitions bitmap to determine if a partition should be
        used.
      sql/ha_partition.h:
        WL# 2986
        
        Removed unused member
      sql/handler.h:
        WL# 2986
        
        Removed unused member
      sql/opt_range.cc:
        WL# 2986
        
        Added bitmap_clear_all to clear bitmap prior to pruning
        DBUG code for testing
      sql/sql_partition.cc:
        WL# 2986
        
        Changed < to <=, which fixes the problem with edge cases going awry.
      ff5d0124
  27. 26 Jan, 2006 1 commit
    • unknown's avatar
      WL#2985 "Partition pruning": addition2: perform partition pruning for · d50236f6
      unknown authored
      single-table UPDATE/DELETE.
      
      
      mysql-test/r/partition_pruning.result:
        WL#2985 "Partition pruning": addition2: perform partition pruning for UPDATE/DELETE:
        testcases added
      mysql-test/t/partition_pruning.test:
        WL#2985 "Partition pruning": addition2: perform partition pruning for UPDATE/DELETE:
        testcases added
      sql/sql_delete.cc:
        WL#2985 "Partition pruning": addition2: perform partition pruning for UPDATE/DELETE:
        Added partition pruning call in mysql_delete()
      sql/sql_update.cc:
        WL#2985 "Partition pruning": addition2: perform partition pruning for UPDATE/DELETE:
        Added partition pruning call in mysql_update()
      d50236f6
  28. 04 Jan, 2006 1 commit
    • unknown's avatar
      WL#2985 "Partition Pruning": · dc2a6e22
      unknown authored
      - post-...-post review fixes
      - Added "integer range walking" that allows to do partition pruning for "a <=? t.field <=? b"
        by finding used partitions for a, a+1, a+2, ..., b-1, b. 
      
      
      mysql-test/r/partition_pruning.result:
        WL#2985 "Partition Pruning": tests for "integer range walking"
      mysql-test/t/partition.test:
        WL#2985 "Partition Pruning": post-review fixes
      mysql-test/t/partition_pruning.test:
        WL#2985 "Partition Pruning": tests for "integer range walking"
      sql/handler.h:
        WL#2985 "Partition Pruning": "integer range walking": 
        - class partition_info now has pointers to "partitioning interval analysis" functions
        - added "partition set iterator" definitions.
      sql/opt_range.cc:
        WL#2985 "Partition Pruning": "integer range walking":
        - Switched to use "partitioning interval analysis" functions
        - Fixed two problems in find_used_partitions() that occur on complicated WHERE clauses.
      sql/sql_partition.cc:
        WL#2985 "Partition Pruning": "integer range walking": 
        - Added "partitioning interval analysis" functions: get_part_iter_for_interval_via_mapping, 
          get_part_iter_for_interval_via_walking, 
        - Added appropriate partition-set-iterator implementations
        - Added a function to set up Partitioning Interval Analysis-related fields in partition_info.
      sql/sql_select.cc:
        WL#2985 "Partition pruning": added comments.
      dc2a6e22
  29. 29 Dec, 2005 1 commit
  30. 26 Dec, 2005 2 commits
    • unknown's avatar
      add missing DROP TABLE [IF EXISTS] clauses · 01e1d1a0
      unknown authored
      01e1d1a0
    • unknown's avatar
      WL#2985 "Partition Pruning": post-review fixes: · a4a1bb0e
      unknown authored
      - Added more comments.
      - Added a RANGE_OPT_PARAM::remove_jump_scans flag that disables construction of index_merge
        SEL_TREEs that represent unusable conditions like "key1part1<c1 OR key2part2<c2"
      - make prune_partitions() function handle the case where range analysis produces a list of 
        index_merge trees (it turned out that this is possible, appropriate test case added).
      - Other small fixes.
      
      
      mysql-test/r/partition_pruning.result:
        WL#2985 "Partition Pruning": post-review fixes: more test cases
      mysql-test/t/partition_pruning.test:
        WL#2985 "Partition Pruning": post-review fixes: more test cases
      sql/opt_range.cc:
        WL#2985 "Partition Pruning": post-review fixes:
        - Added more comments.
        - Fix the debug printouts
        - Added a RANGE_OPT_PARAM::remove_jump_scans flag that disables construction of index_merge
          SEL_TREEs that represent unusable conditions like "key1part1<c1 OR key2part2<c2"
        - make prune_partitions() function handle the case where range analysis produces a list of 
          index_merge trees (it turned out that this is possible, appropriate test case added).
      sql/sql_partition.cc:
        WL#2985 "Partition Pruning": post-review fixes: make requested edits in comments.
      sql/table.h:
        WL#2985 "Partition Pruning": post-review fixes: added bool TABLE::no_partitions_used
        (this change was missed when making the original cset)
      a4a1bb0e
  31. 22 Dec, 2005 1 commit
    • unknown's avatar
      WL#2985 "Partition Pruning" · f19fb870
      unknown authored
      sql/ha_ndbcluster.cc:
        WL#2985 "Partition Pruning": added part_info->used_partitions initialization
      sql/ha_partition.cc:
        WL#2985 "Partition Pruning": added part_info->used_partitions initialization
      sql/handler.h:
        WL#2985 "Partition Pruning": 
        Added function prototypes
        in partition_info:
         - Added 'used_partitions' bitmap
         - Added comments
      sql/item.h:
        WL#2985 "Partition Pruning": 
        - added enum monotonicity_info
        - added virtual Item::get_monotonicity_info()
      sql/item_timefunc.cc:
        WL#2985 "Partition Pruning": 
        - added Item_func_to_days::get_monotonicity_info()
        - added Item_func_year::get_monotonicity_info()
      sql/item_timefunc.h:
        WL#2985 "Partition Pruning": 
        - added Item_func_to_days::get_monotonicity_info()
        - added Item_func_year::get_monotonicity_info()
      sql/opt_range.cc:
        WL#2985 "Partition Pruning":
        - Split out PARAM structure into PARAM and RANGE_OPT_PARAM part.
        - Added partition pruning module code.
      sql/opt_range.h:
        WL#2985 "Partition Pruning": 
        Added prune_partitions() function declaration. This is the entry point for partition pruning 
        module
      sql/sql_class.cc:
        WL#2985 "Partition Pruning": added support for "EXPLAIN PARTITIONS SELECT ..."
      sql/sql_lex.h:
        WL#2985 "Partition Pruning": added support for "EXPLAIN PARTITIONS SELECT ..."
      sql/sql_partition.cc:
        WL#2985 "Partition Pruning": 
         - Added get_list_array_idx_for_endpoint and get_range_... functions to support partition 
           pruning on "partition_field < const"-like intervals.
         - Added partition_info::used_partitions bitmap.
         - Added make_used_partitions_str function
         - Fixed BUG#15819
      sql/sql_select.cc:
        WL#2985 "Partition Pruning": 
        - Added prune_partitions() invocation right before the range analysis
        - Added code to handle return value from prune_partitions()
        - Added support for "EXPLAIN PARTITIONS SELECT ..."
      sql/sql_yacc.yy:
        #2985 "Partition Pruning": added support for "EXPLAIN PARTITIONS SELECT ..."
      f19fb870