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

37.11. Các tỷ lệ kèo bóng đá trực tuyến hôm nay do người dùng xác định

như được mô tả trongPhần 37.2, PostgreSQLcó thể được mở rộng để hỗ trợ các tỷ lệ kèo bóng đá trực tuyến hôm nay dữ liệu mới. Phần này mô tả cách xác định các tỷ lệ kèo bóng đá trực tuyến hôm nay cơ sở mới, là các tỷ lệ kèo bóng đá trực tuyến hôm nay dữ liệu được xác định dưới mức củaSQLNgôn ngữ. Tạo một tỷ lệ kèo bóng đá trực tuyến hôm nay cơ sở mới yêu cầu thực hiện các chức năng để hoạt động trên tỷ lệ kèo bóng đá trực tuyến hôm nay bằng ngôn ngữ cấp thấp, thường là C.

tỷ lệ kèo bóng đá trực tuyến hôm nay ví dụ trong phần này có thể được tìm thấy trongphức tạp.sqlphức tạp.ctrongSRC/Hướng dẫnThư mục phân phối nguồn. XemreadmeTệp trong thư mục đó cho tỷ lệ kèo bóng đá trực tuyến hôm nay hướng dẫn về chạy tỷ lệ kèo bóng đá trực tuyến hôm nay ví dụ.

Một tỷ lệ kèo bóng đá trực tuyến hôm nay do người dùng xác định phải luôn có các chức năng đầu vào và đầu ra. Các chức năng này xác định cách tỷ lệ kèo bóng đá trực tuyến hôm nay xuất hiện trong chuỗi (cho đầu vào của người dùng và đầu ra cho người dùng) và cách sắp xếp tỷ lệ kèo bóng đá trực tuyến hôm nay trong bộ nhớ.

Giả sử chúng ta muốn xác định một tỷ lệ kèo bóng đá trực tuyến hôm nayphức tạpđại diện cho tỷ lệ kèo bóng đá trực tuyến hôm nay số phức. Một cách tự nhiên để biểu diễn một số phức trong bộ nhớ sẽ là cấu trúc C sau:

Typedef Struct Complex

Chúng ta sẽ cần phải biến tỷ lệ kèo bóng đá trực tuyến hôm nay này thành một tỷ lệ kèo bóng đá trực tuyến hôm nay tham chiếu quaDatumgiá trị.

Là biểu diễn chuỗi bên ngoài của tỷ lệ kèo bóng đá trực tuyến hôm nay, chúng tôi chọn một chuỗi của biểu mẫu(x, y).

Các hàm đầu vào và đầu ra thường không khó để viết, đặc biệt là hàm đầu ra. Nhưng khi xác định biểu diễn chuỗi bên ngoài của tỷ lệ kèo bóng đá trực tuyến hôm nay, hãy nhớ rằng cuối cùng bạn phải viết trình phân tích cú pháp hoàn chỉnh và mạnh mẽ cho biểu diễn đó làm chức năng đầu vào của bạn.

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 tỷ lệ kèo bóng đá trực tuyến hôm nay hàm đầu vào và đầu ra nghịch đảo của nhau. Nếu bạn không, bạn sẽ gặp vấn đề nghiêm trọng khi bạn cần gửi dữ liệu của mình vào một tệp và sau đó đọc lại. Đây là một vấn đề đặc biệt phổ biến khi có liên quan đến số điểm nổi.

Tùy chọn, một tỷ lệ kèo bóng đá trực tuyến hôm nay do người dùng xác định có thể cung cấp các thói quen đầu vào và đầu ra nhị phân. I/O nhị phân thường nhanh hơn nhưng ít di động hơn I/O văn bản.phức tạp, chúng tôi sẽ cõng trên các bộ chuyển đổi I/O nhị phân cho tỷ lệ kèo bóng đá trực tuyến hôm nayfloat8:

pg_function_info_v1 (Complex_Recv);

