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ạo tổng kèo bóng đá cúp c2

Tạo tổng kèo bóng đá cúp c2 - Xác định hàm tổng kèo bóng đá cúp c2 mới

Synopsis

Tạo [hoặc thay thế] Tổng kèo bóng đá cúp c2tên([argmode] [argname]arg_data_type[, ...]) (
    Sfunc =SFUNC,,
    Stype =state_data_type[, sspace =state_data_size]
    [, FinalFunc =ffunc]
    [, Finalfunc_extra]
    [, FinalFunc_Modify = read_only | Có thể chia sẻ | Read_write]
    [, CombineFunc =CombineFunc]
    [, Serialfunc =serialfunc]
    [, Deserialfunc =Deserialfunc]
    [, Initcond =init_condition]
    [, Msfunc =MSFUNC]
    [, Minvfunc =minvfunc]
    [, MStype =MSTATE_DATA_TYPE]
    [, Msspace =mstate_data_size]
    [, Mfinalfunc =MFFUNC]
    [, Mfinalfunc_extra]
    [, Mfinalfunc_modify = read_only | Có thể chia sẻ | Read_write]
    [, Minitcond =minitial_condition]
    [, Sortop =sort_operator]
    [, Song song = an toàn | Bị hạn chế | Không an toàn]
)

Tạo [hoặc thay thế] tổng kèo bóng đá cúp c2tên([argmode] [argname]arg_data_type[, ...]]
                        Đặt hàng bởi [argmode] [argname]arg_data_type[, ...]) (
    Sfunc =SFUNC,,
    Stype =state_data_type[, sspace =state_data_size]
    [, FinalFunc =ffunc]
    [, Finalfunc_extra]
    [, FinalFunc_Modify = read_only | Có thể chia sẻ | Read_write]
    [, Initcond =init_condition]
    [, Song song = an toàn | Bị hạn chế | Không an toàn]
    [, Giả thuyết]
)hoặc cú pháp cũTạo [hoặc thay thế] Tổng kèo bóng đá cúp c2tên(
    Basetype =base_type,,
    Sfunc =SFUNC,,
    Stype =state_data_type[, sspace =state_data_size]
    [, FinalFunc =ffunc]
    [, Finalfunc_extra]
    [, FinalFunc_Modify = read_only | Có thể chia sẻ | Read_write]
    [, CombineFunc =CombineFunc]
    [, Serialfunc =serialfunc]
    [, Deserialfunc =Deserialfunc]
    [, Initcond =init_condition]
    [, Msfunc =MSFUNC]
    [, Minvfunc =minvfunc]
    [, MStype =MSTATE_DATA_TYPE]
    [, Msspace =mstate_data_size]
    [, Mfinalfunc =MFFUNC]
    [, Mfinalfunc_extra]
    [, Mfinalfunc_modify = read_only | Có thể chia sẻ | Read_write]
    [, Minitcond =minitial_condition]
    [, Sortop =sort_operator]
)

Mô tả

Tạo tổng kèo bóng đá cúp c2Xác định hàm tổng kèo bóng đá cúp c2 mới.Tạo hoặc thay thế tổng kèo bóng đá cúp c2sẽ xác định hàm tổng kèo bóng đá cúp c2 mới hoặc thay thế một định nghĩa hiện có. Một số hàm tổng kèo bóng đá cúp c2 cơ bản và thường được sử dụng được bao gồm trong phân phối; chúng được ghi lại trongPhần 9,21. Nếu một người định nghĩa các loại mới hoặc cần một hàm tổng kèo bóng đá cúp c2 chưa được cung cấp, thìTạo tổng kèo bóng đá cúp c2có thể được sử dụng để cung cấp kèo bóng đá cúp c2 tính năng mong muốn.

Khi thay thế một định nghĩa hiện có, các loại đối số, loại kết quả và số lượng đối số trực tiếp có thể không được thay đổi. Ngoài ra, định nghĩa mới phải có cùng loại (cốt liệu thông thường, cốt liệu được đặt hàng hoặc tổng kèo bóng đá cúp c2 tập kèo bóng đá cúp c2 giả thuyết) như cái cũ.

Nếu kèo bóng đá cúp c2 tên lược đồ được đưa ra (ví dụ:Tạo tổng kèo bóng đá cúp c2 myschema.myagg ...) Sau đó, hàm tổng kèo bóng đá cúp c2 được tạo trong lược đồ được chỉ định. Nếu không, nó được tạo trong lược đồ hiện tại.

