Postgresql 8.3.23 Tài liệu | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 37. kèo bóng đá pháp | Chuyển tiếp nhanh | NEXT |
Một kèo bóng đá pháp phải là"Đã kèo bóng đá pháp đặt"vào mỗi cơ sở dữ liệu nơi nó được đã sử dụng. Nhưng các kèo bóng đá pháp được cài đặt trong cơ sở dữ liệuTemplate1được tự động có sẵn trong Tất cả các cơ sở dữ liệu sau đó đã tạo, vì các mục nhập của họ trongTemplate1sẽ được sao chép bởiTạo cơ sở dữ liệu10808_10969
Đối với các kèo bóng đá pháp ngữ được cung cấp với phân phối tiêu chuẩn, nó chỉ cần thiết để thực thiTạo NGÔN NGỮ kèo bóng đá pháp_nameđến Cài đặt kèo bóng đá pháp ngữ vào cơ sở dữ liệu hiện tại. Cách khác, Chương trìnhPostgreSQL:có thể được sử dụng để làm điều này từ Dòng lệnh shell. Ví dụ: để cài đặt kèo bóng đá pháp ngữPL/PGSQLvào cơ sở dữ liệuTemplate1, Sử dụng:
createlang plpgsql template1
Quy trình thủ công được mô tả dưới đây chỉ được khuyến nghị cho cài đặt các kèo bóng đá pháp ngữ tùy chỉnhTạo NGÔN NGỮkhông biết về.
Cài đặt kèo bóng đá pháp thủ công
11857_12006Tạo kèo bóng đá pháp ngữ,, Các bước thứ hai và thứ ba có thể được bỏ qua, bởi vì chúng sẽ được thực hiện tự động nếu cần.)
Đối tượng được chia sẻ cho người xử lý kèo bóng đá pháp ngữ phải được biên dịch và cài đặt vào một thư viện thích hợp Thư mục. Điều này hoạt động theo cách tương tự như xây dựng và Cài đặt các mô-đun với các chức năng C do người dùng định nghĩa thông thường làm; nhìn thấyPhần 34.9.6. Thông thường, người xử lý kèo bóng đá pháp ngữ sẽ phụ thuộc vào một bên ngoài Thư viện cung cấp kèo bóng đá pháp ngữ lập trình thực tế động cơ; Nếu vậy, điều đó cũng phải được cài đặt.
Người xử lý phải được khai báo với lệnh
Tạo chức năngHandler_Function_Name() Trả về kèo bóng đá pháp_handler BẰNG 'Path-to-Shared-Object' kèo bóng đá pháp ngữ C;
Loại trả lại đặc biệt củakèo bóng đá pháp_handlerNói với hệ thống cơ sở dữ liệu rằng Chức năng này không trả về một trong các xác địnhSQLcác loại dữ liệu và là không thể sử dụng trực tiếp trongSQLCâu lệnh.
Tùy chọn, trình xử lý kèo bóng đá pháp ngữ có thể cung cấp một"Trình xác nhận"Hàm kiểm tra một định nghĩa chức năng cho sự chính xác mà không thực sự thực hiện nó. Hàm xác thực được gọi bởiTạo chức năngNếu nó tồn tại. Nếu a hàm xác thực được cung cấp bởi người xử lý, khai báo nó với một lệnh như
Tạo chức năngValidator_Function_Name(oid) Trả về khoảng trống BẰNG 'Path-to-Shared-Object14192_14212
PL phải được khai báo với lệnh
Tạo [Trusted] [Thủ tục] kèo bóng đá pháp ngữtên kèo bóng đá pháp ngữHandlerHandler_Function_Name[ValidatorValidator_Function_Name];
Từ khóa tùy chọnTrustedChỉ định rằng người dùng cơ sở dữ liệu thông thường không có Đặc quyền Superuser nên được phép sử dụng kèo bóng đá pháp ngữ này Để tạo các chức năng và quy trình kích hoạt. Kể từ pl Các chức năng được thực thi bên trong máy chủ cơ sở dữ liệu,TrustedCờ chỉ nên được đưa ra Đối với các kèo bóng đá pháp ngữ không cho phép truy cập vào máy chủ cơ sở dữ liệu nội bộ hoặc hệ thống tệp. kèo bóng đá pháp ngữPL/PGSQL, PL/TCLvàPL/Perlđược coi là đáng tin cậy; các kèo bóng đá pháp ngữPL/TCLU, PL/PerluvàPL/Pythonuđược thiết kế để cung cấp chức năng không giới hạn và nênkhôngĐược đánh dấu đáng tin cậy.
Ví dụ 37-1cho thấy quy trình cài đặt thủ công sẽ hoạt động như thế nào với kèo bóng đá pháp ngữPL/PGSQL.
Ví dụ 37-1. kèo bóng đá pháp đặt thủ côngPL/PGSQL
Lệnh sau đây cho máy chủ cơ sở dữ liệu ở đâu Tìm đối tượng được chia sẻ choPL/PGSQLTrình xử lý cuộc gọi kèo bóng đá pháp ngữ chức năng.
Tạo chức năng plpgsql_call_handler () trả về kèo bóng đá pháp_handler là '$ libdir/plpgsql' ngôn ngữ c;
PL/PGSQLcó trình xác thực chức năng, vì vậy chúng tôi cũng tuyên bố rằng:
Tạo chức năng PLPGSQL_VALIDATOR (OID) Trả về void AS '$ libdir/plpgsql' kèo bóng đá pháp ngữ c;
lệnh:
Tạo kèo bóng đá pháp đáng tin cậy PLPGSQL Handler plpgsql_call_handler Trình xác nhận plpgsql_validator;
sau đó định nghĩa rằng các chức năng được khai báo trước đó nên được gọi cho các chức năng và quy trình kích hoạt trong đó thuộc tính kèo bóng đá pháp ngữ làPLPGSQL.
Trong mặc địnhPostgreSQL17177_17216PL/PGSQLkèo bóng đá pháp ngữ được xây dựng và cài đặt vào"Thư viện"Thư mục. Nếu nhưTCLHỗ trợ được cấu hình trong, Người xử lý choPL/TCLvàPL/TCLUcũng được xây dựng và được kèo bóng đá pháp đặt ở cùng một vị trí. Tương tự như vậy,PL/PerlvàPL/PerluTrình xử lý được xây dựng và kèo bóng đá pháp đặt nếu Hỗ trợ Perl được cấu hình vàPL/PythonuHandler được kèo bóng đá pháp đặt nếu Python Hỗ trợ được cấu hình.