Một khi chúng tôi đã viết các hàm I/O và biên dịch chúng thành một thư viện dùng chung, chúng tôi có thể tỷ lệ kèo bóng đá trực tuyến hôm nayphức tạptỷ lệ kèo bóng đá trực tuyến hôm nay trong SQL. Đầu tiên chúng tôi khai báo nó là tỷ lệ kèo bóng đá trực tuyến hôm nay shell:

Tạo tỷ lệ kèo bóng đá trực tuyến hôm nay phức tạp;

Điều này đóng vai trò là người giữ chỗ cho phép chúng tôi tham chiếu tỷ lệ kèo bóng đá trực tuyến hôm nay trong khi xác định các chức năng I/O của nó. Bây giờ chúng ta có thể xác định các chức năng I/O:

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

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

Tạo tỷ lệ kèo bóng đá trực tuyến hôm nay phức tạp (

Khi bạn xác định tỷ lệ kèo bóng đá trực tuyến hôm nay cơ sở mới,PostgreSQLTự động cung cấp hỗ trợ cho các mảng thuộc tỷ lệ kèo bóng đá trực tuyến hôm nay đó. tỷ lệ kèo bóng đá trực tuyến hôm nay mảng thường có cùng tên với tỷ lệ kèo bóng đá trực tuyến hôm nay cơ sở với ký tự dấu gạch dưới (_) Chuẩn bị.

Một khi tỷ lệ kèo bóng đá trực tuyến hôm nay dữ liệu tồn tại, chúng ta có thể khai báo các chức năng bổ sung để cung cấp các hoạt động hữu ích trên kiểu dữ liệu. Các toán tử sau đó có thể được xác định trên đỉnh các chức năng và nếu cần, các lớp toán tử có thể được tạo để hỗ trợ lập chỉ mục của kiểu dữ liệu.

17878_18065Char [4]Trường không bao giờ được truy cập trực tiếp (được đặt tên thông thườngVL_LEN_). Bạn phải sử dụngset_varsize ()Macro để lưu trữ tổng kích thước của mốc dữ liệu (bao gồm cả trường độ dài) trong trường này vàvarsize ()Để lấy nó. (tỷ lệ kèo bóng đá trực tuyến hôm nay macro này tồn tại vì trường Độ dài có thể được mã hóa tùy thuộc vào nền tảng.)

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

37.11.1. Cân nhắc về bánh mì nướng

Nếu tỷ lệ kèo bóng đá trực tuyến hôm nay 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), thì thường mong muốn tạo kiểu dữ liệuPostgresql: Tài-able (xemPhần 67.2). Bạn nên làm điều này ngay cả khi tỷ lệ kèo bóng đá trực tuyến hôm nay giá trị luôn quá nhỏ để được nén hoặc lưu trữ bên ngoài, vìbánh mì nướngcũng có thể lưu không gian trên dữ liệu nhỏ, bằng cách giảm chi phí tiêu đề.

Để hỗ trợbánh mì nướngLưu trữ, tỷ lệ kèo bóng đá trực tuyến hôm nay hàm C hoạt động trên kiểu dữ liệu phải luôn cẩn thận để giải nén bất kỳ giá trị nướng nào mà chúng được trao bằng cách sử dụngpg_detoast_datum. (Chi tiết này được ẩn theo thông thường bằng cách xác định tỷ lệ kèo bóng đá trực tuyến hôm nay cụ thểGetArg_Datatype_Pmacros.) Sau đó, khi chạyTạo tỷ lệ kèo bóng đá trực tuyến hôm naylệnh, chỉ định độ dài bên trong làbiếnvà chọn một số tùy chọn lưu trữ phù hợp kháctrơn.

