mirror of
https://github.com/MariaDB/server.git
synced 2025-01-21 22:34:18 +01:00
bfed329e17
Bug #30316: Some "parts" tests fail because the server uses "--secure-file-priv" Bug #30341: Test suite "parts" needs to be adapted to the new rules disallowing many functio Bug #30408: Suite "parts" needs bug numbers updated Bug #30411: Suite "parts" needs bug numbers updated: ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF Bug #30576: part_supported_sql_func_innodb.test tries to LOAD DATA outside of var dir Bug #30581: partition_value tests use disallowed CAST() function Included are some general fixes to allow the "parts" test suite to be run successfully. This includes disabling a few tests or parts of tests, cleaning up the test cases and their results, etc. Basically, these tests have not been run for some time, and had suffered some bit rot. The bugs were fixed as a single changeset, because in some ways they depend on each other. I couldn't be sure I'd updated all the error codes (for bugs 30408 and 30411) without also adapting to the new allowed functions rules (bug 30341), and vice versa. mysql-test/include/partition_layout.inc: Ensure that the contents of $MYSQLTEST_VARDIR are not in the result file mysql-test/suite/parts/inc/part_blocked_sql_funcs_main.inc: Add ASCII(), ORD() and WEEKOFYEAR() as blocked functions (they depend too much on character set, etc.). Remove DATEDIFF() as a blocked function (it is implemented in terms of TO_DAYS() and the minus operator). mysql-test/suite/parts/inc/part_supported_sql_funcs_main.inc: Remove ASCII(), ORD() and WEEKOFYEAR(), which are not allowed functions. Remove uses of CAST() in partitioning functions - it is not allowed. Disable testing of FLOOR() and CEILING on non-integer fields, due to Bug 30577. Test MOD() with an integer field instead of floating point (it has a hybrid result type, like FLOOR() and CEILING(), but makes sense to use with an integer field). Add DATEDIFF() as an allowed function, because it is implemented in terms of TO_DAYS() and the minus operator. mysql-test/suite/parts/inc/partition_alter3.inc: Remove use of disallowed CAST() function in partitioning mysql-test/suite/parts/inc/partition_blocked_sql_funcs.inc: The blocked functions are actually blocked now, so expect errors. This is a result of the fix for bug 18198. mysql-test/suite/parts/inc/partition_date.inc: Remove uses of CAST() in partitioning functions - it is not allowed. mysql-test/suite/parts/inc/partition_datetime.inc: Remove uses of CAST() in partitioning functions - it is not allowed. mysql-test/suite/parts/inc/partition_decimal.inc: Remove uses of CAST() in partitioning functions - it is not allowed. Disable testing of FLOOR() and CEILING(), due to Bug 30577. mysql-test/suite/parts/inc/partition_directory.inc: Ensure that the contents of $MYSQLTEST_VARDIR are not in the result file mysql-test/suite/parts/inc/partition_double.inc: Remove uses of CAST() in partitioning functions - it is not allowed. Disable testing of FLOOR() and CEILING(), due to Bug 30577. mysql-test/suite/parts/inc/partition_enum.inc: Remove use of CAST(), which is disallowed. Remove test which relies on CAST(). mysql-test/suite/parts/inc/partition_float.inc: Remove uses of CAST() in partitioning functions - it is not allowed. Disable testing of FLOOR() and CEILING(), due to Bug 30577. mysql-test/suite/parts/inc/partition_layout_check1.inc: Ensure that the contents of $MYSQLTEST_VARDIR are not in the result file mysql-test/suite/parts/inc/partition_layout_check2.inc: Ensure that the contents of $MYSQLTEST_VARDIR are not in the result file mysql-test/suite/parts/inc/partition_methods1.inc: Ensure that the contents of $MYSQLTEST_VARDIR are not in the result file mysql-test/suite/parts/inc/partition_set.inc: Remove test which relies on CAST(), which is disallowed. mysql-test/suite/parts/inc/partition_supported_sql_funcs.inc: Fix Bug #30576: part_supported_sql_func_innodb.test tries to LOAD DATA outside of var dir Move data files into std_data/parts/*, so they can be used with LOAD DATA INFILE '../std_data_ln/parts/*' while --secure-file-priv is in force. mysql-test/suite/parts/inc/partition_syntax.inc: Remove use of CAST(), which is disallowed. mysql-test/suite/parts/inc/partition_time.inc: Remove use of CAST(), which is disallowed. mysql-test/suite/parts/inc/partition_timestamp.inc: Remove use of CAST(), which is disallowed. mysql-test/suite/parts/inc/partition_value.inc: Disable this entire test file, because it relies on using CAST() as a partitioning function, which is disallowed. See Bug 30581, "partition_value tests use disallowed CAST() function". mysql-test/suite/parts/r/part_blocked_sql_func_innodb.result: Update test case results mysql-test/suite/parts/r/part_blocked_sql_func_myisam.result: Update test case results mysql-test/suite/parts/r/part_supported_sql_func_innodb.result: Update test case results mysql-test/suite/parts/r/part_supported_sql_func_myisam.result: Update test case results mysql-test/suite/parts/r/partition_alter3_innodb.result: Update test case results mysql-test/suite/parts/r/partition_alter3_myisam.result: Update test case results mysql-test/suite/parts/r/partition_basic_innodb.result: Update test case results mysql-test/suite/parts/r/partition_basic_myisam.result: Update test case results mysql-test/suite/parts/r/partition_datetime_innodb.result: Update test case results mysql-test/suite/parts/r/partition_datetime_myisam.result: Update test case results mysql-test/suite/parts/r/partition_decimal_innodb.result: Update test case results mysql-test/suite/parts/r/partition_decimal_myisam.result: Update test case results mysql-test/suite/parts/r/partition_float_myisam.result: Update test case results mysql-test/suite/parts/r/partition_syntax_innodb.result: Update test case results mysql-test/suite/parts/r/partition_syntax_myisam.result: Update test case results mysql-test/suite/parts/t/disabled.def: Mark several more tests as disabled: partition_value_myisam, partition_value_innodb, part_supported_sql_func_ndb, rpl_ndb_dd_partitions, and partition_float_innodb mysql-test/std_data/parts/part_supported_sql_funcs_int_ch1.inc: Rename: mysql-test/suite/parts/inc/part_supported_sql_funcs_int_ch1.inc -> mysql-test/std_data/parts/part_supported_sql_funcs_int_ch1.inc mysql-test/std_data/parts/part_supported_sql_funcs_int_date.inc: Rename: mysql-test/suite/parts/inc/part_supported_sql_funcs_int_date.inc -> mysql-test/std_data/parts/part_supported_sql_funcs_int_date.inc mysql-test/std_data/parts/part_supported_sql_funcs_int_float.inc: Rename: mysql-test/suite/parts/inc/part_supported_sql_funcs_int_float.inc -> mysql-test/std_data/parts/part_supported_sql_funcs_int_float.inc mysql-test/std_data/parts/part_supported_sql_funcs_int_int.inc: Rename: mysql-test/suite/parts/inc/part_supported_sql_funcs_int_int.inc -> mysql-test/std_data/parts/part_supported_sql_funcs_int_int.inc mysql-test/std_data/parts/part_supported_sql_funcs_int_time.inc: Rename: mysql-test/suite/parts/inc/part_supported_sql_funcs_int_time.inc -> mysql-test/std_data/parts/part_supported_sql_funcs_int_time.inc mysql-test/suite/parts/inc/partition_alter_1.inc: Correct expected error codes, which changed due to bug 29245. mysql-test/suite/parts/inc/partition_check.inc: Correct expected error codes, which changed due to bug 29245. mysql-test/suite/parts/inc/partition_syntax_1.inc: Correct expected error codes, which changed due to bug 29245.
89 lines
2.5 KiB
PHP
89 lines
2.5 KiB
PHP
--disable_query_log
|
|
# DATA DIRECTORY
|
|
eval SET @data_dir = 'DATA DIRECTORY =
|
|
''/tmp''';
|
|
let $data_directory = `select @data_dir`;
|
|
|
|
#INDEX DIRECTORY
|
|
eval SET @indx_dir = 'INDEX DIRECTORY =
|
|
''/tmp''';
|
|
let $index_directory = `select @indx_dir`;
|
|
--enable_query_log
|
|
|
|
eval create table t1 (a date not null, primary key(a)) engine=$engine
|
|
partition by key (a) (
|
|
partition pa1 $data_directory $index_directory max_rows=20 min_rows=2,
|
|
partition pa2 $data_directory $index_directory max_rows=30 min_rows=3,
|
|
partition pa3 $data_directory $index_directory max_rows=30 min_rows=4,
|
|
partition pa4 $data_directory $index_directory max_rows=40 min_rows=2);
|
|
show create table t1;
|
|
insert into t1 values ('1975-01-01'), ('2020-12-31'), ('1980-10-14'), ('2000-06-15');
|
|
select * from t1;
|
|
select * from t1 where a=19801014;
|
|
delete from t1 where a=19801014;
|
|
select * from t1;
|
|
drop table t1;
|
|
|
|
eval create table t2 (a date not null, primary key(a)) engine=$engine
|
|
partition by key (a) partitions 12;
|
|
show create table t2;
|
|
insert into t2 values ('1975-01-01'), ('2020-12-31'), ('1980-10-14'), ('2000-06-15');
|
|
select * from t2;
|
|
select * from t2 where a='1980-10-14';
|
|
delete from t2 where a='1980-10-14';
|
|
select * from t2;
|
|
delete from t2;
|
|
let $count=28;
|
|
--echo $count inserts;
|
|
#--disable_query_log
|
|
while ($count)
|
|
{
|
|
eval insert into t2 values (19700101+$count-1);
|
|
eval insert into t2 values (19700201+$count-1);
|
|
eval insert into t2 values (19700301+$count-1);
|
|
dec $count;
|
|
}
|
|
#--enable_query_log
|
|
select count(*) from t2;
|
|
select * from t2;
|
|
drop table t2;
|
|
|
|
eval create table t3 (a date not null, primary key(a)) engine=$engine
|
|
partition by range (month(a)) subpartition by key (a)
|
|
subpartitions 3 (
|
|
partition quarter1 values less than (4),
|
|
partition quarter2 values less than (7),
|
|
partition quarter3 values less than (10),
|
|
partition quarter4 values less than (13)
|
|
);
|
|
show create table t3;
|
|
let $count=12;
|
|
--echo $count inserts;
|
|
while ($count)
|
|
{
|
|
eval insert into t3 values (adddate(19700101,interval $count-1 month));
|
|
dec $count;
|
|
}
|
|
select count(*) from t3;
|
|
select * from t3;
|
|
drop table t3;
|
|
|
|
eval create table t4 (a date not null, primary key(a)) engine=$engine
|
|
partition by list (month(a)) subpartition by key (a)
|
|
subpartitions 3 (
|
|
partition quarter1 values in (1,2,3),
|
|
partition quarter2 values in (4,5,6),
|
|
partition quarter3 values in (7,8,9),
|
|
partition quarter4 values in (10,11,12)
|
|
);
|
|
show create table t4;
|
|
let $count=12;
|
|
--echo $count inserts;
|
|
while ($count)
|
|
{
|
|
eval insert into t4 values (adddate(19700101,interval $count-1 month));
|
|
dec $count;
|
|
}
|
|
select count(*) from t4;
|
|
select * from t4;
|
|
drop table t4;
|