Một hàm tổng kèo bóng đá cúp c2 được xác định bởi tên và loại dữ liệu đầu vào của nó. Hai tập kèo bóng đá cúp c2 trong cùng một lược đồ có thể có cùng tên nếu chúng hoạt động trên các loại đầu vào khác nhau. Tên và loại dữ liệu đầu vào của một tổng kèo bóng đá cúp c2 cũng phải khác biệt với tên (các) loại dữ liệu đầu vào của mọi hàm thông thường trong cùng một lược đồ. Hành vi này giống hệt với quá tải các tên hàm thông thường (xemPostgreSQL: Tài).

Một hàm tổng kèo bóng đá cúp c2 đơn giản được tạo từ một hoặc hai hàm thông thường: hàm chuyển đổi trạng tháiSFUNCvà Chức năng tính toán cuối cùng tùy chọnffunc. Chúng được sử dụng như sau:

SFUNC(trạng thái nội bộ, giá trị dữ liệu tiếp theo) --- trạng thái nội bộ tiếp theoffunc(trạng thái nội bộ) --- Tổng kèo bóng đá cúp c2-giá trị

PostgreSQLTạo kèo bóng đá cúp c2 biến tạm thời của kiểu dữ liệuSTYPEĐể giữ trạng thái nội bộ hiện tại của tổng kèo bóng đá cúp c2. Ở mỗi hàng đầu vào, (các) giá trị đối số tổng kèo bóng đá cúp c2 được tính toán và hàm chuyển đổi trạng thái được gọi với giá trị trạng thái hiện tại và (các) giá trị đối số mới để tính giá trị trạng thái bên trong mới. Sau khi tất cả các hàng đã được xử lý, hàm cuối cùng được gọi một lần để tính giá trị trả về của tổng kèo bóng đá cúp c2. Nếu không có hàm cuối cùng thì giá trị trạng thái kết thúc được trả về is-is.

Hàm tổng kèo bóng đá cúp c2 có thể cung cấp một điều kiện ban đầu, nghĩa là giá trị ban đầu cho giá trị trạng thái bên trong. Điều này được chỉ định và lưu trữ trong cơ sở dữ liệu dưới dạng giá trị của loạiText, nhưng nó phải là một biểu diễn bên ngoài kèo bóng đá cúp c2 lệ của hằng số của loại dữ liệu giá trị trạng thái. Nếu nó không được cung cấp thì giá trị trạng thái bắt đầu null.

Nếu chức năng chuyển đổi trạng thái được khai báonghiêm ngặt, sau đó nó không thể được gọi bằng đầu vào null. Với một chức năng chuyển tiếp như vậy, thực thi tổng kèo bóng đá cúp c2 hoạt động như sau. Các hàng có bất kỳ giá trị đầu vào null nào bị bỏ qua (hàm không được gọi và giá trị trạng thái trước đó được giữ lại). Nếu giá trị trạng thái ban đầu là NULL, thì ở hàng đầu tiên với các giá trị đầu vào hoàn toàn không có, giá trị đối số đầu tiên thay thế giá trị trạng thái và hàm chuyển tiếp được gọi ở mỗi hàng tiếp theo với các giá trị đầu vào hoàn toàn không có số. Đây là tiện dụng để thực hiện các tập kèo bóng đá cúp c2 nhưMax. Lưu ý rằng hành vi này chỉ khả dụng khistate_data_typegiống như lần đầu tiênarg_data_type. Khi kèo bóng đá cúp c2 loại này khác nhau, bạn phải cung cấp một điều kiện ban đầu không liên quan hoặc sử dụng chức năng chuyển tiếp không phải

Nếu hàm chuyển đổi trạng thái không nghiêm ngặt, thì nó sẽ được gọi là vô điều kiện ở mỗi hàng đầu vào và phải xử lý các đầu vào null và giá trị trạng thái null cho chính nó. Điều này cho phép tác giả tổng kèo bóng đá cúp c2 có toàn quyền kiểm soát đối với việc xử lý các giá trị null của tổng kèo bóng đá cúp c2.

Nếu hàm cuối cùng được khai báonghiêm ngặtHồi, thì nó sẽ không được gọi khi giá trị trạng thái kết thúc là vô giá trị; Thay vào đó, một kết quả null sẽ được trả lại tự động. (Tất nhiên đây chỉ là hành vi bình thường của các hàm nghiêm ngặt.) Trong mọi trường kèo bóng đá cúp c2, hàm cuối cùng có tùy chọn trả về giá trị null. Ví dụ: hàm cuối cùng choAVGTrả về NULL khi thấy có kèo bóng đá cúp c2 hàng đầu vào bằng không.

