Commit graph

42 commits

Author SHA1 Message Date
Mattias Jonsson
0df98f62c3 merge 2011-01-10 16:13:12 +01:00
Martin Hansson
2c47236bef Merge of fix for Bug#54444. 2010-08-11 17:55:07 +02:00
Martin Hansson
41cfa3e769 Bug#54444: Do not run main.range test for products without partitioning
feature

The test for bug no 50939 was put in range.test which isn't such a good idea
since it requires partitioning. Fixed by moving the test case to
partitioning_range.test.
2010-08-11 14:13:59 +02:00
Alexey Kopytov
5d407d0c1a Manual merge of mysql-5.1-bugteam to mysql-trunk-merge.
Conflicts:

Text conflict in mysql-test/r/partition_innodb.result
Text conflict in sql/field.h
Text conflict in sql/item.h
Text conflict in sql/item_cmpfunc.h
Text conflict in sql/item_sum.h
Text conflict in sql/log_event_old.cc
Text conflict in sql/protocol.cc
Text conflict in sql/sql_select.cc
Text conflict in sql/sql_yacc.yy
2010-03-20 23:23:42 +03:00
Mattias Jonsson
e46d120e8e Bug#48229: group by performance issue of partitioned table
Problem was block_size on partitioned tables was not set,
resulting in keys_per_block was not correct which affects
the cost calculation for read time of indexes (including
cost for group min/max).Which resulted in a bad optimizer
decision.

Fixed by setting stats.block_size correctly.

mysql-test/r/partition_range.result:
  Bug#48229: group by performance issue of partitioned table
  
  Added result
mysql-test/t/partition_range.test:
  Bug#48229: group by performance issue of partitioned table
  
  Added test
sql/ha_partition.cc:
  Bug#48229: group by performance issue of partitioned table
  
  Added missing assignment of stats.block_size.
2010-03-04 12:09:09 +01:00
Mikael Ronstrom
7548f142c3 BUG#49591, Fixed version string in SHOW CREATE TABLE to accomodate for column list partitioning and new function to_seconds 2009-12-17 18:39:10 +01:00
Mikael Ronstrom
caa4fffa00 Changed COLUMN_LIST to COLUMNS after arch review 2009-10-29 18:04:23 +01:00
Mikael Ronstrom
540015aac8 Merge 2009-10-21 20:11:27 +02:00
Mikael Ronstrom
e30ccf7a67 Fixed Information schema for column list partitioned tables 2009-10-21 20:04:34 +02:00
Mikael Ronstrom
bbd922b09c Removed column_list and fixed all issues relating to this change 2009-10-21 12:40:21 +02:00
Mikael Ronstrom
760dd08d97 Merged in latest changes 2009-10-16 17:44:49 +02:00
Mikael Ronstrom
29b7a0aadc Removed GLOBAL INDEX syntax, need to develop GLOBAL indexes before adding syntax for it 2009-10-16 17:41:15 +02:00
Mikael Ronstrom
c90669c4d4 Fixed removal of column_list keyword for VALUES part, retained for PARTITION BY RANGE/LIST COLUMN_LIST, not entirely working yet 2009-10-16 16:16:06 +02:00
Mikael Ronstrom
6942c25e73 WL#3352, Introducing Column list partitioning, makes it possible to partition on most data types, makes it possible to prune on multi-field partitioning 2009-09-15 17:07:52 +02:00
Mattias Jonsson
3e1d88d188 Bug#30573: Ordered range scan over partitioned tables returns some rows twice
and
Bug#33555: Group By Query does not correctly aggregate partitions

Backport of bug-33257 which is the same bug.

read_range_*() calls was not passed to the partition handlers,
but was translated to index_read/next family calls.
Resulting in duplicates rows and wrong aggregations.

mysql-test/r/partition_range.result:
  Bug#30573: Ordered range scan over partitioned tables returns some rows twice
  
  Updated result file
mysql-test/t/partition_range.test:
  Bug#30573: Ordered range scan over partitioned tables returns some rows twice
  
  Re-enabled the test
sql/ha_partition.cc:
  Bug#30573: Ordered range scan over partitioned tables returns some rows twice
  
  backport of bug-33257, correct handling of read_range_* calls,
  without converting them to index_read/next calls
sql/ha_partition.h:
  Bug#30573: Ordered range scan over partitioned tables returns some rows twice
  
  backport of bug-33257, correct handling of read_range_* calls,
  without converting them to index_read/next calls
2008-09-18 22:49:34 +03:00
unknown
a7f2f9514e Merge dator6.(none):/home/mikael/mysql_clones/bug32943
into  dator6.(none):/home/mikael/mysql_clones/mysql-5.1-engines


