stoneatom / stonedb

StoneDB is an Open-Source MySQL HTAP and MySQL-Native DataBase for OLTP, Real-Time Analytics, a counterpart of MySQLHeatWave. (https://stonedb.io)
https://stonedb.io/
GNU General Public License v2.0
866 stars 141 forks source link

bug: If you drop secondary index,the error message is display unique index. #1343

Closed haitaoguan closed 1 year ago

haitaoguan commented 1 year ago

Have you read the Contributing Guidelines on issues?

Please confirm if bug report does NOT exists already ?

Describe the problem

mysql> show variables like 'sql_mode';
+---------------+----------------------------------------------------------------+
| Variable_name | Value                                                          |
+---------------+----------------------------------------------------------------+
| sql_mode      | STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+---------------+----------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> show create table ttt\G
*************************** 1. row ***************************
       Table: ttt
Create Table: CREATE TABLE `ttt` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(10) NOT NULL,
  `last_name` text NOT NULL,
  `sex` varchar(5) NOT NULL,
  `score` int(11) NOT NULL,
  `copy_id` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `idx_uk` (`copy_id`),
  KEY `idx_firstname` (`first_name`),
  FULLTEXT KEY `idx_lastname` (`last_name`)
) ENGINE=TIANMU DEFAULT CHARSET=utf8mb4
1 row in set (0.01 sec)

mysql> drop index idx_firstname on ttt;
ERROR 3235 (HY000): Tianmu engine does not support unique index.
mysql> drop index idx_lastname on ttt;
ERROR 3235 (HY000): Tianmu engine does not support unique index.
mysql> drop index idx_uk on ttt;
ERROR 3234 (HY000): Tianmu engine does not support secondary index.

If you drop secondary index,the error message is display unique index.
If you drop fulltext index,the error message is also display unique index.
If you drop unique index,the error message is display secondary index.

Expected behavior

mysql> drop index idx_firstname on ttt;
ERROR 3235 (HY000): Tianmu engine does not support secondary index.
mysql> drop index idx_lastname on ttt;
ERROR 3235 (HY000): Tianmu engine does not support fulltext index.
mysql> drop index idx_uk on ttt;
ERROR 3234 (HY000): Tianmu engine does not support unique index.

How To Reproduce

No response

Environment

build information as follow: Repository address: https://github.com/stoneatom/stonedb.git:stonedb-5.7-dev Branch name: stonedb-5.7-dev Last commit ID: f8df638 Last commit time: Date: Mon Feb 27 19:36:39 2023 +0800 Build time: Date: Tue Feb 28 10:02:51 CST 2023

Are you interested in submitting a PR to solve the problem?

wisehead commented 1 year ago

fixed by pr: feat(tianmu): The error message displayed is inaccurate when you drop unique … #1356