Commit graph

27 commits

Author SHA1 Message Date
unknown
4aaabb06c0 BUG#27927:Partition pruning not optimal with TO_DAYS and YEAR functions
- 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.
2007-09-14 14:18:42 +04:00
unknown
ff3f8990e7 Disabled ascii-function
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
2007-06-13 17:28:59 +02:00
unknown
f66a3c0427 Reapplied patch for bug18198 2007-04-04 16:26:32 +02:00
unknown
66f51d1574 Merge dator5.(none):/home/pappa/clean-mysql-5.1
into  dator5.(none):/home/pappa/bug18198


mysql-test/r/partition_pruning.result:
  Auto merged
mysql-test/t/partition_pruning.test:
  Auto merged
sql/item.h:
  Auto merged
sql/item_cmpfunc.h:
  Auto merged
sql/item_func.h:
  Auto merged
sql/sql_partition.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
sql/item_strfunc.h:
  SCCS merged
2006-08-02 07:01:38 -04:00
unknown
deee3a30d6 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  sunlight.local:/local_work/tmp_merge-5.1-opt-mysql


mysql-test/r/auto_increment.result:
  Auto merged
mysql-test/r/binlog_row_blackhole.result:
  Auto merged
mysql-test/r/binlog_stm_blackhole.result:
  Auto merged
mysql-test/r/date_formats.result:
  Auto merged
mysql-test/r/func_compress.result:
  Auto merged
mysql-test/r/func_gconcat.result:
  Auto merged
mysql-test/r/func_group.result:
  Auto merged
mysql-test/r/func_math.result:
  Auto merged
mysql-test/r/func_str.result:
  Auto merged
mysql-test/r/func_system.result:
  Auto merged
mysql-test/r/func_time.result:
  Auto merged
mysql-test/r/gis.result:
  Auto merged
mysql-test/r/group_by.result:
  Auto merged
mysql-test/r/group_min_max.result:
  Auto merged
mysql-test/r/myisam.result:
  Auto merged
mysql-test/r/olap.result:
  Auto merged
mysql-test/r/partition_pruning.result:
  Auto merged
mysql-test/r/query_cache.result:
  Auto merged
mysql-test/r/rpl_get_lock.result:
  Auto merged
mysql-test/r/rpl_master_pos_wait.result:
  Auto merged
mysql-test/r/select.result:
  Auto merged
mysql-test/r/subselect.result:
  Auto merged
mysql-test/r/type_blob.result:
  Auto merged
mysql-test/r/union.result:
  Auto merged
mysql-test/r/variables.result:
  Auto merged
mysql-test/r/view.result:
  Auto merged
mysql-test/t/group_min_max.test:
  Auto merged
mysql-test/t/partition_pruning.test:
  Auto merged
sql/opt_range.cc:
  Auto merged
sql/sql_class.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
sql/table.h:
  Auto merged
2006-08-01 09:24:19 +04:00
unknown
04a70beb67 BUG#18198: More fixes
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
2006-07-31 11:38:09 -04:00
unknown
283e41d6aa Merge spetrunia@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into  mysql.com:/home/psergey/mysql-5.1-bug14940-r4


mysql-test/r/partition_pruning.result:
  Auto merged
mysql-test/t/partition_pruning.test:
  Auto merged
sql/sql_select.cc:
  Auto merged
2006-07-30 00:02:42 +04:00
unknown
fc466665b7 Merge epotemkin@bk-internal.mysql.com:/home/bk/mysql-5.1
into  sunlight.local:/local_work/tmp_merge-5.1-opt-mysql


mysql-test/r/partition_pruning.result:
  Auto merged
mysql-test/t/partition_pruning.test:
  Auto merged
sql/sql_partition.cc:
  Auto merged
sql/sql_select.cc:
  Auto merged
2006-07-29 23:54:55 +04:00
unknown
ef452e19bf BUG#14940 "MySQL choose wrong index", v.2
- 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
2006-07-28 21:27:01 +04:00
unknown
045cde1c81 BUG#20257: Fix partition pruning for BIGINT UNSIGNED:
- 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.
2006-07-24 21:58:11 +04:00
unknown
d3b743ae18 BUG20733: Bug in partition pruning with zerofill field
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
2006-07-20 05:28:16 -04:00
unknown
d2f08db40c BUG#20484: "Partitions: crash with EXPLAIN and UNION"
- 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
2006-06-30 09:34:06 +04:00
unknown
027d90bc58 BUG#19684: Garbage in 'partitions' column in EXPLAIN output:
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.
2006-06-05 15:15:28 +04:00
unknown
6ccab8d4de BUG#19055: There may exist a SEL_TREE objects with type==KEY and keys[i]==NULL for any i.
(for example, such objects can be returned from get_mm_parts() for "string_field = int_val).
Make find_used_partitions_imerge() to handle such SEL_TREE objects.


mysql-test/r/partition_pruning.result:
  BUG#19055: testcase
mysql-test/t/partition_pruning.test:
  BUG#19055: testcase
2006-06-04 17:17:37 +04:00
unknown
4e1682ab15 BUG*#17946: New test case for already fixed bug (Problem with LIKE searches for partitioned tables)
Added new test case for bug 17946


mysql-test/r/partition_pruning.result:
  Added new test case for bug 17946
mysql-test/t/partition_pruning.test:
  Added new test case for bug 17946
2006-04-10 13:07:50 -04:00
unknown
4d1666f6b8 BUG#18558 "Partition pruning results are incorrect for certain class of WHERE clauses" :
* 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
2006-04-06 21:23:33 +04:00
unknown
a26509aead BUG#18659: In get_part_iter_for_interval_via_walking(), when we need to
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
2006-04-04 00:52:14 +04:00
unknown
457510903f Fix for BUG#18025: Wrong query results because of bugs in partition pruning:
- 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.
2006-03-31 15:17:15 +04:00
unknown
4f9e66daa4 WL#2985 "Partition pruning", "do pruning for UPDATE/DELETE": Post-merge fixes 2006-02-06 18:33:39 +03:00
unknown
6344fd64a5 Merge
mysql-test/t/partition_pruning.test:
  Auto merged
mysql-test/r/partition_pruning.result:
  SCCS merged
2006-02-05 23:49:32 +03:00
unknown
ff5d012454 WL# 2986
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.
2006-01-28 16:22:32 -08:00
unknown
d50236f69e WL#2985 "Partition pruning": addition2: perform partition pruning for
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()
2006-01-26 20:17:17 +03:00
unknown
dc2a6e226d WL#2985 "Partition Pruning":
- 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.
2006-01-04 11:09:01 +03:00
unknown
78d1abbaf9 WL#2985 "Partition Pruning": post-review fixes: Better comments
mysql-test/r/partition_pruning.result:
  WL#2985 "Partition Pruning": more tests
mysql-test/t/partition_pruning.test:
  WL#2985 "Partition Pruning": more tests
sql/handler.h:
  WL#2985 "Partition Pruning": post-review fixes: comments
2005-12-29 09:32:46 +03:00
unknown
01e1d1a0af add missing DROP TABLE [IF EXISTS] clauses 2005-12-26 10:16:36 +03:00
unknown
a4a1bb0e2f WL#2985 "Partition Pruning": post-review fixes:
- 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)
2005-12-26 08:40:09 +03:00
unknown
f19fb8709c WL#2985 "Partition Pruning"
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 ..."
2005-12-22 12:29:00 +03:00