sql/sql_partition.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
mysql-test/r/partition_range.result:
  manual merge
mysql-test/t/partition_range.test:
  manual merge
2008-02-13 11:29:50 +01:00
unknown
21e654a828 BUG#33429: No check for maxvalue before adding partition
mysql-test/r/partition_range.result:
  Added new test cases
mysql-test/t/partition_range.test:
  Added new test cases
sql/sql_partition.cc:
  Added check that last partition hasn't got maxvalue defined when
  executing ADD PARTITION
2008-01-28 16:11:43 +01:00
unknown
516f95acea BUG#32943: Fixed buggy lock handling of ALTER TABLE for partitioning
mysql-test/r/partition_range.result:
  Added new test cases for lock tables and ALTER TABLE for
  partitions, also added a test case with a trigger.
mysql-test/t/partition_range.test:
  Added new test cases for lock tables and ALTER TABLE for
  partitions, also added a test case with a trigger.
sql/mysql_priv.h:
  Added WFRM_KEEP_SHARE for use of code not to be used otherwise
sql/sql_partition.cc:
  Removed get_name_lock and release_name_lock, use
  close_data_files_and_morph_locks which leaves an
  exclusive name lock after completing.
  Reopen table after completing if under lock tables
  Updated comments
sql/sql_table.cc:
  Ensure that code to set partition syntax isn't used other than
  when specifically asked to do it.
2008-01-28 15:20:55 +01:00
unknown
f61f5f72f5 additional after merge fix
mysql-test/r/partition_range.result:
  removed fix for bug#30573
mysql-test/suite/parts/r/rpl_partition.result:
  updated result file
mysql-test/t/partition_range.test:
  removed test case for bug#30573
sql/ha_partition.cc:
  removed fix for bug#30573
2007-12-13 21:34:05 +04:00
unknown
0b22925cc0 BUG#30573: Ordered range scan over partitioned tables returns some rows twice
The problem: ha_partition::read_range_first() could return a record that is 
outside of the scanned range. If that record happened to be in the next 
subsequent range, it would satisfy the WHERE and appear in the output twice.
(we would get it the second time when scanning the next subsequent range)

Fix: 
Made ha_partition::read_range_first() check if the returned recod is within
the scanned range, like other read_range_first() implementations do.


mysql-test/r/partition_range.result:
  BUG#30573: Ordered range scan over partitioned tables returns some rows twice
   - Testcase
mysql-test/t/partition_range.test:
  BUG#30573: Ordered range scan over partitioned tables returns some rows twice
   - Testcase
sql/ha_partition.cc:
  BUG#30573: Ordered range scan over partitioned tables returns some rows twice
  - Make ha_partition::read_range_first() check if the returned record is 
    within the range.
2007-11-20 05:02:49 +03: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
93f4daf1b4 BUG#18198: Partition function handling
Fixes of after review fixes


mysql-test/r/partition_hash.result:
  Fixed test cases
mysql-test/r/partition_range.result:
  Fixed test cases
mysql-test/t/partition_range.test:
  Fixed test cases
sql/ha_ndbcluster.cc:
  Fixed error printout to avoid complex character set code in print_error
sql/ha_partition.cc:
  Fixed error printout to avoid complex character set code in print_error
sql/partition_info.cc:
  Fixed error printout to avoid complex character set code in print_error
sql/partition_info.h:
  Fixed error printout to avoid complex character set code in print_error
sql/sql_partition.cc:
  indendentation fix
2006-10-02 15:52:29 -04:00
unknown
417c38db9c BUG#18198: Partition function handling
Review fixes


mysql-test/r/partition_range.result:
  New test cases
mysql-test/t/partition_hash.test:
  New test cases
mysql-test/t/partition_range.test:
  New test cases
sql/item.h:
  Review fixes
sql/partition_info.cc:
  Review fixes
sql/sql_partition.cc:
  Review fixes
2006-09-30 17:38:15 -04:00
unknown
dc9613ca36 Merge dator5.(none):/home/pappa/clean-mysql-5.1-kt
into  dator5.(none):/home/pappa/bug18198


mysql-test/r/partition.result:
  Auto merged
mysql-test/r/partition_range.result:
  Auto merged
mysql-test/t/partition.test:
  Auto merged
mysql-test/t/partition_range.test:
  Auto merged
sql/sql_table.cc:
  Auto merged
mysql-test/r/partition_error.result:
  SCCS merged
mysql-test/t/partition_error.test:
  e
  C
  quit
  exit
2006-09-28 06:16:16 -04:00
unknown
2c9ab3a12a Merge dator5.(none):/home/pappa/clean-mysql-5.1
into  dator5.(none):/home/pappa/bug18198


mysql-test/r/partition.result:
  Auto merged
