apache / apache/datafusion-sqlparser-rs
SQL is parsed incorrectly when `trailing_commas` is not set
- Ngôn ngữ chính
- Rust
- Star
- 3.5k
- Fork
- 772
- Merge trung bình
- 4 ngày 9 giờ
- Pull request đã merge (30 ngày)
- 17
Mô tả
When parser not set `trailing_commas=true` in `ParserOptions` or use `BigQueryDialect`, the following SQL will be wrongly parse instead of throw an error.
```sql
SELECT foo, bar, FROM baz
-- Will be wrongly parse instead of throw an error.
SELECT foo, bar, FROM AS baz
```
In theory it should throw a error
relevant code
```rust
#[test]
fn parse_range_select() {
let statements = Parser::parse_sql(&GenericDialect {}, "SELECT foo, bar, FROM baz").unwrap();
println!("{}", statements[0]);
}
```
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Hướng nghiên cứu
Bắt đầu với lệnh gọi Parser::parse_sql trong ví dụ parse_range_select và kiểm tra cách GenericDialect xử lý các danh sách SELECT khi trailing_commas chưa được thiết lập. Thêm một bài kiểm thử hồi quy bao quát các truy vấn được nêu, trong đó cú pháp dấu phẩy ở cuối không hợp lệ bị từ chối, đồng thời hành vi trailing_commas đã cấu hình vẫn được hỗ trợ.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- rust
- Lĩnh vực
- compilers
- 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
- 45/100