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
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 tỷ lệ kèo bóng đá phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

45.8. tỷ lệ kèo bóng đá

45.8.1. Cấu hình

Phần này liệt kê tỷ lệ kèo bóng đá tham số cấu hình ảnh hưởngPL/tỷ lệ kèo bóng đá.

plperl.on_init(chuỗi)

Chỉ định mã tỷ lệ kèo bóng đá sẽ được thực thi khi trình thông dịch tỷ lệ kèo bóng đá được khởi tạo lần đầu tiên, trước khi nó được sử dụng bởiPlperlhoặcplperlu. tỷ lệ kèo bóng đá chức năng SPI không có sẵn khi mã này được thực thi.

Mã tỷ lệ kèo bóng đá được 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_initChuỗi. Ví dụ:

plperl.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 ",", Sắp xếp tỷ lệ kèo bóng đá phím

Khởi tạo sẽ xảy ra trong Postmaster nếuplperlThư 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 quản lý bưu điện. Lý do chính để sử dụng tính năng này là các mô -đun tỷ lệ kèo bóng đá được tải bởiplperl.on_initChỉ cần được tải chỉ khi bắt đầu bưu điện 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 tỷ lệ kèo bóng đá đầu tiên được sử dụng bởi phiên cơ sở dữ liệu - PL/Perlu hoặc PL/tỷ lệ kèo bóng đá cho vai trò SQL đầu tiên gọi hàm PL/tỷ lệ kèo bóng đá.plperl.on_initAfresh. 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 tỷ lệ kèo bóng đá đượ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.confTệ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ã tỷ lệ kèo bóng đá sẽ được thực thi khi trình thông dịch tỷ lệ kèo bóng đá được chuyên dụng choplperlhoặcPlperlutương ứng. Điều này sẽ xảy ra khi hàm PL/tỷ lệ kèo bóng đá 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/tỷ lệ kèo bóng đá được gọi bởi vai trò SQL mới.plperl.on_init. tỷ lệ kèo bóng đá 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ốngTrình thông dịch và do đó nó chỉ có thể thực hiện tỷ lệ kèo bóng đá 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 tỷ lệ kèo bóng đá 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 tỷ lệ kèo bóng đá đã đượ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/tỷ lệ kèo bóng đá sẽ cónghiêm ngặtPragma được bật. Tham số này không ảnh hưởng đến tỷ lệ kèo bóng đá chức năng đã được biên dịch trong phiên hiện tại.

45.8.2. Hạn chế và tỷ lệ kèo bóng đá tính năng bị thiếu

Các tính năng sau đây hiện đang bị thiếu trong PL/tỷ lệ kèo bóng đá, nhưng họ sẽ đóng góp đáng hoan nghênh.

  • Hàm PL/tỷ lệ kèo bóng đá không thể gọi trực tiếp với nhau.

  • SPI chưa được triển khai đầy đủ.

  • Nếu bạn đang tìm nạp tỷ lệ kèo bóng đá 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_fetchrowNhư đã 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 tập hợp lớn tỷ lệ kèo bóng đá 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 nghiêm trọng, bất kỳkết thúctỷ lệ kèo bóng đá 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.