mysql-test/r/partition_range.result:
  Auto merged
mysql-test/t/partition_range.test:
  Auto merged
sql/item_func.h:
  Auto merged
sql/item_strfunc.h:
  Auto merged
sql/partition_info.cc:
  Auto merged
sql/sql_partition.cc:
  Auto merged
sql/sql_table.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
mysql-test/t/partition.test:
  manual merge
sql/item.h:
  manual merge
sql/item_cmpfunc.h:
  manual merge
2006-09-26 01:49:14 -04:00
unknown
d710ccf82c Rearranged test cases, move InnoDB test cases to partition_innodb 2006-09-08 03:18:05 -04:00
unknown
d6c2a6daec BUG#21339: Crash at EXPLAIN PARTITIONS
Caused by missing check for end of partitions in prune range check


mysql-test/r/partition.result:
  Added test case for duplicate bug#21388
mysql-test/r/partition_range.result:
  Added new test case for bug#21339
mysql-test/t/partition.test:
  Added test case for duplicate bug#21388
mysql-test/t/partition_range.test:
  Added new test case for bug#21339
sql/sql_partition.cc:
  Check so that we don't set outer range to be larger than max_partition
2006-08-05 16:12:24 -04:00
unknown
bcd98d512d BUG#18198: Fixes to handle VARCHAR strings properly
New methods to handle VARCHAR strings and CHAR's which are not
using a binary collation.
Indentation fixes
Now strings are run through strnxfrm before they are processed
by the partition function
We do not allow collations where strnxfrm expands the string since
we want the resulting string to fit in the same value range as
the original.


mysql-test/r/partition_range.result:
  New test cases
mysql-test/t/partition_range.test:
  New test cases
sql/partition_info.h:
  New methods to handle VARCHAR strings and CHAR's which are not
  using a binary collation.
sql/sql_partition.cc:
  New methods to handle VARCHAR strings and CHAR's which are not
  using a binary collation.
  Indentation fixes
  Now strings are run through strnxfrm before they are processed
  by the partition function
  We do not allow collations where strnxfrm expands the string since
  we want the resulting string to fit in the same value range as
  the original.
2006-08-02 06:40:25 -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
f481a6a894 BUG#20770: Added some more test cases
mysql-test/r/partition_range.result:
  New test case
mysql-test/t/partition_range.test:
  New test case
sql/partition_info.cc:
  No changes
2006-07-05 16:06:51 -04:00
unknown
7431df6031 merge fixes 2006-06-14 22:37:20 -04:00
unknown
e6170de4c0 Merge c-0409e253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/clean-mysql-5.1
into  c-0409e253.1238-1-64736c10.cust.bredbandsbolaget.se:/home/pappa/bug16002


sql/ha_ndbcluster.cc:
  Auto merged
sql/sql_partition.h:
  Auto merged
sql/sql_show.cc:
  Auto merged
sql/sql_yacc.yy:
  Auto merged
mysql-test/r/partition.result:
  manual merge
mysql-test/r/partition_error.result:
  manual merge
mysql-test/r/partition_range.result:
  manual merge
mysql-test/t/partition.test:
  manual merge
mysql-test/t/partition_error.test:
  manual merge
mysql-test/t/partition_range.test:
  manual merge
sql/ha_partition.cc:
  manual merge
sql/partition_element.h:
  manual merge
sql/partition_info.cc:
  manual merge
sql/partition_info.h:
  manual merge
sql/share/errmsg.txt:
  manual merge
sql/sql_partition.cc:
  manual merge
sql/sql_table.cc:
  manual merge
sql/table.cc:
  manual merge
2006-06-14 09:12:07 -04:00
unknown
5239cba4b5 BUG#16002: More review fixes
mysql-test/r/partition_range.result:
  Changed test cases
mysql-test/t/partition_range.test:
  Changed test cases
sql/partition_info.cc:
  Changes to resue signed integer code for unsigned integer partition functions
  Basic idea is to store value - 0x8000000000000000 in list_array and range_int_array
  and also perform this subtraction before applying get_partition_id_range and so
  forth.
sql/sql_partition.cc:
  Changes to resue signed integer code for unsigned integer partition functions
  Basic idea is to store value - 0x8000000000000000 in list_array and range_int_array
  and also perform this subtraction before applying get_partition_id_range and so
  forth.
2006-06-06 11:54:21 -04:00
unknown
ce80d6573c BUG#19830: ALTER TABLE REORGANIZE partition crashes
New test cases added


mysql-test/r/partition_range.result:
  New test case
mysql-test/t/partition_range.test:
  New test case
