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 kèo bóng đá c1 phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

35.11. kèo bóng đá c1

Như được mô tả trongPhần, PostgreSQLcó thểSQLNgôn ngữ. Tạo a

kèo bóng đá c1 ví dụ trong phần này có thể được tìm thấy trongComplex.sqlphức tạp.ctrongsrc/hướng dẫnThư mục củareadmeTệp

Một loại do kèo bóng đá c1 phải luôn có các chức năng đầu vào và đầu ra.

Giả sử chúng ta muốn kèo bóng đá c1 một loạiphức tạpđại diện cho kèo bóng đá c1 số phức. Một cách tự nhiên để đại diện cho một

Typedef Struct Complex

Chúng ta sẽ cần biến điều này thành kèo bóng đá c1 tài liệu vượt qua, vì nóDatumGiá trị.

Là biểu diễn chuỗi bên ngoài của kèo bóng đá c1, chúng tôi chọn một(x, y).

kèo bóng đá c1 chức năng đầu vào và đầu ra thường không khó để viết,

pg_function_info_v1 (Complex_in);

Hàm đầu ra có thể chỉ là:

pg_function_info_v1 (Complex_out);

Bạn nên cẩn thận để thực hiện kèo bóng đá c1 chức năng đầu vào và đầu ra

Tùy chọn, loại do kèo bóng đá c1 có thể cung cấp đầu vào nhị phân vàphức tạp, chúng tôi sẽfloat8:

pg_function_info_v1 (Complex_Recv);

Một khi chúng tôi đã viết kèo bóng đá c1 hàm I/O và biên dịch chúng thành mộtphức tạpkèo bóng đá c1 trong SQL. Đầu tiên chúng tôi khai báo nó là kèo bóng đá c1 shell:

Tạo kèo bóng đá c1 phức tạp;

Điều này đóng vai trò là kèo bóng đá c1 giữ chỗ cho phép chúng tôi tham khảo

Tạo chức năng Complex_in (cString)FileName'FileName'FileName'FileName'

Cuối cùng, chúng tôi có thể cung cấp định nghĩa đầy đủ về dữ liệu

Tạo kèo bóng đá c1 phức tạp (

Khi bạn kèo bóng đá c1 loại cơ sở mới,PostgreSQLtự động cung cấp hỗ trợ cho_) Chuẩn bị.

Một khi kèo bóng đá c1 dữ liệu tồn tại, chúng ta có thể khai báo các chức năng bổ sung

Nếu kèo bóng đá c1 giá trị của kiểu dữ liệu của bạn khác nhau về kích thước (ở dạng bên trong),bánh mì nướng-able (xemPhần 58.2). Bạn nên làm điều này ngay cả khibánh mì nướngCan

Để làm điều này, biểu diễn nội bộ phải tuân theo tiêu chuẩnChar [4]Trường không bao giờ được truy cậpVL_LEN_).set_varsize ()để lưu trữvarsize ()Để lấy nó. kèo bóng đá c1 chức năng Cpg_detoast_datum. (Chi tiết này thông thườngGetArg_Datatype_Pmacros.) Sau đó, khi chạyTạo kèo bóng đá c1lệnh, chỉ định nội bộbiếnvà chọn

Nếu căn chỉnh là không quan trọng (chỉ dành cho một cụ thể​​pg_detoast_datum. Bạn có thể sử dụngpg_detoast_datum_packedThay vào đó (thông thườngGetArg_Datatype_ppMacro) và sử dụng macroVarsize_any_exhdrVardata_anyĐể truy cập một mốc dữ liệu có khả năng đóng gói.pg_detoast_datumgiao diện.

Lưu ý:Mã cũ thường xuyên tuyên bốVL_LEN_như mộtint32TrườngChar [4]. Điều này ổn miễn làINT32Căn chỉnh. Nhưng thật nguy hiểm khi sử dụng một

Để biết thêm chi tiết, hãy xem mô tả củaTạo kèo bóng đá c1lệnh.