pingcap / pingcap/tidb

Unexpected behavior in UPDATE statement

Open
#32,614 1 comment 0 reactions 1 assignee Claimed by @Jasonysli View on GitHub
severity/moderate sig/transaction 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)
```sql
DROP TABLE IF EXISTS t0;
CREATE TABLE t0(c0 INT);
INSERT INTO t0 VALUES(1);
UPDATE t0 SET c0 = 2 WHERE (1 | BIN(100000000)) IS NOT NULL;
```

### 2. What did you expect to see? (Required)
UPDATE should succeed, because IS NOT NULL in the where clause, thus we only need to check whether the two arguments to the equality are NULL or not, without having to actually evaluate the equality.
### 3. What did you see instead (Required)
```sql
mysql> UPDATE t0 SET c0 = 2 WHERE (1 | BIN(100000000)) IS NOT NULL;
ERROR 1690 (22003): BIGINT value is out of range in '101111101011110000100000000'
```
### 4. What is your TiDB version? (Required)
mysql> SELECT tidb_version();
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| tidb_version()

|
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Release Version: v5.4.0
Edition: Community
Git Commit Hash: 55f3b24c1c9f506bd652ef1d162283541e428872
Git Branch: heads/refs/tags/v5.4.0
UTC Build Time: 2022-01-25 08:39:26
GoVersion: go1.16.4
Race Enabled: false
TiKV Min Version: v3.0.0-60965b006877ca7234adaced7890d7b029ed1306
Check Table Before Drop: false |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
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.