2006-05-27 20:16:17 -04:00
unknown
faa5f3e007 BUG#16002: Make partition functions that are unsigned work properly
mysql-test/r/partition.result:
  A number of new test cases for unsigned partition functions
mysql-test/r/partition_error.result:
  A number of new test cases for unsigned partition functions
mysql-test/r/partition_range.result:
  A number of new test cases for unsigned partition functions
mysql-test/t/partition.test:
  A number of new test cases for unsigned partition functions
mysql-test/t/partition_error.test:
  A number of new test cases for unsigned partition functions
mysql-test/t/partition_range.test:
  A number of new test cases for unsigned partition functions
sql/ha_partition.cc:
  Error message for no partition found needs to take signed/unsigned into account when printing erroneus value
sql/partition_element.h:
  Introduced signed_flag and max_value flag on partition elements
  Also list is now a list of a struct rather than simply longlong values
  Small rearranges of order
sql/partition_info.cc:
  Introduced signed_flag and max_value flag on partition elements
  Also list is now a list of a struct rather than simply longlong values
  Small rearranges of order
  Lots of new code to handle checks of proper definition of table when
  partition function is unsigned
sql/partition_info.h:
  Mostly rearrangement of code and some addition of a THD object in check_partition_info call
  plus a new method for comparing unsigned values
sql/share/errmsg.txt:
  Negative values not ok for unsigned partition functions
sql/sql_partition.cc:
  Fixed a multi-thread bug (when defining several partitioned tables in parallel)
  New code to generate partition syntax that takes into account sign of constants.
  Made function fix_fields_part_func more reusable.
  Fixed a number of get_partition_id functions for range and list and similar functions
  for partition pruning code.
  Unfortunately fairly much duplication of code with just small changes.
sql/sql_partition.h:
  New function headers
sql/sql_show.cc:
  Changed list of values for LIST partitioned tables
  Also fixed printing of unsigned values in INFORMATION SCHEMA for partitioned table
sql/sql_table.cc:
  Fixed for new interface
sql/sql_yacc.yy:
  Moved definition of struct to partition_element.h
  Added code to keep track of sign of constants in
  RANGE and LIST partitions
sql/table.cc:
  Fixed for new interface
2006-04-17 22:51:34 -04:00
unknown
3378a31c6b 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
2006-04-11 23:35:48 -04:00
unknown
0c63aee7f9 Bug # 17173 - Partitions: less than search fails
Bug # 17894 - Comparison with "less than" operator fails with range partition

The problem here was that on queries such as < 3, the range given is NULL < n < 3.
The null part works correctly where the null value is stored in rec[0] and the
field is marked as being null.  However, when the 3 is processed, the 3 is places
on rec[0] but the null flag is left uncleared.

partition_range.result:
  Results block for bug #17894
partition_range.test:
  Test block for bug #17894
partition_list.result:
  Results block for bug #17173
partition_list.test:
  Test block for bug #17173
opt_range.cc:
  call set_notnull to clear any null flag that may have been set


sql/opt_range.cc:
  call set_notnull to clear any null flag that may have been set
mysql-test/t/partition_list.test:
  Test block for bug #17173
mysql-test/r/partition_list.result:
  Results block for bug #17173
mysql-test/t/partition_range.test:
  Test block for bug #17894
mysql-test/r/partition_range.result:
  Results block for bug #17894
2006-03-13 14:50:16 +01:00
unknown
9008814ef7 tests fixed as we implement informative error message
mysql-test/r/partition_list.result:
  test result fixed
mysql-test/r/partition_range.result:
  test result fixed
mysql-test/t/partition_list.test:
  test fixed
mysql-test/t/partition_range.test:
  test fixed
2005-12-15 20:56:14 +04:00
unknown
11c503567f Handle default engine type better for
partitioned tables


mysql-test/r/partition.result:
  New test cases for SHOW CREATE TABLE
mysql-test/r/partition_range.result:
  New test cases for SHOW CREATE TABLE
mysql-test/t/partition.test:
  New test cases for SHOW CREATE TABLE
mysql-test/t/partition_range.test:
  New test cases for SHOW CREATE TABLE
sql/handler.h:
  Handle default engine type better
sql/sql_partition.cc:
  Handle default engine type better
sql/sql_show.cc:
  Handle default engine type better
sql/sql_table.cc:
  Handle default engine type better
sql/sql_yacc.yy:
  Handle default engine type better
sql/table.cc:
  Handle default engine type better
sql/unireg.cc:
  Handle default engine type better
2005-09-20 10:29:59 -04:00
unknown
809fd0b205 moved all partition create table error tests to one test for easier maintenance 2005-07-20 14:46:02 +02:00
unknown
cd483c5520 Patch for push of wl1354 Partitioning 2005-07-18 13:31:02 +02:00