phpmyadmin / phpmyadmin/sql-parser

Formatter doesn't handle CASE expressions and statements

Đang mở
#274 0 bình luận 1 reaction 0 người được giao Xem trên GitHub

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

bug
Ngôn ngữ chính
PHP
Star
485
Fork
119
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

Formatter doesn't handle CASE expressions and CASE statements.

Related to #272.

Examples:

CASE expression:

-- original
SELECT CASE 1
    WHEN 1 THEN
        'one'
    WHEN 2 THEN
        'two'
    ELSE
        'more'
END;

-- formatted
SELECT CASE
    1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more'
END;

CASE statement:

-- original
CREATE PROCEDURE p()
BEGIN
    DECLARE
        v INT DEFAULT 1;
    CASE v
        WHEN 2 THEN
            SELECT v;
        WHEN 3 THEN
            SELECT 0;
        ELSE
            BEGIN
            END;
    END CASE;
END;

-- formatted
CREATE PROCEDURE p()
BEGIN
    DECLARE
        v INT DEFAULT 1; CASE v WHEN 2 THEN
    SELECT
        v; WHEN 3 THEN
    SELECT
        0; ELSE
    BEGIN
        END
            ;
    END CASE;
END;

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

Mở 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.

Hướng nghiên cứu

Sử dụng các tài liệu tham chiếu về biểu thức CASE và câu lệnh CASE của MySQL, cùng với hai ví dụ định dạng, làm các trường hợp chấp nhận. So sánh hành vi hiện tại của formatter với issue liên quan #272, sau đó xác định entry point của formatter và thêm coverage cho cả hai dạng; hoàn thành khi mỗi ví dụ vẫn giữ được thụt lề dễ đọc cho các mệnh đề CASE và câu lệnh.

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

Đánh giá

Công nghệ
mysql, php
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.