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

38.6. Quá tải chức tỷ lệ kèo bóng đá

11295_11447quá tỷ lệ kèo bóng đá. Cho dù bạn có sử dụng nó hay không, khả tỷ lệ kèo bóng đá này đòi hỏi các biện pháp phòng ngừa bảo mật khi gọi các chức tỷ lệ kèo bóng đá trong cơ sở dữ liệu nơi một số người dùng không tin tưởng người dùng khác; nhìn thấyPhần 10.3. Khi một truy vấn được thực thi, máy chủ sẽ xác định chức tỷ lệ kèo bóng đá gọi từ các loại dữ liệu và số lượng đối số được cung cấp. Quá tải cũng có thể được sử dụng để mô phỏng các chức tỷ lệ kèo bóng đá với số lượng đối số thay đổi, lên đến số tối đa hữu hạn.

Khi tạo ra một họ các chức tỷ lệ kèo bóng đá quá tải, người ta nên cẩn thận để không tạo ra sự mơ hồ. Chẳng hạn, đưa ra các chức tỷ lệ kèo bóng đá:

Tạo kiểm tra chức tỷ lệ kèo bóng đá (int, real) trả về ...
Tạo kiểm tra chức tỷ lệ kèo bóng đá (smallint, độ chính xác kép) trả về ...

Không rõ chức tỷ lệ kèo bóng đá nào sẽ được gọi với một số đầu vào tầm thường nhưKiểm tra (1, 1.5). Các quy tắc độ phân giải hiện đang được thực hiện được mô tả trongChương 10, nhưng không khôn ngoan khi thiết kế một hệ thống dựa một cách tinh tế vào hành vi này.

Một hàm có một đối số duy nhất thuộc loại tổng hợp thường không có cùng tên với bất kỳ thuộc tính nào (trường) của loại đó. Nhớ lại rằngthuộc tính(Bảng)được coi là tương đương vớiBảng.thuộc tính. Trong trường hợp có sự mơ hồ giữa một hàm trên loại tổng hợp và thuộc tính của loại tổng hợp, thuộc tính sẽ luôn được sử dụng. Có thể ghi đè sự lựa chọn đó bằng cách sử dụng trình độ lược đồ tên hàm (nghĩa là,lược đồ.func(Bảng)) Nhưng tốt hơn là tránh vấn đề bằng cách không chọn tên mâu thuẫn.

Một cuộc xung đột có thể khác là giữa các hàm Variadic và không variadic. Chẳng hạn, có thể tạo cả haifoo (số)foo (số variadic [])13808_1392213942_13953. Quy tắc là chức tỷ lệ kèo bóng đá xuất hiện sớm hơn trong đường dẫn tìm kiếm được sử dụng hoặc nếu hai hàm nằm trong cùng một lược đồ, thì một hàm không được ưu tiên.

Khi quá tải các chức tỷ lệ kèo bóng đá ngôn ngữ C, có một ràng buộc bổ sung: Tên C của mỗi hàm trong họ của các hàm bị quá tải phải khác với tên C của tất cả các chức tỷ lệ kèo bóng đá khác, được tải nội bộ hoặc được tải động. Nếu quy tắc này bị vi phạm, hành vi không thể di động. Bạn có thể gặp lỗi trình liên kết thời gian chạy hoặc một trong các chức tỷ lệ kèo bóng đá sẽ được gọi (thường là quy tắc nội bộ). Hình thức thay thế củaASmệnh đề cho SQLTạo chức tỷ lệ kèo bóng đálệnh phân tách tên hàm SQL từ tên hàm trong mã nguồn C. Ví dụ:

Tạo kiểm tra chức tỷ lệ kèo bóng đá (int) Trả về int
    BẰNG 'FileName',' test_1arg '
    Ngôn ngữ C;
Tạo kiểm tra chức tỷ lệ kèo bóng đá (int, int) trả về int
    BẰNG 'FileName',' test_2arg '
    Ngôn ngữ C;

Tên của các hàm C ở đây phản ánh một trong nhiều quy ước có thể.