Logical AND Error causing - 305 INTERNAL_SEVER_ERROR
- 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 2.0.5 (Build: 0917050)
### Describe the bug and provide the minimal reproduce step
DELETE DATABASE root.db1;
CREATE DATABASE root.db1;
CREATE TIMESERIES root.db1.t2.c0 INT64;
CREATE TIMESERIES root.db1.t2.c1 INT64;
CREATE TIMESERIES root.db1.t2.c2 INT32;
INSERT INTO root.db1.t2(timestamp, c0, c1, c2) VALUES (1641024000000, 123, 1, 456);
#query 1
SELECT c2 AS ref0, c0 AS ref1 FROM root.db1.t2 WHERE c1 = 1 OR 1=0;
#query 2
SELECT c2 AS ref0, c0 AS ref1 FROM root.db1.t2 WHERE c1 = 1 OR 1!=0;
#query 3
SELECT c2 AS ref0, c0 AS ref1 FROM root.db1.t2 WHERE c1 = 1 AND 1=1;
### What did you expect to see?
query 1 : return 1 result
query2 : return 1 result
query3 : return 1 result
### What did you see instead?
query 1 : return 1 result
query2 : return 1 result
query3 : 305 INTERNAL_SERVER_ERROR
### Anything else?
dear IoTDB team, I found out adding a logically neutral constant to a WHERE clause using AND 1 = 1 causes INTERNAL_SERVER_ERROR (305), while the equivalent OR 1=1 does not.
This looks like the crash is tied to neutral conjuncts in AND
### Are you willing to submit a PR?
- [ ] I'm willing to submit a PR!
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu bằng cách chạy ba bản tái hiện SQL trên IoTDB 2.0.5 và so sánh các trường hợp AND và OR. Theo dõi cách biểu thức WHERE xử lý các phép so sánh hằng số, sau đó thêm phạm vi kiểm thử hồi quy cho query 3; hoàn thành nghĩa là cả ba truy vấn đều trả về một kết quả mà không có lỗi 305.
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, sql
- Lĩnh vực
- databases
- Loại issue
- Lỗi
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 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
- 48/100