Đôi khi rất hữu ích khi khai báo hàm cuối cùng là không chỉ lấy giá trị trạng thái, mà còn các tham số bổ sung tương ứng với các giá trị đầu vào của tổng kèo bóng đá cúp c2. Lý do chính để thực hiện điều này là nếu hàm cuối cùng là đa hình và kiểu dữ liệu của giá trị trạng thái sẽ không đủ để xác định loại kết quả. Các tham số bổ sung này luôn được truyền dưới dạng null (và vì vậy hàm cuối cùng không được nghiêm ngặt khiFinalFunc_extraTùy chọn được sử dụng), nhưng dù sao chúng là các tham số kèo bóng đá cúp c2 lệ. Chức năng cuối cùng có thể sử dụngGET_FN_EXPR_ARGTYPEĐể xác định loại đối số thực tế trong cuộc gọi hiện tại.

Một tổng kèo bóng đá cúp c2 có thể hỗ trợ tùy ýChế độ di chuyển-tổng kèo bóng đá cúp c2, như được mô tả trongPhần 36.12.1. Điều này yêu cầu chỉ địnhMSFUNC, minvfuncMSTYPEtham số và tùy chọnMSSPACE, MfinalFunc, mfinalfunc_extra, mfinalfunc_modifyMinitcondtham số. Ngoại trừminvfunc, Các tham số này hoạt động giống như các tham số tổng kèo bóng đá cúp c2 đơn giản tương ứng mà không cóM; Họ xác định một triển khai riêng của tổng kèo bóng đá cúp c2 bao gồm hàm chuyển đổi nghịch đảo.

Cú pháp vớiĐặt hàng bởiTrong danh sách tham số tạo ra một loại tổng kèo bóng đá cúp c2 đặc biệt được gọi làTổng kèo bóng đá cúp c2 đơn đặt hàng; hoặc nếuGiả thuyếtđược chỉ định, sau đó làTổng kèo bóng đá cúp c2 giả thuyếtđược tạo. Các tập kèo bóng đá cúp c2 này hoạt động qua các nhóm giá trị được sắp xếp theo các cách phụ thuộc theo thứ tự, do đó, đặc điểm kỹ thuật của thứ tự sắp xếp đầu vào là một phần thiết yếu của cuộc gọi. Ngoài ra, họ có thể cótrực tiếpĐối số, là các đối số chỉ được đánh giá một lần cho mỗi tập kèo bóng đá cúp c2 thay vì một lần trên mỗi hàng đầu vào. Các tập kèo bóng đá cúp c2 tập kèo bóng đá cúp c2 giả thuyết là một lớp con của các tập kèo bóng đá cúp c2 được đặt hàng trong đó một số đối số trực tiếp được yêu cầu để khớp, trong các loại số và dữ liệu, các cột đối số tổng kèo bóng đá cúp c2. Điều này cho phép các giá trị của các đối số trực tiếp được thêm vào bộ sưu tập các hàng đầu vào tổng kèo bóng đá cúp c2 dưới dạng bổ sungGiả thuyếtHồihàng.

Một tổng kèo bóng đá cúp c2 có thể hỗ trợ tùy ýTập kèo bóng đá cúp c2 một phần, như được mô tả trongPhần 36.12.4. Điều này yêu cầu chỉ địnhCombineFuncTham số. Nếustate_data_typeNội bộ, Nó cũng thường thích kèo bóng đá cúp c2 để cung cấpserialfuncDeserialfunctham số để tập kèo bóng đá cúp c2 song song là có thể. Lưu ý rằng tổng kèo bóng đá cúp c2 cũng phải được đánh dấuAn toàn song songĐể bật tổng kèo bóng đá cúp c2 song song.

Tập kèo bóng đá cúp c2 hoạt động nhưminhoặcMaxĐôi khi có thể được tối ưu hóa bằng cách xem xét một chỉ mục thay vì quét mọi hàng đầu vào. Nếu tổng kèo bóng đá cúp c2 này có thể được tối ưu hóa như vậy, hãy chỉ ra nó bằng cách chỉ định ASắp xếp toán tử. Yêu cầu cơ bản là tổng kèo bóng đá cúp c2 phải mang lại phần tử đầu tiên theo thứ tự sắp xếp do người vận hành gây ra; Nói cách khác:

Chọn AGG (col) từ tab;

phải tương đương với:

Chọn COL từ thứ tự tab bằng col bằng cách sử dụng giới hạn sắp xếp 1;

Các giả định tiếp theo là tổng kèo bóng đá cúp c2 bỏ qua các đầu vào null và nó mang lại kết quả null nếu và chỉ khi không có đầu vào không null. Thông thường, một kiểu dữ liệu<Toán tử là toán tử sắp xếp thích kèo bóng đá cúp c2 chominlà toán tử sắp xếp thích kèo bóng đá cúp c2 choMax. Lưu ý rằng việc tối ưu hóa sẽ không bao giờ thực sự có hiệu lực trừ khi toán tử được chỉ định làVangít hơnhoặcHồilớn hơnThành viên chiến lược của lớp toán tử chỉ mục B-Tree.

Để có thể tạo hàm tổng kèo bóng đá cúp c2, bạn phải cósử dụngĐặc quyền về kèo bóng đá cúp c2 loại đối số, loại trạng thái và loại trả về, cũng nhưthực thiĐặc quyền trên kèo bóng đá cúp c2 chức năng hỗ trợ.

tham số

tên

Tên (tùy chọn Lược đồ theo trình độ) của hàm tổng kèo bóng đá cúp c2 để tạo.

argmode

Chế độ của đối số:inhoặcVariadic. (Các chức năng tổng kèo bóng đá cúp c2 không hỗ trợoutĐối số.) Nếu bỏ qua, mặc định làin. Chỉ đối số cuối cùng có thể được đánh dấuVariadic.

argname

Tên của kèo bóng đá cúp c2 đối số. Điều này hiện chỉ hữu ích cho mục đích tài liệu. Nếu bị bỏ qua, đối số không có tên.

arg_data_type

Một kiểu dữ liệu đầu vào mà hàm tổng kèo bóng đá cúp c2 này hoạt động. Để tạo hàm tổng kèo bóng đá cúp c2 không đối số, viết*thay cho danh sách các thông số kỹ thuật đối số. (Một ví dụ về tổng kèo bóng đá cúp c2 như vậy làCount (*).)

base_type

Trong cú pháp cũ choTạo tổng kèo bóng đá cúp c2, Kiểu dữ liệu đầu vào được chỉ định bởi ABasetypetham số thay vì được viết bên cạnh tên tổng kèo bóng đá cúp c2. Lưu ý rằng cú pháp này chỉ cho phép một tham số đầu vào. Để xác định chức năng tổng kèo bóng đá cúp c2 không đối xứng với cú pháp này, chỉ địnhBasetypeAS"bất kỳ"(không*). Các tập kèo bóng đá cúp c2 được đặt hàng không thể được xác định với cú pháp cũ.

SFUNC

Tên của hàm chuyển đổi trạng thái được gọi cho mỗi hàng đầu vào. Cho kèo bóng đá cúp c2 bình thườngn-Argument Hàm tổng kèo bóng đá cúp c2,SFUNCphải lấyn+1 đối số, đầu tiên là loạistate_data_typevà phần còn lại khớp (các) loại dữ liệu đầu vào được khai báo của tổng kèo bóng đá cúp c2. Hàm phải trả về giá trị của loạistate_data_type. Hàm này lấy giá trị trạng thái hiện tại và giá trị dữ liệu đầu vào hiện tại và trả về giá trị trạng thái tiếp theo.

Đối với các tập kèo bóng đá cúp c2 được đặt hàng (bao gồm cả giả thuyết), hàm chuyển đổi trạng thái chỉ nhận được giá trị trạng thái hiện tại và các đối số tổng kèo bóng đá cúp c2, không phải là đối số trực tiếp. Nếu không thì nó giống nhau.

state_data_type

Kiểu dữ liệu cho giá trị trạng thái của tổng kèo bóng đá cúp c2.

state_data_size

Kích thước trung bình gần đúng (tính bằng byte) của giá trị trạng thái của tổng kèo bóng đá cúp c2. Nếu tham số này bị bỏ qua hoặc bằng không, ước tính mặc định được sử dụng dựa trênstate_data_type. Người lập kế hoạch sử dụng giá trị này để ước tính bộ nhớ cần thiết cho truy vấn tổng kèo bóng đá cúp c2 được nhóm.

ffunc

Tên của hàm cuối cùng được gọi để tính toán kết quả của tổng kèo bóng đá cúp c2 sau khi tất cả các hàng đầu vào đã được đi qua. Đối với một tập kèo bóng đá cúp c2 bình thường, hàm này phải lấy một đối số duy nhấtstate_data_type. Kiểu dữ liệu trả về của tổng kèo bóng đá cúp c2 được định nghĩa là loại trả về của hàm này. Nếu nhưffunckhông được chỉ định, thì giá trị trạng thái kết thúc được sử dụng làm kết quả của tổng kèo bóng đá cúp c2 và loại trả về làstate_data_type.

Đối với tập kèo bóng đá cúp c2 được đặt hàng (bao gồm cả giả thuyết), hàm cuối cùng không chỉ nhận được giá trị trạng thái cuối cùng mà còn cả các giá trị của tất cả các đối số trực tiếp.

nếuFinalFunc_extrađược chỉ định, sau đó ngoài giá trị trạng thái cuối cùng và bất kỳ đối số trực tiếp nào, hàm cuối cùng nhận được các giá trị null bổ sung tương ứng với các đối số thông thường (tổng kèo bóng đá cúp c2) của tổng kèo bóng đá cúp c2. Điều này chủ yếu hữu ích để cho phép độ phân giải chính xác của loại kết quả tổng kèo bóng đá cúp c2 khi một tập kèo bóng đá cúp c2 đa hình đang được xác định.

FinalFunc_Modify=read_only | có thể chia sẻ | read_write

Tùy chọn này chỉ định xem chức năng cuối cùng có phải là hàm thuần túy không sửa đổi kèo bóng đá cúp c2 đối số của nó không.read_onlyCho biết nó không; Hai giá trị khác chỉ ra rằng nó có thể thay đổi giá trị trạng thái chuyển tiếp. Nhìn thấyGhi chúDưới đây để biết thêm chi tiết. Mặc định làread_only, ngoại trừ các tập kèo bóng đá cúp c2 được đặt hàng, trong đó mặc định làread_write.

CombineFunc

TheCombineFuncHàm có thể được chỉ định tùy ý để cho phép hàm tổng kèo bóng đá cúp c2 hỗ trợ tập kèo bóng đá cúp c2 một phần. Nếu được cung cấp,CombineFuncphải kết kèo bóng đá cúp c2 haistate_data_typeCác giá trị, mỗi giá trị chứa kết quả của sự kết kèo bóng đá cúp c2 trên một số tập kèo bóng đá cúp c2 con của các giá trị đầu vào, để tạo ra một mớistate_data_typeđại diện cho kết quả tổng kèo bóng đá cúp c2 trên cả hai bộ đầu vào. Chức năng này có thể được coi làSFUNC, trong đó thay vì hành động theo một hàng đầu vào riêng lẻ và thêm nó vào trạng thái tổng kèo bóng đá cúp c2 đang chạy, nó thêm một trạng thái tổng kèo bóng đá cúp c2 khác vào trạng thái chạy.

TheCombineFuncphải được khai báo là lấy hai đối số củastate_data_typevà trả về giá trị củastate_data_type. Tùy chọn chức năng này có thể lànghiêm ngặtHồi. Trong trường kèo bóng đá cúp c2 này, chức năng sẽ không được gọi khi một trong hai trạng thái đầu vào là null; Trạng thái khác sẽ được coi là kết quả chính xác.

Đối với các hàm tổng kèo bóng đá cúp c2 cóstate_data_typeNội bộ, TheCombineFuncKhông được nghiêm ngặt. Trong trường kèo bóng đá cúp c2 nàyCombineFuncphải đảm bảo rằng các trạng thái NULL được xử lý chính xác và trạng thái được trả về được lưu trữ đúng trong bối cảnh bộ nhớ tổng kèo bóng đá cúp c2.

serialfunc

một hàm tổng kèo bóng đá cúp c2 cóstate_data_typeNội bộchỉ có thể tham gia vào tổng kèo bóng đá cúp c2 song song nếu nó cóserialfuncHàm, phải tuần tự hóa trạng thái tổng kèo bóng đá cúp c2 thành AbyteaGiá trị truyền cho quá trình khác. Chức năng này phải lấy kèo bóng đá cúp c2 đối số duy nhất loạiNội bộvà loại trả vềbytea. kèo bóng đá cúp c2 tương ứngDeserialfunccũng được yêu cầu.

Deserialfunc

Deserialize trạng thái tổng kèo bóng đá cúp c2 được nối tiếp trước đó trở lạistate_data_type. Chức năng này phải lấy hai đối số của kèo bóng đá cúp c2 loạibyteaNội bộ, và tạo ra kết quả của loạiNội bộ. (Lưu ý: thứ hai,Nội bộĐối số không được sử dụng, nhưng được yêu cầu vì lý do an toàn loại.)

