Skip to content

recover expression index cause data inconsistency #40430

@xiongjiwei

Description

@xiongjiwei

Bug Report

Please answer these questions before submitting your issue. Thanks!

1. Minimal reproduce step (Required)

create table t(a int, index idx((a+1)));
insert into t values (1);
insert into t values (2);
admin recover index t idx;
admin check table t;

2. What did you expect to see? (Required)

3. What did you see instead (Required)

mysql> create table t(a int, index idx((a+1)));
Query OK, 0 rows affected (0.04 sec)

mysql> insert into t values (1);
Query OK, 1 row affected (0.00 sec)

mysql> insert into t values (2);
Query OK, 1 row affected (0.00 sec)

mysql> admin recover index t idx;
+-------------+------------+
| ADDED_COUNT | SCAN_COUNT |
+-------------+------------+
|           2 |          2 |
+-------------+------------+
1 row in set (0.01 sec)

mysql> admin check table t;
ERROR 8134 (HY000): data inconsistency in table: t, index: idx, col: _V$_idx_0, handle: "1", index-values:"KindNull <nil>" != record-values:"KindInt64 2", compare err:<nil>

4. What is your TiDB version? (Required)

mysql> select tidb_version();
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tidb_version()
                                                                                                         |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Release Version: v6.5.0-2-gf700b565bc
Edition: Community
Git Commit Hash: f700b565bcf1115f27fab076f7183cf9d78a0f16
Git Branch: release-6.5
UTC Build Time: 2023-01-09 09:47:14
GoVersion: go1.19.1
Race Enabled: false
TiKV Min Version: 6.2.0-alpha
Check Table Before Drop: false
Store: unistore |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.02 sec)

I believe it happens since expression index is supported

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions