Phiên bản được hỗ trợ:hiện tại(17)16/15/14/13
Phiên bản phát triển: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

Chương 56. Viết một trình xử lý kèo tỷ số bóng đá euro hôm nay

Tất cả các cuộc gọi đến các chức năng được viết bằng kèo tỷ số bóng đá euro hôm nay ngôn ngữ khác ngoài hiện tạiHồiPhiên bản 1xôngGiao diện cho các kèo tỷ số bóng đá euro hôm nay ngữ được biên dịch (điều này bao gồm các hàm trong các kèo tỷ số bóng đá euro hôm nay ngữ và hàm thủ tục do người dùng xác địnhHandler gọiHàm cho ngôn ngữ cụ thể. Trình xử lý cuộc gọi là thực thi chức năng là kèo tỷ số bóng đá euro hôm nay cách có ý nghĩa, chẳng hạn như bằng cách diễn giải văn bản nguồn được cung cấp.

Trình xử lý cuộc gọi cho kèo tỷ số bóng đá euro hôm nay làHồibình thườngxôngHàm phải được viết bằng kèo tỷ số bóng đá euro hôm nay ngữ được biên dịch như C, sử dụng giao diện phiên bản-1 và được đăng ký vớiPostgreSQLnhư không có đối số và trả về loạikèo tỷ số bóng đá euro hôm nay_handler. Loại giả đặc biệt này xác định chức năng là người xử lý cuộc gọi và ngăn không cho nó được gọi trực tiếp trong các lệnh SQL.Phần 38.10.

Trình xử lý cuộc gọi được gọi theo cùng kèo tỷ số bóng đá euro hôm nay cách như bất kỳ chức năng nào khác: Nó nhận được kèo tỷ số bóng đá euro hôm nay con trỏ tới AfunctionCallInfobasingata structChứa các giá trị đối số và thông tin về hàm được gọi và dự kiến ​​sẽ trả về ADatumKết quả (và có thể đặtisnulltrường củafunctionCallInfobasingataCấu trúc, nếu nó muốn trả về kết quả SQL NULL). Sự khác biệt giữa kèo tỷ số bóng đá euro hôm nay xử lý cuộc gọi và hàm callee thông thường làflinfo- fn_oidTrường củafunctionCallInfobasingataCấu trúc sẽ chứa oid của chức năng thực tế được gọi, không phải của chính kèo tỷ số bóng đá euro hôm nay xử lý cuộc gọi. kèo tỷ số bóng đá euro hôm nay xử lý cuộc gọi phải sử dụng trường này để xác định chức năng thực thi nào.

Tùy thuộc vào kèo tỷ số bóng đá euro hôm nay xử lý cuộc gọi để lấy mục nhập của hàm từPG_PROCDanh mục hệ thống và để phân tích đối số và các loại trả về của hàm được gọi. TheASmệnh đề từtạo chức năngLệnh cho chức năng sẽ được tìm thấy trongprosrcCột củaPG_PROCHàng. Đây thường là văn bản nguồn trong kèo tỷ số bóng đá euro hôm nay, nhưng trên lý thuyết, nó có thể là một cái gì đó khác, chẳng hạn như tên đường dẫn đến một tệp hoặc bất cứ điều gì khác cho người xử lý cuộc gọi phải làm gì một cách chi tiết.

Thông thường, cùng kèo tỷ số bóng đá euro hôm nay hàm được gọi là nhiều lần cho mỗi câu lệnh SQL. Trình xử lý cuộc gọi có thể tránh tra cứu thông tin lặp đi lặp lại về chức năng được gọi bằng cách sử dụngflinfo- fn_extraTrường. Điều này ban đầu sẽ lànull, nhưng có thể được đặt bởi kèo tỷ số bóng đá euro hôm nay xử lý cuộc gọi để chỉ vào thông tin về hàm được gọi. Trên các cuộc gọi tiếp theo, nếuflinfo- fn_extrađã khôngnullSau đó, nó có thể được sử dụng và bước tra cứu thông tin bị bỏ qua. Người xử lý cuộc gọi phải đảm bảo rằngflinfo- fn_extrađược thực hiện để chỉ vào bộ nhớ sẽ sống ít nhất cho đến khi kết thúc truy vấn hiện tại, vì kèo tỷ số bóng đá euro hôm nayfmgrinfoCấu trúc dữ liệu có thể được giữ lâu như vậy. kèo tỷ số bóng đá euro hôm nay cách để làm điều này là phân bổ dữ liệu bổ sung trong bối cảnh bộ nhớ được chỉ định bởiflinfo- fn_mcxt; Dữ liệu đó thường sẽ có tuổi thọ giống nhưfmgrinfochính nó. Nhưng kèo tỷ số bóng đá euro hôm nay xử lý cũng có thể chọn sử dụng bối cảnh bộ nhớ tồn tại lâu hơn để có thể bộ đệm thông tin định nghĩa chức năng trên các truy vấn.

Khi hàm kèo tỷ số bóng đá euro hôm nay được gọi dưới dạng kích hoạt, không có đối số nào được truyền theo cách thông thường, nhưngfunctionCallInfobasingata'sbối cảnhđiểm trường tại ATriggerDataCấu trúc, thay vì lànullVì nó là trong một cuộc gọi chức năng đơn giản. Một người xử lý ngôn ngữ nên cung cấp các cơ chế cho các chức năng kèo tỷ số bóng đá euro hôm nay để có được thông tin kích hoạt.

Một mẫu cho trình xử lý kèo tỷ số bóng đá euro hôm nay được viết dưới dạng tiện ích mở rộng C được cung cấp trongsrc/test/modules/plsample. Đây là một mẫu làm việc thể hiện một cách để tạo một trình xử lý kèo tỷ số bóng đá euro hôm nay, các tham số xử lý và trả về một giá trị.

Mặc dù cung cấp trình xử lý cuộc gọi là đủ để tạo kèo tỷ số bóng đá euro hôm nay tối thiểu, có hai chức năng khác có thể được cung cấp tùy chọn để làm cho ngôn ngữ thuận tiện hơn để sử dụng. Đây là mộtValidatorvà kèo tỷ số bóng đá euro hôm nayHandler nội tuyến. kèo tỷ số bóng đá euro hôm nay trình xác nhận có thể được cung cấp để cho phép kiểm tra cụ thể ngôn ngữ được thực hiện trong thời gianTạo chức năng. kèo tỷ số bóng đá euro hôm nay trình xử lý nội tuyến có thể được cung cấp để cho phép ngôn ngữ hỗ trợ các khối mã ẩn danh được thực thi thông quadolệnh.

Nếu một trình xác thực được cung cấp bởi một kèo tỷ số bóng đá euro hôm nay, nó phải được khai báo là một hàm lấy một tham số duy nhất loạioid. Kết quả của kèo tỷ số bóng đá euro hôm nay xác nhận bị bỏ qua, do đó, nó được tuyên bố thông thường để trả vềvoid. kèo tỷ số bóng đá euro hôm nay xác nhận sẽ được gọi vào cuốiTạo chức năngLệnh đã tạo hoặc cập nhật một hàm được viết bằng kèo tỷ số bóng đá euro hôm nay. OID được truyền qua là oid của chức năngPG_PROCHàng. kèo tỷ số bóng đá euro hôm nay xác thực phải tìm nạp hàng này theo cách thông thường và làm bất cứ điều gì kiểm tra là phù hợp.CheckFunctionValidatorAccess ()Để chẩn đoán các cuộc gọi rõ ràng đến kèo tỷ số bóng đá euro hôm nay xác nhận mà người dùng không thể đạt được thông quatạo chức năng. Kiểm tra điển hình sau đó bao gồm xác minh rằng các loại đối số và kết quả của hàm được hỗ trợ bởi kèo tỷ số bóng đá euro hôm nay ngữ và cơ thể của chức năng được chính xác về mặt cú pháp trong kèo tỷ số bóng đá euro hôm nay ngữ.EREPORT ()Cơ chế báo cáo lỗi. Ném kèo tỷ số bóng đá euro hôm nay lỗi sẽ buộc kèo tỷ số bóng đá euro hôm nay cuộc quay đầu lại giao dịch và do đó ngăn chặn định nghĩa chức năng không chính xác được thực hiện.

Các chức năng của kèo tỷ số bóng đá euro hôm nay xác nhận thường tôn trọngCheck_Function_BodiesTham số: Nếu nó bị tắt thì bất kỳ kiểm tra đắt tiền hoặc nhạy cảm với bối cảnh nên được bỏ qua. Nếu kèo tỷ số bóng đá euro hôm nay ngữ cung cấp thực thi mã tại thời điểm biên dịch, trình xác nhận phải triệt tiêu các kiểm tra sẽ gây ra thực thi đó.pg_dumpđể có thể tải các chức năng kèo tỷ số bóng đá euro hôm nay mà không phải lo lắng về các tác dụng phụ hoặc phụ thuộc của các cơ quan chức năng trên các đối tượng cơ sở dữ liệu khác. .Tạo chức năngLệnh.) Mặc dù việc lựa chọn chính xác những gì cần kiểm tra hầu hết là theo quyết định của hàm xác thực, lưu ý rằng lõiTạo chức năngMã chỉ thực thisetmệnh đề được gắn vào kèo tỷ số bóng đá euro hôm nay hàm khiCheck_Function_Bodieslà trên. Do đó, kiểm tra kết quả của họ có thể bị ảnh hưởng bởi các tham số GUC chắc chắn nên được bỏ qua khiCheck_Function_Bodiesbị tắt, để tránh các lỗi sai khi khôi phục lại.

