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.
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
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.
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
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
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
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.
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
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.
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
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
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
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
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
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
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.
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
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.
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
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
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
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
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