apache / apache/iotdb

[Bug] The CAST operator has a logical error causing precision loss when converting floating-point values.

Đang mở
#14,149 2 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Java
Star
6.4k
Fork
1.2k
Merge trung bình
1 ngày 23 giờ
Pull request đã merge (30 ngày)
115

Mô tả

### Search before asking

- [X] I searched in the [issues](https://github.com/apache/iotdb/issues) and found nothing similar.

### Version

version 1.3.3 (Build: ad95a7e)

### Describe the bug and provide the minimal reproduce step

```
DROP DATABASE root.db0
CREATE DATABASE root.db0

CREATE TIMESERIES root.db0.t1 WITH datatype=FLOAT compressor=GZIP 'MAX_POINT_NUMBER'='6';
INSERT INTO root.db0(timestamp, t1) VALUES (1643027794590, 0.5522);
INSERT INTO root.db0(timestamp, t1) VALUES (1643027794600, 0.8044);

# query 1
select t1 from root.db0 where t1 <= 0.8044

# query 2
select t1 from root.db0 where cast(t1 as float) <= 0.8044
```

### What did you expect to see?

Query 1 returned result set: 0.5522 and 0.8044

Query 2 returned result set: 0.5522 and 0.8044

### What did you see instead?

Query 1 returned result set: 0.5522 and 0.8044

Query 2 returned result set: 0.5522

### Anything else?

Dear IoTDB team, When using the CAST operator to convert a FLOAT value to FLOAT, the value theoretically should remain unchanged. However, the above test case indicates that a logical error causing precision loss occurs after the CAST conversion.

### Are you willing to submit a PR?

- [ ] I'm willing to submit a PR!

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Chạy bản tái hiện SQL từ issue trên IoTDB 1.3.3 và so sánh hai kết quả truy vấn. Theo dõi việc xử lý biểu thức CAST và đường dẫn so sánh FLOAT, sau đó xác minh rằng việc ép kiểu FLOAT sang FLOAT giữ nguyên giá trị và cả hai hàng mong đợi đều được trả về.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
java
Lĩnh vực
databases
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
45/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.