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ế.

Chương 36. Thủ tục tỷ lệ kèo bóng đá tối nay ngữ

PostgreSQLCho phép người dùng Thêm tỷ lệ kèo bóng đá tối nay ngữ lập trình mới có sẵn để viết chức năng và thủ tục. Chúng được gọi làtỷ lệ kèo bóng đá tối nay(PL). Trong trường hợp của một chức năng hoặc thủ tục kích hoạt được viết bằng tỷ lệ kèo bóng đá tối nay, máy chủ cơ sở dữ liệu không có kiến ​​thức tích hợp về cách Giải thích văn bản nguồn của chức năng. Thay vào đó, nhiệm vụ được thông qua đến một người xử lý đặc biệt biết các chi tiết của ngôn ngữ. Các Handler có thể thực hiện tất cả các công việc phân tích cú pháp, phân tích cú pháp, tự thực hiện, v.v. chính nó, hoặc nó có thể đóng vai trò là"keo"giữaPostgreSQL​​và một triển khai hiện có của một tỷ lệ kèo bóng đá tối nay ngữ lập trình. Bản thân người xử lý là một C đặc biệt chức năng tỷ lệ kèo bóng đá tối nay ngữ được biên dịch thành một đối tượng được chia sẻ và được tải trên yêu cầu.

Viết một trình xử lý cho một tỷ lệ kèo bóng đá tối nay mới được mô tả TRONGChương 47. Một số thủ tục tỷ lệ kèo bóng đá tối nay ngữ có sẵn trong tiêu chuẩnPostgreSQLPhân phối, có thể phục vụ như Ví dụ.

36.1. Cài đặt tỷ lệ kèo bóng đá tối nay

Một tỷ lệ kèo bóng đá tối nay phải là"Đã cài đặt"vào mỗi cơ sở dữ liệu nơi nó được đã sử dụng. Nhưng các tỷ lệ kèo bóng đá tối nay đượ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 được tạo sau đó. Vì vậy, cơ sở dữ liệu Quản trị viên có thể quyết định tỷ lệ kèo bóng đá tối nay ngữ nào có sẵn trong đó cơ sở dữ liệu và có thể cung cấp một số tỷ lệ kèo bóng đá tối nay ngữ theo mặc định nếu Anh ấy chọn.

Đối với các tỷ lệ kèo bóng đá tối nay ngữ được cung cấp với phân phối tiêu chuẩn, Chương trìnhcreatelangcó thể được sử dụng để cài đặt tỷ lệ kèo bóng đá tối nay ngữ thay vì thực hiện các chi tiết bằng cách tay. Ví dụ: để cài đặt tỷ lệ kèo bóng đá tối nay 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 tỷ lệ kèo bóng đá tối nay ngữ tùy chỉnhcreatelangkhông biết về.

Cài đặt tỷ lệ kèo bóng đá tối nay thủ công

Một tỷ lệ kèo bóng đá tối nay được cài đặt trong cơ sở dữ liệu trong ba Các bước, phải được thực hiện bởi một Superuser cơ sở dữ liệu. ThecreatelangChương trình tự động hóaBước 2Bước 3.

  1. Đối tượng được chia sẻ cho người xử lý tỷ lệ kèo bóng đá tối nay 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 33.7.6.

  2. Người xử lý phải được khai báo với lệnh

    Tạo chức năngHandler_Function_Name()
        Trả về tỷ lệ kèo bóng đá tối nay_handler
        BẰNG 'Path-to-Shared-Encent'
        tỷ lệ kèo bóng đá tối nay ngữ C;

    Loại trả lại đặc biệt củatỷ lệ kèo bóng đá tối nay_handlerCho biết 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 địnhSQLKiểu dữ liệu và là không thể sử dụng trực tiếp trongSQLcâu lệnh.

  3. PL phải được khai báo với lệnh

    Tạo [đáng tin cậy] [Thủ tục] tỷ lệ kèo bóng đá tối nay ngữtên tỷ lệ kèo bóng đá tối nay ngữHandlerHandler_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 điều này tỷ lệ kèo bóng đá tối nay ngữ để tạo các chức năng và quy trình kích hoạt. Vì các chức năng PL được thực thi bên trong cơ sở dữ liệu máy chủ,TrustedCờ nên chỉ được cung cấp cho các tỷ lệ kèo bóng đá tối nay ngữ không cho phép truy cập vào Nội bộ máy chủ cơ sở dữ liệu hoặc hệ thống tệp. Các tỷ lệ kèo bóng đá tối nay ngữPL/PGSQL, PL/TCLPL/Perlđược coi là đáng tin cậy; các tỷ lệ kèo bóng đá tối nay ngữPL/TCLU, PL/PerluPL/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ụ 36-1cho thấy quy trình cài đặt thủ công sẽ hoạt động như thế nào với tỷ lệ kèo bóng đá tối nay ngữPL/PGSQL.

Ví dụ 36-1. Cài đặ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 của tỷ lệ kèo bóng đá tối nay ngữ chức năng.

Tạo chức năng plpgsql_call_handler () trả về tỷ lệ kèo bóng đá tối nay_handler là
    '$ libdir/plpgsql' ngôn ngữ c;

lệnh

Tạo tỷ lệ kèo bóng đá tối nay đáng tin cậy PLPGSQL
    Handler plpgsql_call_handler;

sau đó định nghĩa rằng trình xử lý cuộc gọi được khai báo trước đó chức năng nên được gọi cho các chức năng và kích hoạt các quy trình trong đó thuộc tính tỷ lệ kèo bóng đá tối nay ngữ làPLPGSQL.

Trong mặc địnhPostgreSQLCài đặt, trình xử lý choPL/PGSQLtỷ lệ kèo bóng đá tối nay ngữ được xây dựng và cài đặt vào"Thư viện"Thư mục. Nếu nhưTCL/TKHỗ trợ được cấu hình trong, người xử lý choPL/TCLPL/TCLUcũng được xây dựng và được cài đặt ở cùng một vị trí. Tương tự như vậy,PL/PerlPL/PerluBộ xử lý được xây dựng và cài đặt Nếu hỗ trợ Perl được cấu hình vàPL/Pythonuđược cài đặt nếu hỗ trợ Python được cấu hình.