Tạo kèo bóng đá pháp ngữ - Xác định kèo bóng đá pháp ngữ thủ tục mới
Tạo [hoặc thay thế] [Thủ tục] kèo bóng đá pháp ngữtên
Tạo [hoặc thay thế] [đáng tin cậy] [Thủ tục] kèo bóng đá pháp ngữtên
Handlercall_handler
[Inlineinline_handler
] [Trình xác nhậnValfunction
]
Tạo kèo bóng đá pháp ngữ
Đăng ký một kèo bóng đá pháp ngữ thủ tục mới với APostgreSQLCơ sở dữ liệu. Sau đó, các chức năng và quy trình có thể được xác định trong kèo bóng đá pháp ngữ mới này.
kể từPostgreSQL9.1, Hầu hết các kèo bóng đá pháp ngữ thủ tục đã được tạo thànhTiện ích mở rộngHồivà do đó nên được cài đặt vớikèo bóng đá pháp tiện ích mở rộngkhôngTạo kèo bóng đá pháp ngữ
. Sử dụng trực tiếpTạo kèo bóng đá pháp ngữ
Bây giờ nên giới hạn trong các tập lệnh cài đặt mở rộng. Nếu bạn cóHồiBarekèo bóng đá pháp ngữ trong cơ sở dữ liệu của bạn, có lẽ là kết quả của việc nâng cấp, bạn có thể chuyển đổi nó thành tiện ích mở rộng bằng cách sử dụngkèo bóng đá pháp tiện ích mở rộng
.Langname
Từ chưa đóng gói
Tạo kèo bóng đá pháp ngữ
liên kết hiệu quả tên kèo bóng đá pháp ngữ với (các) hàm xử lý chịu trách nhiệm thực thi các chức năng được viết bằng kèo bóng đá pháp ngữ. Tham khảoChương 56Để biết thêm thông tin về người xử lý kèo bóng đá pháp ngữ.
Có hai dạng củaTạo kèo bóng đá pháp ngữ
lệnh. Trong mẫu đầu tiên, người dùng chỉ cung cấp tên của kèo bóng đá pháp ngữ mong muốn vàPostgreSQLMáy chủ tham khảo13115_13130
Danh mục hệ thống để xác định các tham số chính xác. Ở dạng thứ hai, người dùng cung cấp các tham số kèo bóng đá pháp ngữ cùng với tên kèo bóng đá pháp ngữ.pg_pltemplate
, nhưng cách tiếp cận này được coi là lỗi thời.
Khi máy chủ tìm thấy một mục nhập trongpg_pltemplate
Danh mục cho tên kèo bóng đá pháp ngữ đã cho, nó sẽ sử dụng dữ liệu danh mục ngay cả khi lệnh bao gồm các tham số kèo bóng đá pháp ngữ. Hành vi này đơn giản hóa việc tải các tệp kết xuất cũ, có khả năng chứa thông tin lỗi thời về các chức năng hỗ trợ kèo bóng đá pháp ngữ.
Thông thường, người dùng phải cóPostgreSQLĐặc quyền của Superuser để đăng ký một kèo bóng đá pháp ngữ mới. Tuy nhiên, chủ sở hữu của cơ sở dữ liệu có thể đăng ký một kèo bóng đá pháp ngữ mới trong cơ sở dữ liệu đó nếu kèo bóng đá pháp ngữ được liệt kê trongpg_pltemplate
Danh mục và được đánh dấu là cho phép được kèo bóng đá pháp bởi các chủ sở hữu cơ sở dữ liệu (TMPLDBacreate
là đúng). Mặc định là các kèo bóng đá pháp ngữ đáng tin cậy có thể được tạo bởi các chủ sở hữu cơ sở dữ liệu, nhưng điều này có thể được điều chỉnh bởi các siêu người dùng bằng cách sửa đổi nội dung củapg_pltemplate
. Người tạo kèo bóng đá pháp ngữ trở thành chủ sở hữu của nó và sau đó có thể bỏ nó, đổi tên nó hoặc gán nó cho chủ sở hữu mới.
Tạo hoặc thay thế kèo bóng đá pháp ngữ
sẽ tạo một kèo bóng đá pháp ngữ mới hoặc thay thế một định nghĩa hiện có. Nếu kèo bóng đá pháp ngữ đã tồn tại, các tham số của nó được cập nhật theo các giá trị được chỉ định hoặc lấy từPG_PLTEMPLATE
, nhưng cài đặt quyền sở hữu và quyền của kèo bóng đá pháp ngữ không thay đổi và bất kỳ chức năng hiện có nào được viết bằng kèo bóng đá pháp ngữ được cho là vẫn còn hiệu lực. Ngoài các yêu cầu đặc quyền thông thường để tạo kèo bóng đá pháp ngữ, người dùng phải là siêu người dùng hoặc chủ sở hữu kèo bóng đá pháp ngữ hiện có.thay thế
Trường hợp chủ yếu được sử dụng để đảm bảo rằng kèo bóng đá pháp ngữ tồn tại. Nếu kèo bóng đá pháp ngữ cópg_pltemplate
mục sau đóthay thế
Sẽ không thực sự thay đổi bất cứ điều gì về một định nghĩa hiện có, ngoại trừ trong trường hợp bất thường trong đópg_pltemplate
mục đã được sửa đổi kể từ khi kèo bóng đá pháp ngữ được tạo.
Trusted
Trusted
Chỉ định rằng kèo bóng đá pháp ngữ không cấp quyền truy cập vào dữ liệu mà người dùng sẽ không có. Nếu từ khóa này bị bỏ qua khi đăng ký kèo bóng đá pháp ngữ, chỉ người dùng cóPostgreSQLĐặc quyền Superuser có thể sử dụng kèo bóng đá pháp ngữ này để tạo các chức năng mới.
Thủ tục
Đây là một từ tiếng ồn.
tên
Tên của kèo bóng đá pháp ngữ thủ tục mới. Tên phải là duy nhất trong số các kèo bóng đá pháp ngữ trong cơ sở dữ liệu.
Để tương thích ngược, tên có thể được đặt trong các trích dẫn đơn.
Handler
call_handler
call_handler
là tên của hàm đã đăng ký trước đó sẽ được gọi để thực hiện các chức năng của kèo bóng đá pháp ngữ thủ tục. Trình xử lý cuộc gọi cho một kèo bóng đá pháp ngữ thủ tục phải được viết bằng kèo bóng đá pháp ngữ được biên dịch như C với quy ước gọi phiên bản 1 và được đăng ký vớiPostgreSQLLà một hàm không có đối số và trả lạikèo bóng đá pháp_handler
Loại, loại trình giữ chỗ được sử dụng đơn giản để xác định chức năng như một trình xử lý cuộc gọi.
Inline
inline_handler
inline_handler
là tên của hàm đã đăng ký trước đó sẽ được gọi để thực thi một khối mã ẩn danh (doLệnh) trong kèo bóng đá pháp ngữ này. Nếu khônginline_handler
Hàm được chỉ định, kèo bóng đá pháp ngữ không hỗ trợ các khối mã ẩn danh. Hàm xử lý phải lấy một đối số của loạiNội bộ
, sẽ làdo
Biểu diễn nội bộ của lệnh và nó thường sẽ trả vềvoid
. Giá trị trả về của người xử lý bị bỏ qua.
Trình xác nhận
Valfunction
Valfunction
là tên của một hàm đã đăng ký trước đó sẽ được gọi là khi một hàm mới trong kèo bóng đá pháp ngữ được tạo, để xác thực chức năng mới. Nếu không có chức năng xác thực được chỉ định, thì một hàm mới sẽ không được kiểm tra khi nó được tạo.oid
, sẽ là oid của chức năng được kèo bóng đá pháp và thường sẽ trả vềvoid
.
Một hàm xác thực thường kiểm tra cơ thể chức năng cho tính chính xác của cú pháp, nhưng nó cũng có thể xem xét các thuộc tính khác của hàm, ví dụ nếu kèo bóng đá pháp ngữ không thể xử lý các loại đối số nhất định. Để báo hiệu một lỗi, hàm xác thực sẽ sử dụngEREPORT ()
Hàm. Giá trị trả về của hàm bị bỏ qua.
Theđáng tin cậy
Tùy chọn và tên hàm hỗ trợ bị bỏ qua nếu máy chủ có mục nhập cho tên kèo bóng đá pháp ngữ được chỉ định trongpg_pltemplate
.
sử dụngkèo bóng đá pháp ngữ thảđể bỏ các kèo bóng đá pháp ngữ thủ tục.
Danh mục hệ thốngPG_L Language
(xemPhần 52,29) Hồ sơ thông tin về các kèo bóng đá pháp ngữ hiện được cài đặt. Ngoài ra,PSQLlệnh\ DL
liệt kê các kèo bóng đá pháp ngữ đã cài đặt.
Để tạo các chức năng trong kèo bóng đá pháp ngữ thủ tục, người dùng phải cósử dụng
Đặc quyền cho kèo bóng đá pháp ngữ. Theo mặc định,sử dụng
được cấp chocông khai
(tức là mọi người) cho các kèo bóng đá pháp ngữ đáng tin cậy. Điều này có thể bị thu hồi nếu muốn.
kèo bóng đá pháp ngữ thủ tục là địa phương cho các cơ sở dữ liệu riêng lẻ. Tuy nhiên, một kèo bóng đá pháp ngữ có thể được cài đặt vàoTemplate1
Cơ sở dữ liệu, sẽ khiến nó có sẵn tự động trong tất cả các cơ sở dữ liệu được kèo bóng đá pháp ra sau đó.
Hàm người xử lý cuộc gọi, hàm xử lý nội tuyến (nếu có) và hàm xác thực (nếu có) phải tồn tại nếu máy chủ không có mục nhập cho kèo bóng đá pháp ngữ trongpg_pltemplate
. Nhưng khi có một mục, các chức năng không cần tồn tại;Tạo kèo bóng đá pháp ngữ
Thất bại, nếu thư viện chia sẻ thực hiện kèo bóng đá pháp ngữ không có sẵn trong cài đặt.)
inPostgreSQLPhiên bản trước 7.3, cần phải khai báo các chức năng xử lý là trả về loại trình giữ chỗOpaque
, thay vìkèo bóng đá pháp_handler
. Để hỗ trợ tải các tệp kết xuất cũ,Tạo kèo bóng đá pháp ngữ
Sẽ chấp nhận một hàm được khai báo là trả vềOpaque
, nhưng nó sẽ phát hành thông báo và thay đổi loại trả về được khai báo của hàm thànhkèo bóng đá pháp_handler
.
Cách ưa thích để tạo bất kỳ kèo bóng đá pháp ngữ thủ tục tiêu chuẩn nào chỉ là:
Tạo kèo bóng đá pháp ngữ plperl;
Đối với một kèo bóng đá pháp ngữ không được biết trongPG_PLTEMPLATE
Danh mục, một chuỗi như thế này là cần thiết:
tạo chức năng plsample_call_handler () trả về kèo bóng đá pháp_handler
Tạo kèo bóng đá pháp ngữ
là APostgreSQLphần mở rộng.