init_condition

Cài đặt ban đầu cho giá trị trạng thái. Đây phải là kèo bóng đá cúp c2 hằng số chuỗi trong biểu mẫu được chấp nhận cho kiểu dữ liệustate_data_type. Nếu không được chỉ định, giá trị trạng thái bắt đầu null.

MSFUNC

Tên của hàm chuyển đổi trạng thái chuyển tiếp được gọi cho mỗi hàng đầu vào trong chế độ tổng kèo bóng đá cúp c2 chuyển động. Điều này giống hệt như chức năng chuyển đổi thông thường, ngoại trừ đối số và kết quả đầu tiên của nó là loạiMSTATE_DATA_TYPE, có thể khác vớistate_data_type.

minvfunc

Tên của hàm chuyển đổi trạng thái nghịch đảo sẽ được sử dụng trong chế độ tổng kèo bóng đá cúp c2 chuyển động. Chức năng này có cùng một đối số và loại kết quả nhưMSFUNC, nhưng nó được sử dụng để loại bỏ giá trị khỏi trạng thái tổng kèo bóng đá cúp c2 hiện tại, thay vì thêm một giá trị vào nó. Hàm chuyển đổi nghịch đảo phải có thuộc tính độ nghiêm ngặt giống như hàm chuyển đổi trạng thái chuyển tiếp.

MSTATE_DATA_TYPE

Kiểu dữ liệu cho giá trị trạng thái của tổng kèo bóng đá cúp c2, khi sử dụng chế độ tổng kèo bóng đá cúp c2 di chuyển.

mstate_data_size

Kích thước trung bình gần đúng (tính bằng byte) của giá trị trạng thái của tổng kèo bóng đá cúp c2, khi sử dụng chế độ tổng kèo bóng đá cúp c2 di chuyển. Điều này hoạt động giống nhưstate_data_size.

MFFUNC

Tên của hàm cuối cùng được gọi để tính toán kết quả của tổng kèo bóng đá cúp c2 sau khi tất cả các hàng đầu vào đã được chuyển qua, khi sử dụng chế độ tổng kèo bóng đá cúp c2 di chuyển. Điều này hoạt động giống nhưffunc, ngoại trừ loại đối số đầu tiên của nó làMSTATE_DATA_TYPEvà kèo bóng đá cúp c2 đối số giả bổ sung được chỉ định bằng cách viếtmfinalfunc_extra. Loại kết quả tổng kèo bóng đá cúp c2 được xác định bởiMFFUNChoặcMSTATE_DATA_TYPEphải khớp với xác định bằng cách thực hiện chính quy của tổng kèo bóng đá cúp c2.

mfinalfunc_modify=read_only | có thể chia sẻ | read_write

Tùy chọn này giống nhưFinalFunc_Modify, nhưng nó mô tả hành vi của hàm cuối cùng chuyển động.

minitial_condition

Cài đặt ban đầu cho giá trị trạng thái, khi sử dụng chế độ tổng kèo bóng đá cúp c2 chuyển động. Điều này hoạt động giống nhưinit_condition.

sort_operator

toán tử sắp xếp liên quan cho Amin- hoặcmaxTổng kèo bóng đá cúp c2 giống như. Đây chỉ là một tên toán tử (có thể là trình độ học vấn). Toán tử được giả sử có cùng loại dữ liệu đầu vào như tổng kèo bóng đá cúp c2 (phải là một tổng kèo bóng đá cúp c2 bình thường đối số đơn lẻ).

song song =an toàn | bị hạn chế | không an toàn

Ý nghĩa củaAn toàn song song, Hạn chế song songsong song không an toàngiống như trongPostgreSQL: Tài. Một tổng kèo bóng đá cúp c2 sẽ không được xem xét để song song hóa nếu nó được đánh dấusong song không an toàn(đó là mặc định!) HoặcHạn chế song song. Lưu ý rằng các dấu hiệu an toàn song song của các chức năng hỗ trợ của tổng kèo bóng đá cúp c2 không được tư vấn bởi người lập kế hoạch, chỉ có sự đánh dấu của chính tổng kèo bóng đá cúp c2.

Giả thuyết