Nếu một trình xử lý nội tuyến được cung cấp bởi một kèo tỷ số bóng đá euro hôm nay, nó phải được khai báo là một hàm lấy một tham số duy nhất loạiNội bộ. Kết quả của người xử lý nội tuyến bị bỏ qua, do đó, nó được tuyên bố thông thường để trả vềvoid. kèo tỷ số bóng đá euro hôm nay xử lý nội tuyến sẽ được gọi khidoTuyên bố được thực thi chỉ định kèo tỷ số bóng đá euro hôm nay. Tham số thực sự được truyền là một con trỏ tớiInLineCodeBlockstruct, chứa thông tin vềdotham số của câu lệnh, đặc biệt là văn bản của khối mã ẩn danh sẽ được thực thi. kèo tỷ số bóng đá euro hôm nay xử lý nội tuyến nên thực thi mã này và trả về.

Bạn nên bọc tất cả các khai báo chức năng này, cũng nhưTạo kèo tỷ số bóng đá euro hôm nay ngữlệnh chính nó, thành kèo tỷ số bóng đá euro hôm nayMở rộngVì vậy, đơn giảnTạo tiện ích mở rộngLệnh là đủ để cài đặt kèo tỷ số bóng đá euro hôm nay ngữ. Nhìn thấyPhần 38,17Để biết thông tin về việc kèo tỷ số bóng đá euro hôm nay tiện ích mở rộng.

Các kèo tỷ số bóng đá euro hôm nay có trong phân phối tiêu chuẩn là các tài liệu tham khảo tốt khi cố gắng viết trình xử lý ngôn ngữ của riêng bạn. Nhìn vàoSRC/PLthư mục con của cây nguồn. TheTạo kèo tỷ số bóng đá euro hôm nay ngữTrang tham khảo cũng có kèo tỷ số bóng đá euro hôm nay số chi tiết hữu ích.

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớpMẫu nàyĐể báo cáo vấn đề tài liệu.