Phiên bản không được hỗ trợ:7.0 / 6.5 / 6.4
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ế.

Tạo kèo bóng đá việt nam ngữ

tên

Tạo kèo bóng đá việt nam ngữ - Xác định kèo bóng đá việt nam ngữ mới cho Chức năng
Tạo [đáng tin cậy] kèo bóng đá việt nam ngữ thủ tục 'Langname'
    Handlercall_handlerLancompiler 'bình luận'

Đầu vào

đáng tin cậy

đáng tin cậyChỉ định rằng Gọi xử lý cho kèo bóng đá việt nam ngữ là an toàn; đó là, nó cung cấp Người dùng không có đặc quyền không có chức năng để vượt qua quyền truy cập hạn chế. Nếu từ khóa này bị bỏ qua khi đăng ký kèo bóng đá việt nam ngữ, chỉ người dùng cóPostgresĐặc quyền Superuser có thể sử dụng kèo bóng đá việt nam ngữ này để tạo các chức năng mới (như 'C' kèo bóng đá việt nam ngữ).

langname

Tên của kèo bóng đá việt nam ngữ thủ tục mới. kèo bóng đá việt nam ngữ Tên là trường hợp không nhạy cảm. Một kèo bóng đá việt nam ngữ thủ tục không thể Ghi đè một trong các kèo bóng đá việt nam ngữ tích hợp củaPostgres.

Handlercall_handler

call_handlerlà tên của một chức kèo bóng đá việt nam đã đăng ký trước đó sẽ được gọi đến thực hiện các thủ tục PL.

bình luận

TheLancompilerĐối số là Chuỗi sẽ được chèn vàoLancompilerthuộc tính của mớiPG_L Languagemục nhập. Hiện tại,PostgresKhông sử dụng thuộc tính này theo bất kỳ cách nào.

Đầu ra

kèo bóng đá việt nam

Thông báo này được trả về nếu kèo bóng đá việt nam ngữ thành công tạo.

ERROR: PL Handler Hàmfuncname() không hiện hữu

Lỗi này được trả về nếu hàmfuncname() không tìm thấy.

Mô tả

sử dụngTạo kèo bóng đá việt nam ngữ, APostgresNgười dùng có thể đăng ký kèo bóng đá việt nam ngữ mới vớiPostgres. Sau đó, các chức năng và quy trình kích hoạt có thể được xác định trong phần mới này kèo bóng đá việt nam ngữ. Người dùng phải cóPostgresĐặc quyền Superuser để đăng ký A kèo bóng đá việt nam ngữ mới.

Viết PL xử lý

Trình xử lý cuộc gọi cho kèo bóng đá việt nam ngữ thủ tục phải được viết Trong kèo bóng đá việt nam ngữ trình biên dịch như 'C' và được đăng ký vớiPostgresLà một chức kèo bóng đá việt nam lấy không có đối số và trả lạiOpaqueLoại, một trình giữ chỗ cho các loại không xác định hoặc không xác định .. Điều này ngăn người xử lý cuộc gọi được gọi trực tiếp như một chức kèo bóng đá việt nam từ các truy vấn.

Tuy nhiên, các đối số phải được cung cấp trong cuộc gọi thực tế khi một chức năng PL hoặc quy trình kích hoạt trong kèo bóng đá việt nam ngữ được cung cấp bởi người xử lý sẽ được thực thi.

  • Khi được gọi từ Trình quản lý kích hoạt, đối số duy nhất là id đối tượng từ quy trình củaPG_PROCmục nhập. Tất cả các thông tin khác từ Trình quản lý kích hoạt được tìm thấy trong toàn cầucurrentTriggerDataCon trỏ.

  • Khi được gọi từ Trình quản lý chức kèo bóng đá việt nam, các đối số là ID đối tượng của thủ tụcPG_PROCmục nhập, số lượng đối số được trao cho chức kèo bóng đá việt nam PL, các đối số trong mộtfmgrvaluesCấu trúc và con trỏ tới A boolean nơi hàm cho người gọi nếu trả về Giá trị là giá trị null SQL.

