prepare stmt execute failure when `tidb_super_read_only` = on
- Dominant language
- Go
- Stars
- 40.5k
- Forks
- 6.2k
- PR merge metrics
- PR metrics pending
Description
## Bug Report
Please answer these questions before submitting your issue. Thanks!
### 1. Minimal reproduce step (Required)
```sql
mysql> set GLOBAL tidb_super_read_only = ON;
Query OK, 0 rows affected (0.05 sec)
mysql> show variables where variable_name like "%read_only";
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| innodb_read_only | 0 |
| read_only | OFF |
| super_read_only | OFF |
| tidb_super_read_only | ON |
| transaction_read_only | OFF |
| tx_read_only | OFF |
+-----------------------+-------+
6 rows in set (0.01 sec)
mysql> prepare stmt1 from 'begin';
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> show warnings;
+---------+------+------------------------------------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------------------------------------+
| Warning | 1105 | skip plan-cache: not a SELECT/UPDATE/INSERT/DELETE/SET statement |
+---------+------+------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> execute stmt1;
ERROR 1836 (HY000): Running in read-only mode
```
### 2. What did you expect to see? (Required)
execute success
### 3. What did you see instead (Required)
execute failue
### 4. What is your TiDB version? (Required)
```sql
mysql> select version();
+--------------------+
| version() |
+--------------------+
| 5.7.25-TiDB-v6.5.2 |
+--------------------+
1 row in set (0.00 sec)
```
Contributor guide
Assessment
This issue has not been assessed yet.