apache / apache/datafusion-sqlparser-rs
Bug: `SELECT * FROM ( SELECT * FROM APPLICATIONS.SALESFORCE.ACCOUNT) outer` fails to parse in snowflake
- 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ả
I hit a bug where the SQL statement
```sql
SELECT * FROM ( SELECT * FROM APPLICATIONS.SALESFORCE.ACCOUNT) outer
```
failed to parse. This is because `OUTER` is part of the reserved keyword list for table aliases. https://github.com/apache/datafusion-sqlparser-rs/blob/8ccb87a8355858ccb06ffc20484657cd7980d78c/src/keywords.rs#L843-L900
Currently this list is a global but it seems like it should be dialect specific. I'm happy to work on this, but I wanted to know if the project had any opinions on how this list should be maintained at the dialect level.
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 bằng cách tái hiện truy vấn Snowflake và đọc phạm vi được liên kết trong src/keywords.rs, đặc biệt là cách OUTER được phân loại. Sau đó kiểm tra việc xử lý phương ngữ của parser để xác định danh sách từ khóa dành riêng nên được duy trì như thế nào. Công việc được xem là hoàn tất khi truy vấn được báo cáo được phân tích cú pháp chính xác mà không gây hồi quy trong việc xử lý từ khóa ở các phương ngữ khác.
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, sql
- Lĩnh vực
- compilers
- Loại issue
- Lỗi
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- 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
- 35/100