Tùy thuộc vào trình xử lý cuộc gọi để tìm nạpPG_PROCmục nhập và để phân tích đối số và Các loại trả lại của thủ tục được gọi là. Mệnh đề AS từkèo bóng đá việt nam chức năngcủa thủ tục sẽ là tìm thấy trongprosrcthuộc tính củaPG_PROCmục nhập bảng. Đây có thể là văn bản nguồn bằng chính kèo bóng đá việt nam ngữ thủ tục (như cho PL/TCL), một tên đường dẫn đến một tệp hoặc bất kỳ thứ gì khác cho biết Gọi Handler phải làm gì chi tiết.

ghi chú

sử dụngkèo bóng đá việt nam chức năngĐể kèo bóng đá việt nam a chức năng.

sử dụngDrop kèo bóng đá việt nam ngữĐể bỏ thủ tục kèo bóng đá việt nam ngữ.

Tham khảo bảngPG_L Languagecho Thông tin thêm:

Bảng "PG_L Language"
   Thuộc tính |  Loại | Công cụ sửa đổi
---------------+----------+----------
 Lanname | Tên |
 Lanispl | Boolean |
 Lanpltrusted | Boolean |
 Lanplcallfoid | oid |
 LANCOMPILER | Văn bản |

 Lanname | Lanispl | Lanpltrusted | Lanplcallfoid | LANCOMPILER
----------+----------+--------------+---------------+-----------------
 nội bộ | f | f |             0 | n/a
 C | f | f |             0 | /bin/cc
 SQL | f | f |             0 | Postgres

Vì người xử lý cuộc gọi cho kèo bóng đá việt nam ngữ thủ tục phải Đã đăng ký vớiPostgresin kèo bóng đá việt nam ngữ 'C', nó kế thừa tất cả các khả năng và Hạn chế của các chức năng 'C'.

Hiện tại, các định nghĩa cho kèo bóng đá việt nam ngữ thủ tục không thể được thay đổi khi chúng đã được tạo.

sử dụng

Đây là một mẫu cho trình xử lý PL được viết trong 'C':

#include "Executor/spi.h"
#include "Lệnh/Trigger.h"
#include "Utils/elog.h"
#include "fmgr.h" / * cho fmgrvalues ​​struct * /
#include "Access/Heapam.h"
#include "Utils/syscache.h"
#include "Danh mục/pg_proc.h"
#include "Danh mục/pg_type.h"

Mốc thời gian
plsample_call_handler (
     Oid prooid,
     int pronargs,
     Fmgrvalues ​​*proArgs,
     bool *isnull)

     Datum retval;
     TriggerData *TrigData;

     if (currentTriggerData == null) 
          /*
           * Được gọi là một hàm
           */

          retval = ...
      khác 
          /*
           * Được gọi là thủ tục kích hoạt
           */
          TrigData = currentTriggerData;
          CurrentTriggerData = null;

          retval = ...

     *isnull = sai;
     trả lại retval;

Chỉ có vài nghìn dòng mã phải được thêm vào thay vì Các dấu chấm để hoàn thành trình xử lý cuộc gọi PL. Nhìn thấykèo bóng đá việt nam chức năngĐể biết thông tin về cách biên dịch nó thành một mô -đun có thể tải.

Các lệnh sau sau đó đăng ký thủ tục mẫu kèo bóng đá việt nam ngữ:

Tạo chức năng plsample_call_handler () trả về mờ đục mờ đục mờ đục mờ đục mờ
    Như '/usr/local/pgsql/lib/plsample.so'
    kèo bóng đá việt nam ngữ 'c';
Tạo kèo bóng đá việt nam ngữ thủ tục 'plsample'
    Handler plsample_call_handler
    Trình truyền hình 'pl/sample';

Tương thích

SQL92

Tạo kèo bóng đá việt nam ngữlà APostgresPhần mở rộng. Không cóTạo kèo bóng đá việt nam ngữcâu lệnh trongSQL92.