Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-40451

spider combination tests have no effect

    XMLWordPrintable

Details

    • Not for Release Notes

    Description

      Spider tests load the ha_spider plugin during the test under storage/spider/mysql-test/spider/include/init_spider.inc or directly.

      The spider test combinations define system variables. Without the spider plugin loaded these are ignored:

      $ find storage/spider/mysql-test/ -name \*combin\* | xargs more
      ::::::::::::::
      storage/spider/mysql-test/spider/bg/combinations
      ::::::::::::::
      ::::::::::::::
      storage/spider/mysql-test/spider/bg/combinations
      ::::::::::::::
      [group_by_handler]
      loose_spider_disable_group_by_handler=0
       
      [usual_handler]
      loose_spider_disable_group_by_handler=1
      ::::::::::::::
      storage/spider/mysql-test/spider/bugfix/combinations
      ::::::::::::::
      [group_by_handler]
      loose_spider_disable_group_by_handler=0
       
      [usual_handler]
      loose_spider_disable_group_by_handler=1
      ::::::::::::::
      storage/spider/mysql-test/spider/feature/combinations
      ::::::::::::::
      [group_by_handler]
      loose_spider_disable_group_by_handler=0
       
      [usual_handler]
      loose_spider_disable_group_by_handler=1
      ::::::::::::::
      storage/spider/mysql-test/spider/regression/e1121/combinations
      ::::::::::::::
      [group_by_handler]
      loose_spider_disable_group_by_handler=0
       
      [usual_handler]
      loose_spider_disable_group_by_handler=1
      ::::::::::::::
      storage/spider/mysql-test/spider/regression/e112122/combinations
      ::::::::::::::
      [group_by_handler]
      loose_spider_disable_group_by_handler=0
       
      [usual_handler]
      loose_spider_disable_group_by_handler=1
      ::::::::::::::
      storage/spider/mysql-test/spider/combinations
      ::::::::::::::
      [group_by_handler]
      loose_spider_disable_group_by_handler=0
       
      [usual_handler]
      loose_spider_disable_group_by_handler=1
      

      To correct, spider combination file shouldn't contain the system variable.

      e.g fix

      diff --git a/storage/spider/mysql-test/spider/feature/combinations b/storage/spider/mysql-test/spider/feature/combinations
      index cad4d107176..cb2a8c78ea7 100644
      --- a/storage/spider/mysql-test/spider/feature/combinations
      +++ b/storage/spider/mysql-test/spider/feature/combinations
      @@ -1,5 +1,3 @@
       [group_by_handler]
      -loose_spider_disable_group_by_handler=0
       
       [usual_handler]
      -loose_spider_disable_group_by_handler=1
      diff --git a/storage/spider/mysql-test/spider/feature/t/pushdown_timestamp_diff.test b/storage/spider/mysql-test/spider/feature/t/pushdown_timestamp_diff.test
      index 81251860f74..09ed7620db5 100644
      --- a/storage/spider/mysql-test/spider/feature/t/pushdown_timestamp_diff.test
      +++ b/storage/spider/mysql-test/spider/feature/t/pushdown_timestamp_diff.test
      @@ -3,7 +3,7 @@
       --echo #
       --disable_query_log
       --disable_result_log
      ---source ../../t/test_init.inc
      +--source test_init.inc
       --enable_result_log
       --enable_query_log
      

      And some more work

      spider/feature.pushdown_timestamp_diff 'group_by_handler' [ pass ]    605
      spider/feature.pushdown_timestamp_diff 'usual_handler' [ fail ]
              Test ended at 2026-07-20 14:31:53
       
      CURRENT_TEST: spider/feature.pushdown_timestamp_diff
      --- /home/dan/repos/mariadb-server-main/storage/spider/mysql-test/spider/feature/r/pushdown_timestamp_diff,usual_handler.result~	2026-07-20 14:31:51.892845617 +1000
      +++ /home/dan/repos/mariadb-server-main/storage/spider/mysql-test/spider/feature/r/pushdown_timestamp_diff,usual_handler.reject2026-07-20 14:31:52.864855241 +1000
      @@ -28,7 +28,7 @@
       interval year
       explain select a, b, timestampdiff(year, '2000-01-01 00:00:00', c) from t1;
       id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
      -1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	2	
      +1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Storage engine handles GROUP BY
       select a, b, timestampdiff(year, '2000-01-01 00:00:00', c) from t1;
       a	b	timestampdiff(year, '2000-01-01 00:00:00', c)
       1	a	18
      @@ -37,7 +37,7 @@
       interval quarter
       explain select a, b, timestampdiff(quarter, '2000-01-01 00:00:00', c) from t1;
       id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
      -1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	2	
      +1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Storage engine handles GROUP BY
       select a, b, timestampdiff(quarter, '2000-01-01 00:00:00', c) from t1;
       a	b	timestampdiff(quarter, '2000-01-01 00:00:00', c)
       1	a	75
      @@ -46,7 +46,7 @@
       interval month
       explain select a, b, timestampdiff(month, '2000-01-01 00:00:00', c) from t1;
       id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
      -1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	2	
      +1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Storage engine handles GROUP BY
       select a, b, timestampdiff(month, '2000-01-01 00:00:00', c) from t1;
       a	b	timestampdiff(month, '2000-01-01 00:00:00', c)
       1	a	226
      @@ -55,7 +55,7 @@
       interval week
       explain select a, b, timestampdiff(week, '2000-01-01 00:00:00', c) from t1;
       id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
      -1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	2	
      +1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Storage engine handles GROUP BY
       select a, b, timestampdiff(week, '2000-01-01 00:00:00', c) from t1;
       a	b	timestampdiff(week, '2000-01-01 00:00:00', c)
       1	a	982
      @@ -64,7 +64,7 @@
       interval day
       explain select a, b, timestampdiff(day, '2000-01-01 00:00:00', c) from t1;
       id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
      -1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	2	
      +1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Storage engine handles GROUP BY
       select a, b, timestampdiff(day, '2000-01-01 00:00:00', c) from t1;
       a	b	timestampdiff(day, '2000-01-01 00:00:00', c)
       1	a	6879
      @@ -73,7 +73,7 @@
       internal hour
       explain select a, b, timestampdiff(hour, '2000-01-01 00:00:00', c) from t1;
       id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
      -1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	2	
      +1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Storage engine handles GROUP BY
       select a, b, timestampdiff(hour, '2000-01-01 00:00:00', c) from t1;
       a	b	timestampdiff(hour, '2000-01-01 00:00:00', c)
       1	a	165106
      @@ -82,7 +82,7 @@
       internal minute
       explain select a, b, timestampdiff(minute, '2000-01-01 00:00:00', c) from t1;
       id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
      -1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	2	
      +1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Storage engine handles GROUP BY
       select a, b, timestampdiff(minute, '2000-01-01 00:00:00', c) from t1;
       a	b	timestampdiff(minute, '2000-01-01 00:00:00', c)
       1	a	9906381
      @@ -91,7 +91,7 @@
       internal second
       explain select a, b, timestampdiff(second, '2000-01-01 00:00:00', c) from t1;
       id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
      -1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	2	
      +1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Storage engine handles GROUP BY
       select a, b, timestampdiff(second, '2000-01-01 00:00:00', c) from t1;
       a	b	timestampdiff(second, '2000-01-01 00:00:00', c)
       1	a	594382899
      @@ -100,7 +100,7 @@
       internal microsecond
       explain select a, b, timestampdiff(microsecond, '2000-01-01 00:00:00', c) from t1;
       id	select_type	table	type	possible_keys	key	key_len	ref	rows	Extra
      -1	SIMPLE	t1	ALL	NULL	NULL	NULL	NULL	2	
      +1	SIMPLE	NULL	NULL	NULL	NULL	NULL	NULL	NULL	Storage engine handles GROUP BY
       select a, b, timestampdiff(microsecond, '2000-01-01 00:00:00', c) from t1;
       a	b	timestampdiff(microsecond, '2000-01-01 00:00:00', c)
       1	a	594382899000000
       
      Result length mismatch
      

      Attachments

        Activity

          People

            ycp Yuchen Pei
            danblack Daniel Black
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.