Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Should `DELETE + LIMIT` be supported by the generic dialect ?

Đang mở Phù hợp với người mới
#2,615 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
2/5
Thời gian dự kiến
1-3 giờ
Mức phù hợp với người mới
68/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
rust
Lĩnh vực
compilers

Hướng nghiên cứu

Bắt đầu trong src/parser.rs ở đường dẫn phân tích câu lệnh DELETE và tìm chỗ optional LIMIT/OFFSET sau delete target được tiêu thụ; xem cách các cấu trúc khác khóa hành vi theo MySqlDialect vs. GenericDialect (tìm các kiểm tra dialect hiện có và các helper method trên Dialect). Thêm test vào thư mục tests/ (ví dụ các file test cho dialect MySQL và generic) khẳng định rằng DELETE FROM t LIMIT 10 được parse dưới MySQL nhưng bị dialect generic từ chối, rồi chạy cargo test. Xong có nghĩa là dialect generic báo lỗi với DELETE+LIMIT trong khi hành vi của MySQL/MariaDB không đổi.

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

Mô tả

DuckDB MySQL PostgreSQL

Hello!

At https://github.com/apache/datafusion/issues/24998 we were investigating a problem that DELETE FROM tableX LIMIT 10 was actually ignoring the limit and deleting all records.

It seems only MySQL/MariaDB supports LIMIT in DELETE clause. All other major DBs cannot parse it.
For example:

Postgres:

postgres=# DELETE FROM t3 LIMIT 2;
ERROR:  syntax error at or near "LIMIT"
LINE 1: DELETE FROM t3 LIMIT 2;
                       ^

DuckDB:

memory D DELETE FROM t3 LIMIT 2;
Parser Error:
syntax error at or near "LIMIT"

LINE 1: DELETE FROM t3 LIMIT 2;
                       ^

Should sqlparser-rs disable DELETE+LIMIT for all but the MySQL dialect ?

Ngôn ngữ chính
Rust
Star
3.5k
Fork
786
Merge trung bình
3 ngày 15 giờ
Pull request đã merge (30 ngày)
51

Chuẩn bị môi trường

  • Không có Dockerfile hay tệp Docker Compose
  • Có mẫu pull request
  • Không có hướng dẫn đóng góp

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của apache/datafusion-sqlparser-rs

Tất cả issue của apache/datafusion-sqlparser-rs

Issue tương tự

Thêm issue về Rust

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.