Đối với các tập kèo bóng đá cúp c2 được đặt hàng, cờ này chỉ định rằng các đối số tổng kèo bóng đá cúp c2 sẽ được xử lý theo các yêu cầu đối với các tập kèo bóng đá cúp c2 giả thuyết: đó là một vài đối số trực tiếp cuối cùng phải khớp với các loại dữ liệu của tổng kèo bóng đá cúp c2 (trong nhóm) Đối số. TheGiả thuyết38978_39114

kèo bóng đá cúp c2 tham số củaTạo tổng kèo bóng đá cúp c2có thể được viết theo bất kỳ thứ tự nào, không chỉ thứ tự được minh họa ở trên.

Ghi chú

Trong kèo bóng đá cúp c2 tham số chỉ định tên chức năng hỗ trợ, bạn có thể viết tên lược đồ nếu cần, ví dụsfunc = public.sum. Tuy nhiên, không ghi kèo bóng đá cúp c2 loại đối số ở đó - kèo bóng đá cúp c2 loại đối số của kèo bóng đá cúp c2 hàm hỗ trợ được xác định từ kèo bóng đá cúp c2 tham số khác.

Thông thường, các hàm PostgreSQL dự kiến ​​là các hàm thực sự không sửa đổi giá trị đầu vào của chúng. Tuy nhiên, hàm chuyển đổi tổng kèo bóng đá cúp c2,Khi được sử dụng trong bối cảnh tổng kèo bóng đá cúp c2, được phép gian lận và sửa đổi đối số trạng thái chuyển tiếp của nó tại chỗ. Điều này có thể mang lại lợi ích hiệu suất đáng kể so với việc tạo kèo bóng đá cúp c2 bản sao mới của trạng thái chuyển tiếp mỗi lần.

Tương tự như vậy, trong khi hàm cuối cùng thường được dự kiến ​​sẽ không sửa đổi kèo bóng đá cúp c2 giá trị đầu vào của nó, đôi khi thật không thực tế khi tránh sửa đổi đối số trạng thái chuyển tiếp. Hành vi đó phải được khai báo bằng cách sử dụngFinalFunc_ModifyTham số. Theread_writeGiá trị chỉ ra rằng hàm cuối cùng sửa đổi trạng thái chuyển tiếp theo các cách không xác định. Giá trị này ngăn chặn việc sử dụng tổng kèo bóng đá cúp c2 như một hàm cửa sổ và nó cũng ngăn chặn sự kèo bóng đá cúp c2 nhất của các trạng thái chuyển tiếp cho các cuộc gọi tổng kèo bóng đá cúp c2 có chung các giá trị đầu vào và các hàm chuyển tiếp. Thecó thể chia sẻGiá trị chỉ ra rằng hàm chuyển tiếp không thể được áp dụng sau hàm cuối cùng, nhưng nhiều cuộc gọi chức năng cuối cùng có thể được thực hiện trên giá trị trạng thái chuyển tiếp kết thúc. Giá trị này ngăn chặn việc sử dụng tổng kèo bóng đá cúp c2 như một hàm cửa sổ, nhưng nó cho phép kèo bóng đá cúp c2 nhất trạng thái chuyển tiếp. .read_write.)

Nếu một tổng kèo bóng đá cúp c2 hỗ trợ chế độ tổng kèo bóng đá cúp c2 di chuyển, nó sẽ cải thiện hiệu quả tính toán khi tổng kèo bóng đá cúp c2 được sử dụng làm hàm cửa sổ cho cửa sổ có khung di chuyển khởi động (nghĩa là chế độ khởi động khung khác ngoàiKhông giới hạn trước). Về mặt khái niệm, hàm chuyển tiếp chuyển tiếp thêm các giá trị đầu vào vào trạng thái của tổng kèo bóng đá cúp c2 khi chúng vào khung cửa sổ từ phía dưới và chức năng chuyển đổi nghịch đảo sẽ loại bỏ chúng một lần nữa khi chúng rời khỏi khung ở trên cùng. Vì vậy, khi các giá trị được loại bỏ, chúng luôn bị xóa theo cùng một thứ tự, chúng đã được thêm vào. Bất cứ khi nào hàm chuyển đổi nghịch đảo được gọi, do đó, nó sẽ nhận được (các) giá trị đối số được thêm sớm nhất nhưng chưa bị xóa. Hàm chuyển đổi nghịch đảo có thể cho rằng ít nhất một hàng sẽ vẫn ở trạng thái hiện tại sau khi nó loại bỏ hàng cũ nhất. .

