Tôi thấy các tham chiếu thường xuyên đến WITH
các truy vấn (biểu thức bảng chung hoặc CTE) hoạt động như một hàng rào tối ưu hóa, trong đó máy chủ không được phép đẩy các bộ lọc xuống các truy vấn CTE, kéo các biểu thức phổ biến ra khỏi CTE, v.v. là một hành vi được yêu cầu bởi các tiêu chuẩn SQL.
CTE chắc chắn là một hàng rào tối ưu hóa trong PostgreSQL ... nhưng điều này có được yêu cầu bởi tiêu chuẩn hay thực sự chỉ là chi tiết triển khai?
Ví dụ: các bài đăng danh sách gửi thư này yêu cầu hoặc đề xuất rằng đó là tiêu chuẩn:
Sau khi đề cập đến nó trong một bình luận, tôi đã được hỏi nó được chỉ định ở đâu - và sau khi xem bản thảo duy nhất của SQL: 2008, tôi có quyền truy cập vào Tôi không gặp nhiều may mắn khi tìm thấy nó.
Tôi chưa nghiên cứu sâu về tiêu chuẩn này, vì vậy tôi hy vọng có một gợi ý từ ai đó: Có phải hàng rào tối ưu hóa của CTE trong PostgreQuery có thực sự được yêu cầu bởi tiêu chuẩn không? Và nếu vậy, nó được chỉ định ở đâu? Hoặc là các tuyên bố trong danh sách gửi thư PG bị lỗi?
Xem thêm hàng rào tối ưu hóa CTE trong danh sách việc cần làm? .
STABLE
hoặc cácIMMUTABLE
chức năng.