pingcap / pingcap/tidb

builtinRowSig.vecEvalString() should never be called.

Open
#65,940 2 comments 0 reactions 0 assignees View on GitHub
contribution severity/moderate sig/execution type/bug
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)

```
drop table v0;
CREATE TABLE v0 ( v1 BIGINT UNIQUE NOT NULL );
INSERT INTO v0 ( v1 ) VALUES ( 127 );
UPDATE v0 SET v1 = 67 WHERE v1 NOT IN (
94, 10, NULL, 42, NULL,
98710782.000000 / 2 % 54 IN (
SELECT * FROM (
SELECT v1 FROM v0
UNION
SELECT DISTINCT CASE -1
WHEN ( v1 IS NULL AND v1 IS NOT NULL ) THEN -2147483648 / 71
WHEN -128 THEN 'x'
ELSE 83319568.000000 / 0
END FROM v0
) AS v2
WHERE v1 >= 'x' AND v1 < CASE ( 99868719.000000, 14976127.000000 )
WHEN v1 = 47 THEN v1 ELSE -128 END
)
);

```

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

Results from mysql:
```
mysql> UPDATE v0 SET v1 = 67 WHERE v1 NOT IN (
-> 94, 10, NULL, 42, NULL,
-> 98710782.000000 / 2 % 54 IN (
-> SELECT * FROM (
-> SELECT v1 FROM v0
-> UNION
-> SELECT DISTINCT CASE -1
-> WHEN ( v1 IS NULL AND v1 IS NOT NULL ) THEN -2147483648 / 71
-> WHEN -128 THEN 'x'
-> ELSE 83319568.000000 / 0
-> END FROM v0
-> ) AS v2
-> WHERE v1 >= 'x' AND v1 < CASE ( 99868719.000000, 14976127.000000 )
-> WHEN v1 = 47 THEN v1 ELSE -128 END
-> )
-> );
ERROR 1241 (21000): Operand should contain 1 column(s)
```
### 3. What did you see instead (Required)

Results from tidb:
```
mysql> INSERT INTO v0 ( v1 ) VALUES ( 127 );
Query OK, 1 row affected (0.00 sec)

mysql> UPDATE v0 SET v1 = 67 WHERE v1 NOT IN (
-> 94, 10, NULL, 42, NULL,
-> 98710782.000000 / 2 % 54 IN (
-> SELECT * FROM (
-> SELECT v1 FROM v0
-> UNION
-> SELECT DISTINCT CASE -1
-> WHEN ( v1 IS NULL AND v1 IS NOT NULL ) THEN -2147483648 / 71
-> WHEN -128 THEN 'x'
-> ELSE 83319568.000000 / 0
-> END FROM v0
-> ) AS v2
-> WHERE v1 >= 'x' AND v1 < CASE ( 99868719.000000, 14976127.000000 )
-> WHEN v1 = 47 THEN v1 ELSE -128 END
-> )
-> );
ERROR 1105 (HY000): builtinRowSig.vecEvalString() should never be called.
```

### 4. What is your TiDB version? (Required)

```
| Release Version: v8.4.0-this-is-a-placeholder
Edition: Community
Git Commit Hash: None
Git Branch: None
UTC Build Time: None
GoVersion: go1.25.6
Race Enabled: false
Check Table Before Drop: false
Store: unistore
Kernel Type: Classic |
+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.