Hàm chuyển tiếp chuyển tiếp cho chế độ tổng kèo bóng đá cúp c2 di chuyển không được phép trả về null làm giá trị trạng thái mới. Nếu hàm chuyển đổi nghịch đảo trả về NULL, thì đây được coi là một dấu hiệu cho thấy hàm nghịch đảo không thể đảo ngược tính toán trạng thái cho đầu vào cụ thể này và do đó, tính toán tổng kèo bóng đá cúp c2 sẽ được làm lại từ đầu cho vị trí bắt đầu khung hiện tại. Công ước này cho phép sử dụng chế độ tổng kèo bóng đá cúp c2 di chuyển trong các tình huống trong đó có một số trường kèo bóng đá cúp c2 không thường xuyên không thực tế để đảo ngược giá trị trạng thái đang chạy.

Nếu không có triển khai tổng kèo bóng đá cúp c2 di chuyển được cung cấp, tổng kèo bóng đá cúp c2 vẫn có thể được sử dụng với các khung di chuyển, nhưngPostgreSQLsẽ tính toán lại toàn bộ tập kèo bóng đá cúp c2 bất cứ khi nào bắt đầu khung hình di chuyển. Lưu ý rằng liệu tổng kèo bóng đá cúp c2 có hỗ trợ chế độ tổng kèo bóng đá cúp c2 chuyển động hay không,PostgreSQLCó thể xử lý một khung khung di chuyển mà không cần tính toán lại; Điều này được thực hiện bằng cách tiếp tục thêm các giá trị mới vào trạng thái tổng kèo bóng đá cúp c2. Đây là lý do tại sao việc sử dụng một tổng kèo bóng đá cúp c2 làm hàm cửa sổ yêu cầu hàm cuối cùng chỉ được đọc: nó không được làm hỏng giá trị trạng thái của tổng kèo bóng đá cúp c2, để tổng kèo bóng đá cúp c2 có thể được tiếp tục ngay cả sau khi thu được giá trị kết quả tổng kèo bóng đá cúp c2 cho một bộ ranh giới khung.

Cú pháp cho các tập kèo bóng đá cúp c2 được đặt hàng cho phépVariadicĐể được chỉ định cho cả tham số trực tiếp cuối cùng và tổng kèo bóng đá cúp c2 cuối cùng (trong nhóm) tham số. Tuy nhiên, việc triển khai hiện tại hạn chế việc sử dụngVariadictheo hai cách. Đầu tiên, các tập kèo bóng đá cúp c2 được đặt hàng đã chỉ có thể sử dụngVariadic "Any", không phải kèo bóng đá cúp c2 loại mảng variadic khác. Thứ hai, nếu tham số trực tiếp cuối cùng làVariadic "Any", thì chỉ có thể có một tham số tổng kèo bóng đá cúp c2 và nó cũng phải làVariadic "Any". (Trong biểu diễn được sử dụng trong các danh mục hệ thống, hai tham số này được kèo bóng đá cúp c2 nhất thành mộtVariadic "Any"Mục, kể từPG_PROCKhông thể biểu diễn kèo bóng đá cúp c2 chức năng với nhiều hơn mộtVariadicTham số.) Nếu tổng kèo bóng đá cúp c2 là một cốt liệu giả thuyết, các đối số trực tiếp khớp vớiVariadic "Any"tham số là những giả thuyết; Bất kỳ tham số nào trước đại diện cho các đối số trực tiếp bổ sung không bị hạn chế để khớp với các đối số tổng kèo bóng đá cúp c2.

Hiện tại, các tập kèo bóng đá cúp c2 được đặt hàng không cần hỗ trợ chế độ tổng kèo bóng đá cúp c2 di chuyển, vì chúng không thể được sử dụng làm chức năng cửa sổ.

Tập kèo bóng đá cúp c2 một phần (bao gồm cả song song) hiện không được hỗ trợ cho các tập kèo bóng đá cúp c2 đặt hàng. Ngoài ra, nó sẽ không bao giờ được sử dụng cho các cuộc gọi tổng kèo bóng đá cúp c2 bao gồmkhác biệthoặcĐặt hàng bởimệnh đề, vì những ngữ nghĩa đó không thể được hỗ trợ trong quá trình tổng kèo bóng đá cúp c2 một phần.

Ví dụ

xemPhần 36.12.

Tương thích

Tạo tổng kèo bóng đá cúp c2là kèo bóng đá cúp c2PostgreSQLMở rộng ngôn ngữ. Tiêu chuẩn SQL không cung cấp cho các chức năng tổng kèo bóng đá cúp c2 do người dùng xác định.

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ớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.