diff options
Diffstat (limited to 'mysql-test/suite/parts/inc/partition_syntax_1.inc')
-rw-r--r-- | mysql-test/suite/parts/inc/partition_syntax_1.inc | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/mysql-test/suite/parts/inc/partition_syntax_1.inc b/mysql-test/suite/parts/inc/partition_syntax_1.inc new file mode 100644 index 00000000..a7168b6a --- /dev/null +++ b/mysql-test/suite/parts/inc/partition_syntax_1.inc @@ -0,0 +1,85 @@ +################################################################################ +# inc/partition_syntax_1.inc # +# # +# Purpose: # +# Auxiliary script, only useful when sourced by inc/partition_syntax.inc # +# # +# Try to create a table with number of partitions/subpartitions # +# = $part_number. Print the layout of the table and drop it. # +# # +# The parameter $part_number must be set before sourcing this script. # +# # +#------------------------------------------------------------------------------# +# Original Author: mleich # +# Original Date: 2006-03-05 # +# Change Author: mleich # +# Change Date: 2007-10-08 # +# Change: Fix for # +# Bug#31481 test suite parts: Many tests fail because of # +# changed server error codes # +################################################################################ + +--disable_abort_on_error +eval CREATE TABLE t1 ( +$column_list +) +PARTITION BY HASH(f_int1) PARTITIONS $part_number; +--enable_abort_on_error +--disable_query_log +eval SET @my_errno= $mysql_errno ; +let $run= `SELECT @my_errno = 0`; +# Expected error codes are +# 0, ER_PARSE_ERROR (Reason: assign -1 partitions), ER_TOO_MANY_PARTITIONS_ERROR +# and ER_NO_PARTS_ERROR +if (`SELECT @my_errno NOT IN (0,$ER_PARSE_ERROR,$ER_TOO_MANY_PARTITIONS_ERROR, + $ER_NO_PARTS_ERROR)`) +{ + --echo # The last command got an unexepected error response. + --echo # Expected/handled SQL codes are 0,$ER_PARSE_ERROR,$ER_TOO_MANY_PARTITIONS_ERROR,$ER_NO_PARTS_ERROR + SELECT '# SQL code we got was: ' AS "", @my_errno AS ""; + --echo # Sorry, have to abort. + exit; + --echo +} +--enable_query_log +# +# If this operation was successfull, print layout + drop this table +if ($run) +{ + --source suite/parts/inc/partition_layout_check1.inc + eval DROP TABLE t1; +} +#### Try to create a table with the given subpartition number +--disable_abort_on_error +eval CREATE TABLE t1 ( +$column_list +) +PARTITION BY RANGE(f_int1) SUBPARTITION BY HASH(f_int1) +SUBPARTITIONS $part_number +(PARTITION part1 VALUES LESS THAN ($max_row_div2), + PARTITION part2 VALUES LESS THAN $MAX_VALUE); +--enable_abort_on_error +--disable_query_log +eval SET @my_errno= $mysql_errno ; +let $run= `SELECT @my_errno = 0`; +# Expected error codes are +# 0, ER_PARSE_ERROR (Reason: assign -1 partitions), ER_TOO_MANY_PARTITIONS_ERROR +# and ER_NO_PARTS_ERROR +if (`SELECT @my_errno NOT IN (0,$ER_PARSE_ERROR,$ER_TOO_MANY_PARTITIONS_ERROR, + $ER_NO_PARTS_ERROR)`) +{ + --echo # The last command got an unexepected error response. + --echo # Expected/handled SQL codes are 0,$ER_PARSE_ERROR,$ER_TOO_MANY_PARTITIONS_ERROR,$ER_NO_PARTS_ERROR + SELECT '# SQL code we got was: ' AS "", @my_errno AS ""; + --echo # Sorry, have to abort. + exit; + --echo +} +--enable_query_log +# +# If this operation was successfull, print layout + drop this table +if ($run) +{ + --source suite/parts/inc/partition_layout_check1.inc + eval DROP TABLE t1; +} |