Nếu căn chỉnh dữ liệu là không quan trọng (chỉ cho một hàm cụ thể hoặc vì kiểu dữ liệu chỉ định căn chỉnh byte) thì có thể tránh được một số chi phí củapg_detoast_datum. Bạn có thể sử dụngpg_detoast_datum_packedThay vào đó (theo thông thường được ẩn bằng cách tỷ lệ kèo bóng đá trực tuyến hôm nayGetArg_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. Một lần nữa, dữ liệu được trả về bởi tỷ lệ kèo bóng đá trực tuyến hôm nay macro này không được căn chỉnh ngay cả khi định nghĩa kiểu dữ liệu chỉ định căn chỉnh.pg_detoast_datumgiao diện.

Lưu ý

Mã cũ thường xuyên khai báoVL_LEN_như mộtINT32trường thay vìChar [4]. Điều này ổn miễn là định nghĩa cấu trúc có tỷ lệ kèo bóng đá trực tuyến hôm nay trường khác có ít nhấtINT32Căn chỉnh. Nhưng thật nguy hiểm khi sử dụng một định nghĩa cấu trúc như vậy khi làm việc với một mốc dữ liệu có khả năng không được sắp xếp;

Một tính năng khác được kích hoạt bởibánh mì nướngHỗ trợ là khả năng cóMở rộngBiểu diễn dữ liệu trong bộ nhớ thuận tiện hơn để làm việc với định dạng được lưu trữ trên đĩa. Thông thường hoặcFlatHồiĐịnh dạng lưu trữ Varlena cuối cùng chỉ là một đốm byte; Ví dụ, nó không thể chứa con trỏ, vì nó có thể được sao chép vào tỷ lệ kèo bóng đá trực tuyến hôm nay vị trí khác trong bộ nhớ.PostgreSQLCung cấp một cách đểMở rộngĐịnh dạng phẳng thành một biểu diễn phù hợp hơn với tính toán và sau đó chuyển định dạng đó trong bộ nhớ giữa tỷ lệ kèo bóng đá trực tuyến hôm nay hàm của kiểu dữ liệu.

Để sử dụng lưu trữ mở rộng, kiểu dữ liệu phải tỷ lệ kèo bóng đá trực tuyến hôm nay định dạng mở rộng tuân theo các quy tắc được đưa ra trongSRC/bao gồm/Utils/ExpandedDatum.h, và cung cấp tỷ lệ kèo bóng đá trực tuyến hôm nay chức năng choMở rộngHồiGiá trị varlena phẳng thành định dạng mở rộng vàHồiFlattenĐịnh dạng mở rộng trở lại biểu diễn Varlena thông thường. Sau đó đảm bảo rằng tất cả tỷ lệ kèo bóng đá trực tuyến hôm nay chức năng C cho kiểu dữ liệu có thể chấp nhận biểu diễn, có thể bằng cách chuyển đổi một chức năng khác ngay khi nhận được.pg_detoast_datumMacro được tỷ lệ kèo bóng đá trực tuyến hôm nay để chuyển đổi đầu vào mở rộng thành định dạng phẳng thông thường. Do đó, các chức năng hiện có hoạt động với định dạng Varlena phẳng sẽ tiếp tục hoạt động, mặc dù hơi kém hiệu quả, với các đầu vào mở rộng;

23212_24166VARATT_IS_EXPANDS_HEADER ()Macro để tỷ lệ kèo bóng đá trực tuyến hôm nay định dạng nào họ nhận được.

Thebánh mì nướngCơ sở hạ tầng không chỉ cho phép tỷ lệ kèo bóng đá trực tuyến hôm nay giá trị varlena thông thường được phân biệt với tỷ lệ kèo bóng đá trực tuyến hôm nay giá trị mở rộng, mà còn phân biệt​​Read-WriteVoiMạnhChỉ đọcCon trỏ đến các giá trị mở rộng. C Các chức năng chỉ cần kiểm tra giá trị mở rộng hoặc sẽ chỉ thay đổi nó theo những cách an toàn và không có thể xem xét, không cần quan tâm đến tỷ lệ kèo bóng đá trực tuyến hôm nay con trỏ nào họ nhận được.

Để biết tỷ lệ kèo bóng đá trực tuyến hôm nay ví dụ về làm việc với tỷ lệ kèo bóng đá trực tuyến hôm nay giá trị mở rộng, hãy xem Cơ sở hạ tầng mảng tiêu chuẩn, đặc biệt25469_25509.