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 / 7.3 / 7.2 / 7.1
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

43.3. kèo bóng đá euro lý bộ nhớ

Bảng nội dung
spi_palloc-Phân bổ bộ nhớ trong bối kèo bóng đá euro thực thi trên
SPI_REPALLOC-Reallocate bộ nhớ trong bối kèo bóng đá euro thực thi trên
spi_pfree-Bộ nhớ miễn phí Trong bối kèo bóng đá euro thực thi trên
spi_copytuple-- làm một bản sao của một hàng trong bối kèo bóng đá euro thực thi trên
spi_returntuple-- chuẩn bị để trả về một tuple dưới dạng mốc dữ liệu
spi_modifytuple-- tạo nên một hàng bằng cách thay thế các trường đã chọn của một hàng đã cho
spi_freetuple-- miễn phí một hàng được phân bổ trong bối kèo bóng đá euro thực thi trên
spi_freetupable-- miễn phí một bộ hàng được tạo bởispi_executehoặc một hàm tương tự
SPI_FreePlan-Miễn phí a Câu lệnh đã được lưu trước đó

PostgreSQLPhân bổ bộ nhớ ở trongbối kèo bóng đá euro bộ nhớ, cung cấp một Phương pháp thuận tiện để kèo bóng đá euro lý phân bổ được thực hiện trong nhiều cách khác nhau Những nơi cần sống trong thời gian khác nhau. Phá hủy một bối cảnh phát hành tất cả các bộ nhớ được phân bổ trong đó. Do đó, không cần thiết phải theo dõi cá nhân các đối tượng để tránh rò rỉ bộ nhớ; thay vào đó chỉ là một tương đối nhỏ Số lượng ngữ cảnh phải được kèo bóng đá euro lý.PalloCvà các chức năng liên quan phân bổ bộ nhớ từ"Hiện tại"bối kèo bóng đá euro.

spi_connectTạo bộ nhớ mới bối kèo bóng đá euro và làm cho nó hiện tại.spi_finishkhôi phục bộ nhớ hiện tại trước đó bối kèo bóng đá euro và phá hủy bối kèo bóng đá euro được tạo bởispi_connect. Những hành động này đảm bảo rằng Phân bổ bộ nhớ thoáng qua được thực hiện bên trong thủ tục của bạn là được khai hoang khi thoát thủ tục, tránh rò rỉ bộ nhớ.

Tuy nhiên, nếu thủ tục của bạn cần trả về một đối tượng Bộ nhớ được phân bổ (chẳng hạn như giá trị của dữ liệu chuyển qua từng tài liệu gõ), bạn không thể phân bổ bộ nhớ đó bằngpalloc, ít nhất là không trong khi bạn được kết nối với SPI. Nếu bạn thử, đối tượng sẽ được giải quyết bởispi_finishvà thủ tục của bạn sẽ không hoạt động đáng tin cậy. Để giải quyết vấn đề này, hãy sử dụngspi_pallocĐể phân bổ bộ nhớ cho sự trở lại của bạn sự vật.SPI_PALLOCPhân bổ bộ nhớ trong"Bối kèo bóng đá euro thực thi trên", Đó là là, bối kèo bóng đá euro bộ nhớ hiện tại khispi_connectđược gọi, chính xác là Bối kèo bóng đá euro đúng cho một giá trị được trả về từ thủ tục của bạn.

nếuspi_pallocđược gọi trong khi Quy trình không được kết nối với SPI, sau đó nó hoạt động giống như một Bình thườngPalloC. Trước một thủ tục kết nối với trình kèo bóng đá euro lý SPI, bối cảnh bộ nhớ hiện tại là bối cảnh thực thi trên, vì vậy tất cả các phân bổ được thực hiện bởi thủ tục thông quaPalloChoặc bởi Tiện ích SPI Các chức năng được thực hiện trong bối kèo bóng đá euro này.

Khispi_connectđược gọi là Bối kèo bóng đá euro riêng tư của thủ tục, được tạo bởispi_connect, được thực hiện bối kèo bóng đá euro. Tất cả các phân bổ được thực hiện bởiPalloC, Repalloc,, hoặc các chức năng tiện ích SPI (ngoại trừspi_copytuple, spi_returntuple, spi_modifytuplespi_palloc) được thực hiện trong bối cảnh này. Khi a Quy trình ngắt kết nối với Trình kèo bóng đá euro lý SPI (thông quaspi_finish) Bối kèo bóng đá euro hiện tại được khôi phục thành bối kèo bóng đá euro thực thi trên và tất cả các phân bổ được thực hiện trong bối kèo bóng đá euro bộ nhớ thủ tục được giải phóng và không thể được sử dụng hơn.

Tất cả các chức năng được mô tả trong phần này có thể được sử dụng bởi cả hai Các thủ tục kết nối và không kết nối. Trong một không kết nối Quy trình, chúng hoạt động giống như máy chủ thông thường cơ bản Chức năng (PalloC, v.v.).