Tôi muốn xác minh cú pháp của các tệp có chứa truy vấn sql trước khi chúng có thể được cam kết trong dự án CVS của tôi.kiểm tra cú pháp postgresql mà không cần chạy truy vấn
Để làm điều đó, tôi có một tập lệnh cam kết, nhưng tôi gặp khó khăn trong việc tìm hiểu xem các lệnh sql có hợp lệ hay không. psql
dường như không có một chế độ dryrun, và xây dựng của riêng tôi postgresql-dialact thử nghiệm từ ngữ pháp (có nghĩa là trong nguồn) có vẻ như một đoạn dài.
Các tập lệnh có thể chứa nhiều truy vấn, do đó, không thể quấn xung quanh chúng EXPLAIN
.
Bất kỳ gợi ý nào?
tôi đã liên quan đến vấn đề với SP trên khối postgresql không xác nhận cho đến khi không được gọi – triclosan
@triclosan của nó: bạn có thể quan tâm trong ['plpgsql lint'] (https://github.com/okbob/plpgsql_lint) giải quyết chính xác sự thiếu sót này. Pavel Stěhule là nhà phát triển chính. Xem [bài đăng blog] này (http://okbob.blogspot.com/2011/07/plpgsql-lint.html). –
Tôi không có kinh nghiệm với postgres vì vậy đây có lẽ là một giải pháp xấu không xứng đáng với một câu trả lời thực sự, nhưng tôi chỉ thêm một dòng rác ở cuối kịch bản mà tôi biết sẽ gây ra lỗi. Nếu lỗi đầu tiên nó chạm là dòng rác, tôi có thể tự tin hợp lý phần còn lại của tập lệnh là ok. Không giống như một giao dịch, nó bảo tồn các giá trị chuỗi và cho các kịch bản đơn giản, nó nhanh hơn và dễ dàng hơn việc tải xuống một tiện ích khác. –