Phiên bản được hỗ trợ:hiện tại(17)16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4

spi_prepare

spi_prepare - Chuẩn bị cách đọc kèo bóng đá tuyên bố, mà không cần thực hiện nó

Synopsis

spiplanptr spi_prepare (const char *cách đọc kèo bóng đá, intNARGS, oid *argtypes)

Mô tả

spi_prepareTạo và trả về một câu cách đọc kèo bóng đá đã chuẩn bị cho cách đọc kèo bóng đá được chỉ định, nhưng không thực thi cách đọc kèo bóng đá. Câu cách đọc kèo bóng đá đã chuẩn bị sau đó có thể được thực thi nhiều lần bằng cách sử dụngSPI_EXECUTE_PLAN.

10547_10763spi_prepareChuyển đổi một chuỗi cách đọc kèo bóng đá thành một câu cách đọc kèo bóng đá đã chuẩn bị gói gọn kết quả phân tích phân tích. Tuyên bố đã chuẩn bị cũng cung cấp một nơi để lưu trữ kế hoạch thực thi nếu thấy rằng việc tạo ra một kế hoạch tùy chỉnh cho mỗi lần thực thi là không hữu ích.

Một cách đọc kèo bóng đá đã chuẩn bị có thể được khái quát bằng cách ghi các tham số ($ 1, $ 2, v.v.) thay cho những gì sẽ là hằng số trong một cách đọc kèo bóng đá bình thường. Các giá trị thực của các tham số sau đó được chỉ định khiSPI_EXECUTE_PLANđược gọi. Điều này cho phép cách đọc kèo bóng đá đã chuẩn bị được sử dụng trong phạm vi các tình huống rộng hơn có thể mà không có tham số.

Câu cách đọc kèo bóng đá được trả về bởispi_prepareChỉ có thể được sử dụng trong cách đọc kèo bóng đá gọi hiện tại của hàm C, vìspi_finishBộ nhớ giải phóng được phân bổ cho một tuyên bố như vậy. Nhưng câu cách đọc kèo bóng đá có thể được lưu lâu hơn bằng cách sử dụng các chức năngspi_keepplanhoặcspi_saveplan.

Đối số

const char *cách đọc kèo bóng đá

chuỗi cách đọc kèo bóng đá

intNARGS

Số lượng tham số đầu vào ($ 1, $ 2, v.v.)

oid *argtypes

Con trỏ tới cách đọc kèo bóng đá mảng chứaoidS của cách đọc kèo bóng đá loại dữ liệu của cách đọc kèo bóng đá tham số

Giá trị trả lại

spi_prepareTrả về cách đọc kèo bóng đá con trỏ không null choSpiplan, đó là một cấu trúc mờ biểu thị một câu cách đọc kèo bóng đá đã chuẩn bị. Trên lỗi,nullsẽ được trả về vàspi_resultsẽ được đặt thành cách đọc kèo bóng đá trong cùng cách đọc kèo bóng đá mã lỗi được sử dụng bởiSPI_EXECUTE, ngoại trừ nó được đặt thànhspi_error_argumentnếucách đọc kèo bóng đánullhoặc nếuNARGSnhỏ hơn 0 hoặc nếuNARGSlớn hơn 0 vàargtypesnull.

ghi chú

Nếu không có tham số nào được xác định, cách đọc kèo bóng đá kế hoạch chung sẽ được tạo ở lần đầu tiên sử dụngSPI_EXECUTE_PLAN, và được sử dụng cho tất cả các thực thi tiếp theo. Nếu có các tham số, cách đọc kèo bóng đá vài lần sử dụng đầu tiên củaSPI_EXECUTE_PLANsẽ tạo các gói tùy chỉnh dành riêng cho các giá trị tham số được cung cấp. Sau khi sử dụng đủ của cùng một câu cách đọc kèo bóng đá đã chuẩn bị,SPI_EXECUTE_PLANsẽ xây dựng cách đọc kèo bóng đá kế hoạch chung và nếu điều đó không quá đắt so với các kế hoạch tùy chỉnh, nó sẽ bắt đầu sử dụng kế hoạch chung thay vì lập kế hoạch lại mỗi lần. Nếu hành vi mặc định này không phù hợp, bạn có thể thay đổi nó bằng cách vượt quacursor_opt_generic_planhoặccon trỏ_opt_custom_plancờ đếnspi_prepare_cursor, để buộc sử dụng cách đọc kèo bóng đá kế hoạch chung hoặc tùy chỉnh tương ứng.

Mặc dù điểm chính của câu cách đọc kèo bóng đá đã chuẩn bị là để tránh phân tích phân tích và lập kế hoạch phân tích lặp đi lặp lại của câu cách đọc kèo bóng đá,POSTGRESQLsẽ buộc phân tích lại và lập kế hoạch lại câu cách đọc kèo bóng đá trước khi sử dụng nó bất cứ khi nào các đối tượng cơ sở dữ liệu được sử dụng trong câu cách đọc kèo bóng đá đã trải qua các thay đổi xác định (DDL) kể từ khi sử dụng câu cách đọc kèo bóng đá đã chuẩn bị trước đó. Ngoài ra, nếu giá trị củasearch_pathThay đổi từ sử dụng này sang cách tiếp theo, câu cách đọc kèo bóng đá sẽ được phân loại lại bằng cách sử dụng mớisearch_path. (Hành vi sau này là mới nhưPostgreSQL9.3.) XemChuẩn bịĐể biết thêm thông tin về hành vi của các câu cách đọc kèo bóng đá được chuẩn bị.

Hàm này chỉ nên được gọi từ hàm C được kết nối.

spiplanptrđược khai báo là cách đọc kèo bóng đá con trỏ tới cách đọc kèo bóng đá loại cấu trúc mờ trongspi.h. Không khôn ngoan khi cố gắng truy cập trực tiếp vào nội dung của nó, vì điều đó làm cho mã của bạn có nhiều khả năng phá vỡ cách đọc kèo bóng đá bản sửa đổi trong tương lai củaPostgreSQL.

Tênspiplanptrcó phần lịch sử, vì cấu trúc dữ liệu không còn nhất thiết phải chứa kế hoạch thực thi.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớpMẫu nàyĐể báo cáo vấn đề tài liệu.