SQLREDUCE: Giảm kèo bóng đá việt nam SQL dài dòng xuống các ví dụ tối thiểu

Đăng trên2022-03-09bởi Credativ gmbh
Nguồn mở liên quan

SQLSMITHđã được chứng minh là một hiệu quả công cụ tìm lỗi ở kèo bóng đá việt nam khu vực khác nhau trong máy chủ PostgreSQL và kèo bóng đá việt nam công cụ khác kèo bóng đá việt nam sản phẩm, bao gồm kèo bóng đá việt nam lỗi bảo mật, từ kèo bóng đá việt nam lỗi thực thi đến segfaults trong Thực hiện phương thức loại và chỉ mục.

Tuy nhiên, kèo bóng đá việt nam ngẫu nhiên được tạo bởi sqlsmith kích hoạt một số lỗi là thường rất lớn và chứa nhiều tiếng ồn không đóng góp cho lỗi. Cho đến nay, kiểm tra thủ công truy vấn và chỉnh sửa tẻ nhạt là bắt buộc phải giảm ví dụ xuống một nhà sao chép tối thiểu mà các nhà phát triển có thể sử dụng Để khắc phục sự cố.

kèo bóng đá việt nam đề này được giải quyết bởikèo bóng đá việt nam. Sqlreduce lấy làm SQL tùy ý Truy vấn sau đó được chạy đối với máy chủ PostgreSQL. Đơn giản hóa khác nhau kèo bóng đá việt nam bước được áp dụng, kiểm tra sau mỗi bước mà truy vấn đơn giản hóa vẫn kích hoạt cùng một lỗi từ postgresql. Kết quả cuối cùng là một truy vấn SQL với Độ phức tạp tối thiểu.

SQLREDUCE có hiệu quả trong việc giảm kèo bóng đá việt nam từBáo cáo lỗi gốc từ SQLSMITHvới kèo bóng đá việt nam phù hợp với kèo bóng đá việt nam được giảm bằng tay.

Thông tin chi tiết vềCách thức hoạt động trong một bài đăng trên blog.

Ví dụ

Năm 2018,SQLSMith đã tìm thấy một segfaultTrong PostgreSQL chạy sửa đổi Git 039EB6E92F. Nhà sao chép hồi đó là một truy kèo bóng đá việt nam 40 dòng, 2,2kb khổng lồ:

Chọn trường hợp khi pg_catalog.lastval () <pg_catalog.pg_stat_get_bgwriter_maxwritten_clean () thì trường hợp khi pg_catalog.circle_sub_pt ( cast (cast (null dưới dạng vòng tròn) là vòng tròn), cast ((chọn vị trí từ Public.Emp Giới hạn 1 bù 13) Như điểm)) Sau đó (chọn F1 từ Public.circle_tbl Giới hạn 1 bù 4) khác (chọn F1 từ Public.circle_tbl Giới hạn 1 bù 4) kèo bóng đá việt nam thúc, trường hợp khi (chọn pg_catalog.max (lớp) từ public.f_star) ~ ~ ref_0.c sau đó đúc (null là vòng tròn) khác Cast (null là vòng tròn) kèo bóng đá việt nam thúc ) như vòng tròn) sau đó ref_0.a khác ref_0.a kèo bóng đá việt nam thúc trường hợp khác khi pg_catalog.circle_sub_pt ( cast (cast (null dưới dạng vòng tròn) là vòng tròn), cast ((chọn vị trí từ Public.Emp Giới hạn 1 bù 13) Như điểm)) Sau đó (chọn F1 từ Public.circle_tbl Giới hạn 1 bù 4) khác (chọn F1 từ Public.circle_tbl Giới hạn 1 bù 4) kèo bóng đá việt nam thúc, trường hợp khi (chọn pg_catalog.max (lớp) từ public.f_star) ~ ~ ref_0.c sau đó đúc (null là vòng tròn) khác Cast (null là vòng tròn) kèo bóng đá việt nam thúc ) như vòng tròn) sau đó ref_0.a khác ref_0.a kèo bóng đá việt nam thúc kèo bóng đá việt nam thúc như C0, trường hợp khi (chọn IntervalCol từ public.Brintest Giới hạn 1 bù 1) = cast (null là "khoảng") sau đó trường hợp khi ((chọn pg_catalog.max (RoomNo) từ public.room) ! ~ ~ ref_0.c) và (cast (null dưới dạng xid) < 100) sau đó ref_0.b other ref_0.b end trường hợp khác khi ((chọn pg_catalog.max (RoomNo) từ Public.room) ! ~ ~ ref_0.c) và (cast (null dưới dạng xid) < 100) sau đó ref_0.b other ref_0.b end kèo bóng đá việt nam thúc như C1, ref_0.a là C2, . ref_0.b dưới dạng C4, pg_catalog.stddev ( cast ((chọn pg_catalog.sum (float4col) từ public.brintest) như float4)) đã vượt qua (phân vùng bởi ref_0.a, ref_0.b, ref_0.c đặt hàng theo ref_0.b) như C5, cast (nullif (ref_0.b, ref_0.a) là int4) như c6, ref_0.b as c7, ref_0.c as c8 từ public.mlParted3 như ref_0 nơi đúng;

kèo bóng đá việt nam có thể giảm hiệu quả con quái vật đó thành này:

9122_9199

Tính khả dụng

kèo bóng đá việt nam là nguồn mở được cấp phép theo giấy phép MIT. Mã nguồn nằm trên github: https://github.com/credativ/kèo bóng đá việt nam

kèo bóng đá việt nam gói Debian/Ubuntu cho SQLREDUCE được vận chuyển trênapt.postgresql.org.

kèo bóng đá việt nam là một sản phẩm nguồn mở bởiCredativ GmbH.