Phần này liệt kê kèo bóng đá pháp tham số cấu hình ảnh hưởngPL/kèo bóng đá pháp.
plperl.on_init
(chuỗi
) #Chỉ định mã kèo bóng đá pháp sẽ được thực thi khi trình thông dịch kèo bóng đá pháp được khởi tạo lần đầu tiên, trước khi nó được sử dụng bởiPlperl
hoặcplperlu
. kèo bóng đá pháp chức năng SPI không có sẵn khi mã này được thực thi.
Mã kèo bóng đá pháp bị giới hạn trong một chuỗi. Mã dài hơn có thể được đặt vào một mô -đun và được tải bởion_init
Chuỗi. Ví dụ:
perperl.on_init = 'yêu cầu "plperlinit.pl"'
Bất kỳ mô -đun nào được tải bởiplperl.on_init
, trực tiếp hoặc gián tiếp, sẽ có sẵn để sử dụng bởiplperl
. Điều này có thể tạo ra một rủi ro bảo mật.
do 'ELOG (cảnh báo, tham gia ","
Khởi tạo sẽ xảy ra trong Postmaster nếuplperl
Thư viện được bao gồm trongshared_preload_l Libries, trong trường hợp đó nên xem xét thêm cho nguy cơ gây bất ổn cho người bán bưu điện. Lý do chính để sử dụng tính năng này là các mô -đun kèo bóng đá pháp được tải bởiplperl.on_init
Chỉ cần được tải khi bắt đầu Postmaster và sẽ có sẵn ngay lập tức mà không cần tải chi phí trong các phiên cơ sở dữ liệu riêng lẻ. Tuy nhiên, hãy nhớ rằng chi phí chỉ được tránh đối với trình thông dịch kèo bóng đá pháp đầu tiên được sử dụng bởi phiên cơ sở dữ liệu - PL/Perlu hoặc PL/kèo bóng đá pháp cho vai trò SQL đầu tiên gọi hàm PL/kèo bóng đá pháp.plperl.on_init
Afresh. Ngoài ra, trên Windows sẽ không có tiết kiệm nào từ việc tải trước, vì trình thông dịch kèo bóng đá pháp được tạo trong quy trình PostMaster không tuyên truyền sang các quy trình con.
Tham số này chỉ có thể được đặt trongPostgreSql.conf
Tệp hoặc trên dòng lệnh máy chủ.
plperl.on_plperl_init
(chuỗi
)plperl.on_plperlu_init
(chuỗi
) #Các tham số này chỉ định mã kèo bóng đá pháp sẽ được thực thi khi trình thông dịch kèo bóng đá pháp được chuyên dụng choPlperl
hoặcPlperlu
tương ứng. Điều này sẽ xảy ra khi hàm PL/kèo bóng đá pháp hoặc PL/Perlu được thực thi lần đầu tiên trong phiên cơ sở dữ liệu hoặc khi một trình thông dịch bổ sung phải được tạo vì ngôn ngữ khác được gọi hoặc hàm PL/kèo bóng đá pháp được gọi bởi vai trò SQL mới.plperl.on_init
. kèo bóng đá pháp chức năng SPI không có sẵn khi mã này được thực thi.plperl.on_plperl_init
được thực thi sauKhóa xuốngHồiTrình thông dịch và do đó nó chỉ có thể thực hiện kèo bóng đá pháp hoạt động đáng tin cậy.
Nếu mã không có lỗi, nó sẽ hủy bỏ việc khởi tạo và truyền ra truy vấn gọi, khiến giao dịch hiện tại hoặc trừ đi bị hủy bỏ. Bất kỳ hành động nào đã được thực hiện trong kèo bóng đá pháp sẽ không hoàn tác;
Chỉ các siêu người dùng mới có thể thay đổi các cài đặt này. Mặc dù các cài đặt này có thể được thay đổi trong một phiên, những thay đổi đó sẽ không ảnh hưởng đến các phiên dịch viên kèo bóng đá pháp đã được sử dụng để thực thi các chức năng.
plperl.use_strict
(Boolean
) #Khi đặt các phần tổng hợp tiếp theo của các hàm PL/kèo bóng đá pháp sẽ cónghiêm ngặt
Pragma được bật. Tham số này không ảnh hưởng đến kèo bóng đá pháp chức năng đã được biên dịch trong phiên hiện tại.
Các tính năng sau đây hiện bị thiếu từ PL/kèo bóng đá pháp, nhưng họ sẽ đóng góp đáng hoan nghênh.
Hàm PL/kèo bóng đá pháp không thể gọi trực tiếp với nhau.
SPI chưa được thực hiện đầy đủ.
Nếu bạn đang tìm nạp kèo bóng đá pháp bộ dữ liệu rất lớn bằng cách sử dụngSPI_EXEC_Query
, bạn nên lưu ý rằng tất cả những điều này sẽ đi vào bộ nhớ. Bạn có thể tránh điều này bằng cách sử dụngspi_query
/spi_fetchrow
Như đã minh họa trước đó.
Một vấn đề tương tự xảy ra nếu hàm quay lại đã chuyển một bộ lớn kèo bóng đá pháp hàng trở lại PostgreSQL quareturn
. Bạn cũng có thể tránh được vấn đề này bằng cách sử dụngreturn_next
Đối với mỗi hàng được trả về, như được hiển thị trước đó.
Khi phiên kết thúc bình thường, không phải do lỗi gây tử vong, bất kỳkết thúc
kèo bóng đá pháp khối đã được xác định được thực thi. Hiện tại không có hành động nào khác được thực hiện.