diff --git a/storage/spider/mysql-test/spider/r/explicit_partition.result b/storage/spider/mysql-test/spider/r/explicit_partition.result
new file mode 100644
index 00000000000..8b5c05712f0
--- /dev/null
+++ b/storage/spider/mysql-test/spider/r/explicit_partition.result
@@ -0,0 +1,73 @@
+for master_1
+for child2
+child2_1
+child2_2
+child2_3
+for child3
+
+drop and create databases
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+connection child2_1;
+DROP DATABASE IF EXISTS auto_test_remote;
+CREATE DATABASE auto_test_remote;
+USE auto_test_remote;
+connection child2_2;
+DROP DATABASE IF EXISTS auto_test_remote2;
+CREATE DATABASE auto_test_remote2;
+USE auto_test_remote2;
+
+test select 1
+connection master_1;
+SELECT 1;
+1
+1
+
+with partition test
+connection master_1;
+CREATE TABLE ta_l2 (
+a INT,
+b CHAR(1),
+c DATETIME,
+PRIMARY KEY(a)
+) MASTER_1_ENGINE MASTER_1_COMMENT2_P_2_1
+
+Spider crashes if you do not use the first partition first
+after MDEV-11084 (b4a2baffa82e5c07b96a1c752228560dcac1359b)
+SELECT a,b,c FROM ta_l2 PARTITION (pt2);
+a	b	c
+4	d	2003-11-30 05:01:03
+5	c	2001-12-31 23:59:59
+
+Explicit partition selection
+SELECT a,b,c FROM ta_l2 PARTITION (pt1);
+a	b	c
+1	a	2008-08-01 10:21:39
+2	b	2000-01-01 00:00:00
+3	e	2007-06-04 20:03:11
+This also crashes after b4a2baffa82e5c07b96a1c752228560dcac1359b
+SELECT min(a), max(a), min(b), max(b) FROM ta_l2;
+min(a)	max(a)	min(b)	max(b)
+1	5	a	e
+SELECT a,b,c FROM ta_l2 PARTITION (pt2);
+a	b	c
+4	d	2003-11-30 05:01:03
+5	c	2001-12-31 23:59:59
+
+deinit
+connection master_1;
+DROP DATABASE IF EXISTS auto_test_local;
+connection child2_1;
+DROP DATABASE IF EXISTS auto_test_remote;
+connection child2_2;
+DROP DATABASE IF EXISTS auto_test_remote2;
+for master_1
+for child2
+child2_1
+child2_2
+child2_3
+for child3
+
+end of test
diff --git a/storage/spider/mysql-test/spider/t/explicit_partition.test b/storage/spider/mysql-test/spider/t/explicit_partition.test
new file mode 100644
index 00000000000..1aba806b5c4
--- /dev/null
+++ b/storage/spider/mysql-test/spider/t/explicit_partition.test
@@ -0,0 +1,199 @@
+--disable_warnings
+--disable_query_log
+--disable_result_log
+
+# No need to use child group 3
+--let USE_CHILD_GROUP3=0
+--source test_init.inc
+--enable_result_log
+--enable_query_log
+if (!$HAVE_PARTITION)
+{
+  --disable_query_log
+  --disable_result_log
+  --source test_deinit.inc
+  --enable_result_log
+  --enable_query_log
+  --enable_warnings
+  skip Test requires partitioning;
+}
+
+--echo
+--echo drop and create databases
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+CREATE DATABASE auto_test_local;
+USE auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+  --connection child2_1
+  DROP DATABASE IF EXISTS auto_test_remote;
+  CREATE DATABASE auto_test_remote;
+  USE auto_test_remote;
+  --connection child2_2
+  DROP DATABASE IF EXISTS auto_test_remote2;
+  CREATE DATABASE auto_test_remote2;
+  USE auto_test_remote2;
+}
+--enable_warnings
+
+--echo
+--echo test select 1
+--connection master_1
+SELECT 1;
+if ($USE_CHILD_GROUP2)
+{
+  if (!$OUTPUT_CHILD_GROUP2)
+  {
+    --disable_query_log
+    --disable_result_log
+  }
+  --connection child2_1
+  SELECT 1;
+  --connection child2_2
+  SELECT 1;
+  if (!$OUTPUT_CHILD_GROUP2)
+  {
+    --enable_query_log
+    --enable_result_log
+  }
+}
+
+--echo
+--echo with partition test
+if ($HAVE_PARTITION)
+{
+  if ($USE_CHILD_GROUP2)
+  {
+    if (!$OUTPUT_CHILD_GROUP2)
+    {
+      --disable_query_log
+      --disable_result_log
+    }
+    --connection child2_2
+    if ($OUTPUT_CHILD_GROUP2)
+    {
+      --disable_query_log
+      echo CHILD2_2_DROP_TABLES;
+      echo CHILD2_2_CREATE_TABLES;
+    }
+    --disable_warnings
+    eval $CHILD2_2_DROP_TABLES;
+    --enable_warnings
+    eval $CHILD2_2_CREATE_TABLES;
+    if ($OUTPUT_CHILD_GROUP2)
+    {
+      --enable_query_log
+    }
+    if ($USE_GENERAL_LOG)
+    {
+      TRUNCATE TABLE mysql.general_log;
+    }
+    --connection child2_1
+    if ($OUTPUT_CHILD_GROUP2)
+    {
+      --disable_query_log
+      echo CHILD2_1_DROP_TABLES2;
+      echo CHILD2_1_CREATE_TABLES2;
+    }
+    --disable_warnings
+    eval $CHILD2_1_DROP_TABLES2;
+    --enable_warnings
+    eval $CHILD2_1_CREATE_TABLES2;
+    if ($OUTPUT_CHILD_GROUP2)
+    {
+      --enable_query_log
+    }
+    if ($USE_GENERAL_LOG)
+    {
+      TRUNCATE TABLE mysql.general_log;
+    }
+    if (!$OUTPUT_CHILD_GROUP2)
+    {
+      --enable_query_log
+      --enable_result_log
+    }
+  }
+  --connection master_1
+  --disable_query_log
+  echo CREATE TABLE ta_l2 (
+    a INT,
+    b CHAR(1),
+    c DATETIME,
+    PRIMARY KEY(a)
+  ) MASTER_1_ENGINE MASTER_1_COMMENT2_P_2_1;
+  eval CREATE TABLE ta_l2 (
+    a INT,
+    b CHAR(1),
+    c DATETIME,
+    PRIMARY KEY(a),
+    KEY(b)
+  ) $MASTER_1_ENGINE $MASTER_1_COMMENT2_P_2_1;
+  INSERT INTO ta_l2 (a, b, c) VALUES
+    (1, 'a', '2008-08-01 10:21:39'),
+    (2, 'b', '2000-01-01 00:00:00'),
+    (3, 'e', '2007-06-04 20:03:11'),
+    (4, 'd', '2003-11-30 05:01:03'),
+    (5, 'c', '2001-12-31 23:59:59');
+  --enable_query_log
+
+  --echo
+  --echo Spider crashes if you do not use the first partition first
+  --echo after MDEV-11084 (b4a2baffa82e5c07b96a1c752228560dcac1359b)
+  SELECT a,b,c FROM ta_l2 PARTITION (pt2);
+
+  --echo
+  --echo Explicit partition selection
+  SELECT a,b,c FROM ta_l2 PARTITION (pt1);
+  --echo This also crashes after b4a2baffa82e5c07b96a1c752228560dcac1359b
+  SELECT min(a), max(a), min(b), max(b) FROM ta_l2;
+  SELECT a,b,c FROM ta_l2 PARTITION (pt2);
+
+
+  if ($USE_CHILD_GROUP2)
+  {
+    if (!$OUTPUT_CHILD_GROUP2)
+    {
+      --disable_query_log
+      --disable_result_log
+    }
+    --connection child2_2
+    if ($USE_GENERAL_LOG)
+    {
+      SELECT argument FROM mysql.general_log WHERE argument LIKE '%handler %';
+    }
+    eval $CHILD2_2_SELECT_TABLES;
+    --connection child2_1
+    if ($USE_GENERAL_LOG)
+    {
+      SELECT argument FROM mysql.general_log WHERE argument LIKE '%handler %';
+    }
+    eval $CHILD2_1_SELECT_TABLES2;
+    if (!$OUTPUT_CHILD_GROUP2)
+    {
+      --enable_query_log
+      --enable_result_log
+    }
+  }
+}
+
+--echo
+--echo deinit
+--disable_warnings
+--connection master_1
+DROP DATABASE IF EXISTS auto_test_local;
+if ($USE_CHILD_GROUP2)
+{
+  --connection child2_1
+  DROP DATABASE IF EXISTS auto_test_remote;
+  --connection child2_2
+  DROP DATABASE IF EXISTS auto_test_remote2;
+}
+--disable_query_log
+--disable_result_log
+--source test_deinit.inc
+--enable_result_log
+--enable_query_log
+--enable_warnings
+--echo
+--echo end of test
