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

Tạo kèo bóng đá c1

Tạo kèo bóng đá c1 - Xác định kèo bóng đá c1 dữ liệu mới

Synopsis

Tạo kèo bóng đá c1tênnhưAttribution_Name data_type[đối chiếuđối chiếu] [, ...]]))tênnhư enumnhãn' [, ...]])têndưới dạng phạm vi (Subtype[, SubType_opClass =SubType_Operator_Class]đối chiếu]Canonical_Function]]Multirange_type_name]tên(input_function,,output_function[, nhận =recean_function]send_function]type_modifier_input_function]type_modifier_output_function]Phân tích_Function]Subscript_Function]InternalLights| Biến]Căn chỉnh]lưu trữ]like_type]thể kèo bóng đá c1]ưu tiên]Mặc định]Element]Delimiter]có thể ghép]tên

Mô tả

Tạo kèo bóng đá c1Đăng ký một kiểu dữ liệu mới để sử dụng trong cơ sở dữ liệu hiện tại. Người dùng xác định một kèo bóng đá c1 trở thành chủ sở hữu của nó.

Nếu một tên lược đồ được đưa ra thì kèo bóng đá c1 được tạo trong lược đồ được chỉ định. Nếu không, nó được tạo ra trong lược đồ hiện tại.

Có năm hình thứcTạo kèo bóng đá c1, như thể hiện trong bản tóm tắt cú pháp ở trên. Họ tương ứng kèo bóng đá c1 mộtkèo bóng đá c1 tổng hợp, anenum kèo bóng đá c1, Akèo bóng đá c1 phạm vi, Akèo bóng đá c1 cơ sởhoặc Akèo bóng đá c1 shell. Bốn người đầu tiên trong số này được thảo luận lần lượt bên dưới.Tạo kèo bóng đá c1Không có tham số ngoại trừ tên kèo bóng đá c1. Các kèo bóng đá c1 shell là cần thiết như là tham chiếu chuyển tiếp khi tạo các kèo bóng đá c1 phạm vi và kèo bóng đá c1 cơ sở, như đã thảo luận trong các phần đó.

Các kèo bóng đá c1 tổng hợp

Hình thức đầu tiên củaTạo kèo bóng đá c1Tạo một kèo bóng đá c1 tổng hợp. kèo bóng đá c1 tổng hợp được chỉ định bởi một danh sách các tên thuộc tính và kèo bóng đá c1 dữ liệu.Tạo kèo bóng đá c1Tránh sự cần thiết phải tạo một bảng thực tế khi tất cả những gì mong muốn là xác định một kèo bóng đá c1. Một kèo bóng đá c1 tổng hợp độc lập là hữu ích, ví dụ, là đối số hoặc kèo bóng đá c1 trả về của một hàm.

Để có thể tạo một kèo bóng đá c1 tổng hợp, bạn phải cósử dụngĐặc quyền trên tất cả các kèo bóng đá c1 thuộc tính.

Các kèo bóng đá c1 được liệt kê

Mẫu thứ hai củaTạo kèo bóng đá c1Tạo kèo bóng đá c1 được liệt kê (enum), như được mô tả trongPhần 8.7. Các kèo bóng đá c1 enum lấy một danh sách các nhãn được trích dẫn, mỗi kèo bóng đá c1 phải nhỏ hơnĐược đặt tênByte dài (64 byte trong một tiêu chuẩnPostgreSQLBuild). .thay đổi kèo bóng đá c1.)

Các kèo bóng đá c1 phạm vi

Mẫu thứ ba củaTạo kèo bóng đá c1Tạo một kèo bóng đá c1 phạm vi mới, như được mô tả trongPhần 8.17.

kèo bóng đá c1 phạm viSubTypecó thể là bất kỳ kèo bóng đá c1 nào với lớp toán tử B-cây liên quan (để xác định thứ tự các giá trị cho kèo bóng đá c1 phạm vi). Thông thường, lớp toán tử B-cây mặc định của phân nhóm được sử dụng để xác định thứ tự;SubType_opClass. Nếu phân nhóm có thể va chạm và bạn muốn sử dụng đối chiếu không mặc định trong thứ tự của phạm vi, hãy chỉ định đối chiếu mong muốn vớiđối chiếuTùy chọn.

Tùy chọnCanonicalHàm phải lấy một đối số của kèo bóng đá c1 phạm vi được xác định và trả về giá trị của cùng kèo bóng đá c1. Điều này được sử dụng để chuyển đổi các giá trị phạm vi thành dạng kinh điển, khi áp dụng.Phần 8.17.8Để biết thêm thông tin. kèo bóng đá c1 ACanonicalHàm là một chút khó khăn, vì nó phải được xác định trước khi kèo bóng đá c1 phạm vi có thể được khai báo. Để làm điều này, trước tiên bạn phải tạo một kèo bóng đá c1 shell, đây là kèo bóng đá c1 trình giữ chỗ không có thuộc tính ngoại trừ tên và chủ sở hữu.Tạo kèo bóng đá c1tên, không có tham số bổ sung. Sau đó, hàm có thể được khai báo bằng cách sử dụng kèo bóng đá c1 shell làm đối số và kết quả, và cuối cùng kèo bóng đá c1 phạm vi có thể được khai báo bằng cùng tên.

Tùy chọnSubType_DiffHàm phải lấy hai giá trị củaSubtypegõ làm đối số và trả về ADouble PrecisionGiá trị biểu thị sự khác biệt giữa hai giá trị đã cho. Mặc dù điều này là tùy chọn, cung cấp nó cho phép hiệu quả lớn hơn của các chỉ mục GIST trên các cột thuộc kèo bóng đá c1 phạm vi.Phần 8.17.8Để biết thêm thông tin.

Tùy chọnMultirange_type_nameTham số Chỉ định tên của kèo bóng đá c1 đa kèo bóng đá c1 tương ứng. Nếu không được chỉ định, tên này được chọn tự động như sau.phạm vi, thì tên kèo bóng đá c1 đa dạng được hình thành bằng cách thay thếphạm viMultirangeTrong tên kèo bóng đá c1 phạm vi. Nếu không, tên kèo bóng đá c1 đa tính được hình thành bằng cách nối thêm một_MultirangeHậu tố cho tên kèo bóng đá c1 phạm vi.

Các kèo bóng đá c1 cơ sở

Mẫu thứ tư củaTạo kèo bóng đá c1Tạo một kèo bóng đá c1 cơ sở mới (kèo bóng đá c1 vô hướng). Để tạo một kèo bóng đá c1 cơ sở mới, bạn phải là một siêu người dùng.

kèo bóng đá c1 tham số có thể xuất hiện theo bất kỳ thứ tự nào, không chỉ được minh họa ở trên, và hầu hết là tùy chọn. Bạn phải đăng ký hai hoặc nhiều chức năng (sử dụngkèo bóng đá c1 chức năng) trước khi xác định kèo bóng đá c1. Các chức năng hỗ trợinput_functionoutput_functionđược yêu cầu, trong khi kèo bóng đá c1 chức năngnhận_function, Send_Function, type_modifier_input_function, Type_Modifier_Output_Function, Phân tích_FunctionSubscript_Functionlà tùy chọn. Nói chung, kèo bóng đá c1 chức năng này phải được mã hóa bằng C hoặc ngôn ngữ cấp thấp khác.

Theinput_functionChuyển đổi biểu diễn văn bản bên ngoài của kèo bóng đá c1 thành biểu diễn bên trong được sử dụng bởi các toán tử và các hàm được xác định cho kèo bóng đá c1.output_functionThực hiện chuyển đổi ngược. Hàm đầu vào có thể được khai báo là lấy một đối số thuộc kèo bóng đá c1CSTRINGhoặc khi thực hiện ba đối số của các kèo bóng đá c1CSTRING, OID, Số nguyên. Đối số đầu tiên là văn bản đầu vào dưới dạng chuỗi C, đối số thứ hai là OID riêng của kèo bóng đá c1 (ngoại trừ các kèo bóng đá c1 mảng, thay vào đó nhận được OID kèo bóng đá c1 phần tử của chúng) và thứ ba làTYPMODcủa cột đích, nếu được biết (-1 sẽ được thông qua nếu không). Hàm đầu vào phải trả về giá trị của kèo bóng đá c1 dữ liệu.cString. kèo bóng đá c1 chức năng đầu ra không được gọi cho kèo bóng đá c1 giá trị null.

Tùy chọnnhận_functionChuyển đổi biểu diễn nhị phân bên ngoài của kèo bóng đá c1 thành đại diện bên trong. Nếu chức năng này không được cung cấp, kèo bóng đá c1 không thể tham gia vào đầu vào nhị phân.Nội bộhoặc khi thực hiện ba đối số của các kèo bóng đá c1Nội bộ, OID, Số nguyên. Đối số đầu tiên là một con trỏ tớiStringInfoBộ đệm giữ chuỗi byte nhận được; kèo bóng đá c1 đối số tùy chọn giống như đối với hàm đầu vào văn bản.Send_FunctionChuyển đổi từ biểu diễn bên trong thành biểu diễn nhị phân bên ngoài. Nếu chức năng này không được cung cấp, kèo bóng đá c1 không thể tham gia vào đầu ra nhị phân.bytea. Gửi kèo bóng đá c1 chức năng không được gọi cho kèo bóng đá c1 giá trị null.

Bạn nên tự hỏi làm thế nào các hàm đầu vào và đầu ra có thể được tuyên bố là có kết quả hoặc đối số của kèo bóng đá c1 mới, khi chúng phải được tạo trước khi kèo bóng đá c1 mới có thể được tạo. Câu trả lời là kèo bóng đá c1 trước tiên phải được định nghĩa làkèo bóng đá c1 shell, là kèo bóng đá c1 trình giữ chỗ không có thuộc tính ngoại trừ tên và chủ sở hữu. Điều này được thực hiện bằng cách ban hành lệnhTạo kèo bóng đá c1tên, không có tham số bổ sung. Sau đó, các hàm C I/O có thể được xác định tham chiếu kèo bóng đá c1 shell.Tạo kèo bóng đá c1Với định nghĩa đầy đủ thay thế cho mục nhập shell bằng định nghĩa kèo bóng đá c1 hoàn chỉnh, hợp lệ, sau đó kèo bóng đá c1 mới có thể được sử dụng bình thường.

Tùy chọntype_modifier_input_functiontype_modifier_output_functionlà cần thiết nếu kèo bóng đá c1 hỗ trợ các công cụ sửa đổi, đó là các ràng buộc tùy chọn được gắn vào khai báo kèo bóng đá c1, chẳng hạn nhưChar (5)hoặcSố (30,2). PostgreSQLCho phép các kèo bóng đá c1 do người dùng xác định lấy một hoặc nhiều hằng số hoặc định danh đơn giản làm trình sửa đổi. Tuy nhiên, thông tin này phải có khả năng được đóng gói vào một giá trị số nguyên không âm duy nhất để lưu trữ trong các danh mục hệ thống.type_modifier_input_functionđược thông qua Trình sửa đổi được khai báo dưới dạng AcStringMảng. Nó phải kiểm tra kèo bóng đá c1 giá trị cho tính hợp lệ (ném lỗi nếu chúng sai) và nếu chúng đúng, hãy trả lại một không tiêu cựcSố nguyênGiá trị sẽ được lưu trữ dưới dạng cộtTYPMODHồi. kèo bóng đá c1 sửa đổi sẽ bị từ chối nếu kèo bóng đá c1 không cótype_modifier_input_function. Thetype_modifier_output_functionChuyển đổi giá trị đánh máy số nguyên bên trong trở lại đúng biểu mẫu cho màn hình người dùng. Nó phải trả về mộtcStringGiá trị là chuỗi chính xác để nối với tên kèo bóng đá c1; Ví dụSốS chức năng có thể trả về(30,2). Nó được phép bỏ quatype_modifier_output_function, trong trường hợp đó, định dạng hiển thị mặc định chỉ là giá trị số nguyên typmod được lưu trữ được đặt trong ngoặc đơn.

Tùy chọnPhân tích_FunctionThực hiện bộ sưu tập thống kê cụ thể cho kèo bóng đá c1 cột của kiểu dữ liệu. Theo mặc định,Phân tíchSẽ cố gắng thu thập số liệu thống kê bằng cách sử dụng kèo bóng đá c1bằngHồiít hơnHồitoán tử, nếu có lớp toán tử B-cây mặc định cho kèo bóng đá c1. Đối với các kèo bóng đá c1 phi Scalar, hành vi này có thể không phù hợp, vì vậy nó có thể được ghi đè bằng cách chỉ định chức năng phân tích tùy chỉnh.Nội bộ, và trả lại ABooleanKết quả. API chi tiết cho kèo bóng đá c1 chức năng phân tích xuất hiện trongsrc/bao gồm/lệnh/chân không.h.

Tùy chọnSubscript_functionCho phép kèo bóng đá c1 dữ liệu được đăng ký trong các lệnh SQL. Chỉ định chức năng này không khiến kèo bóng đá c1 được coi làTRUEkèo bóng đá c1 mảng; Ví dụ: nó sẽ không phải là ứng cử viên cho kèo bóng đá c1 kết quả củamảng []Cấu trúc. Nhưng nếu đăng ký một giá trị của kèo bóng đá c1 là một ký hiệu tự nhiên để trích xuất dữ liệu từ nó, thì mộtSubscript_Functioncó thể được viết để xác định điều đó có nghĩa là gì. Hàm đăng ký phải được khai báo để lấy một đối số kèo bóng đá c1Nội bộ, và trả vềNội bộKết quả, là một con trỏ tới một cấu trúc kèo bóng đá c1 phương thức (chức năng) thực hiện đăng ký. API chi tiết cho kèo bóng đá c1 chức năng đăng ký xuất hiện trongsrc/bao gồm/nút/đăng ký.h. Nó cũng có thể hữu ích khi đọc triển khai mảng trongSRC/Backend/Utils/ADT/Arraysub.Choặc mã đơn giản hơn trongPREDT/HSTORE/HSTORE_SUBS.C. Thông tin bổ sung xuất hiện trongCác kèo bóng đá c1 mảngbên dưới.

28589_28826PostgreSQL. Đầu tiên trong số này làInternalLights. Các kèo bóng đá c1 dữ liệu cơ sở có thể được cố định độ dài, trong trường hợp đóInternalLightslà số nguyên dương hoặc độ dài thay đổi, được biểu thị bằng cách cài đặtInternalLightsđếnBiến. (Bên trong, điều này được biểu thị bằng cách cài đặtTyplenđến -1.) Biểu diễn bên trong của tất cả các kèo bóng đá c1 có độ dài thay đổi phải bắt đầu với số nguyên 4 byte cho tổng độ dài của giá trị này của kèo bóng đá c1. (Lưu ý rằng trường Độ dài thường được mã hóa, như được mô tả trongPhần 66.2; không khôn ngoan khi truy cập trực tiếp.)

Cờ tùy chọnpassedByValuechỉ ra rằng các giá trị của kèo bóng đá c1 dữ liệu này được truyền theo giá trị, thay vì tham chiếu. Các kèo bóng đá c1 được truyền theo giá trị phải có độ dài cố định và biểu diễn bên trong của chúng không thể lớn hơn kích thước củaDatumkèo bóng đá c1 (4 byte trên một số máy, 8 byte trên các máy khác).

TheCăn chỉnhTham số Chỉ định căn chỉnh lưu trữ cần thiết cho kiểu dữ liệu. kèo bóng đá c1 giá trị được phép tương đương với sự liên kết trên kèo bóng đá c1 ranh giới byte 1, 2, 4 hoặc 8.INT4Là thành phần đầu tiên của họ.

Thelưu trữTham số cho phép lựa chọn các chiến lược lưu trữ cho các kèo bóng đá c1 dữ liệu có độ dài thay đổi. (Chỉ mộttrơnđược phép cho các kèo bóng đá c1 có độ dài cố định.)trơnChỉ định rằng dữ liệu của kèo bóng đá c1 sẽ luôn được lưu trữ nội tuyến và không được nén.mở rộngChỉ định rằng hệ thống trước tiên sẽ cố gắng nén giá trị dữ liệu dài và sẽ di chuyển giá trị ra khỏi hàng bảng chính nếu nó vẫn còn quá dài.bên ngoàiCho phép giá trị được chuyển ra khỏi bảng chính, nhưng hệ thống sẽ không cố gắng nén nó.chínhCho phép nén, nhưng không khuyến khích di chuyển giá trị ra khỏi bảng chính. .mở rộngbên ngoàiMục.)

tất cảlưu trữGiá trị kháctrơnngụ ý rằng kèo bóng đá c1 hàm của kiểu dữ liệu có thể xử lý kèo bóng đá c1 giá trị đã đượcNướng, như được mô tả trongPhần 66.2Phần 36.13.1. Giá trị cụ thể khác được đưa ra chỉ xác định chiến lược lưu trữ bánh mì nướng mặc định cho các cột của một kèo bóng đá c1 dữ liệu có thể nướng;Thay đổi bộ lưu trữ.

Thelike_typeTham số cung cấp một phương thức thay thế để chỉ định các thuộc tính biểu diễn cơ bản của kiểu dữ liệu: Sao chép chúng từ một số kèo bóng đá c1 hiện có. Các giá trị củaInternalLights, passedByValue, Căn chỉnhlưu trữđược sao chép từ kèo bóng đá c1 được đặt tên. (Có thể, mặc dù thường không mong muốn, để ghi đè một số giá trị này bằng cách chỉ định chúng cùng vớinhưmệnh đề.) Chỉ định biểu diễn theo cách này đặc biệt hữu ích khi triển khai cấp thấp của kèo bóng đá c1 mớiPiggybacksTrên một kèo bóng đá c1 hiện có trong một số kiểu.

Thethể kèo bóng đá c1ưu tiênCác tham số có thể được sử dụng để giúp kiểm soát diễn viên ngầm sẽ được áp dụng trong các tình huống mơ hồ. Mỗi kèo bóng đá c1 dữ liệu thuộc về một danh mục được đặt tên bởi một ký tự ASCII và mỗi kèo bóng đá c1 làưu tiênhoặc không trong danh mục của nó. Trình phân tích cú pháp sẽ thích đúc theo các kèo bóng đá c1 ưa thích (nhưng chỉ từ các kèo bóng đá c1 khác trong cùng một danh mục) khi quy tắc này hữu ích trong việc giải quyết các chức năng hoặc toán tử quá tải.Chương 10. Đối với các kèo bóng đá c1 không có diễn viên ngầm đến hoặc từ bất kỳ kèo bóng đá c1 nào khác, nó là đủ để để các cài đặt này theo mặc định.Tổng quát nhấtCác kèo bóng đá c1 được ưa thích trong danh mục. Thethể kèo bóng đá c1Tham số đặc biệt hữu ích khi thêm kèo bóng đá c1 do người dùng xác định vào danh mục tích hợp hiện có, chẳng hạn như các kèo bóng đá c1 số hoặc chuỗi. Tuy nhiên, cũng có thể tạo các kèo bóng đá c1 kèo bóng đá c1 hoàn toàn mới được xác định.

Có thể chỉ định giá trị mặc định, trong trường hợp người dùng muốn kèo bóng đá c1 cột của kiểu dữ liệu mặc định là một cái gì đó khác với giá trị null. Chỉ định mặc định vớiMặc địnhTừ khóa. (Một mặc định như vậy có thể được ghi đè bởi một rõ ràngmặc địnhmệnh đề được gắn vào một cột cụ thể.)

Để chỉ ra rằng một kèo bóng đá c1 là kèo bóng đá c1 mảng có độ dài cố định, chỉ định kèo bóng đá c1 của các phần tử mảng bằng cách sử dụngElementTừ khóa. Ví dụ: để xác định một mảng số nguyên 4 byte (INT4), Chỉ địnhElement = int4. Để biết thêm chi tiết, xemCác kèo bóng đá c1 mảngbên dưới.

Để chỉ ra dấu phân cách được sử dụng giữa các giá trị trong biểu diễn bên ngoài của các mảng kèo bóng đá c1 này,Delimitercó thể được đặt thành một ký tự cụ thể. DELIMITER mặc định là dấu phẩy (,). Lưu ý rằng dấu phân cách được liên kết với kèo bóng đá c1 phần tử mảng, không phải kèo bóng đá c1 mảng.

Nếu tham số Boolean tùy chọncó thể ghéplà đúng, định nghĩa cột và các biểu thức của kèo bóng đá c1 có thể mang thông tin đối chiếu thông qua việc sử dụngđối chiếumệnh đề. Tùy thuộc vào việc triển khai các chức năng hoạt động trên kèo bóng đá c1 để thực sự sử dụng thông tin đối chiếu;

Các kèo bóng đá c1 mảng

Bất cứ khi nào một kèo bóng đá c1 do người dùng xác định,PostgreSQL36204_36380Được đặt tênByte dài. .mảng_inArray_out. Hơn nữa, kèo bóng đá c1 này là những gì hệ thống sử dụng cho các cấu trúc nhưmảng []qua kèo bóng đá c1 do người dùng xác định. kèo bóng đá c1 mảng theo dõi mọi thay đổi trong chủ sở hữu hoặc lược đồ của kèo bóng đá c1 thành phần của nó và bị kèo bóng đá c1 bỏ nếu kèo bóng đá c1 phần tử là.

Bạn có thể hỏi một cách hợp lý lý do tại sao cóElementTùy chọn, nếu hệ thống tự động thực hiện kèo bóng đá c1 mảng chính xác. Trường hợp chính mà nó hữu ích để sử dụngElementlà khi bạn đang tạo một kèo bóng đá c1 có độ dài cố định, đó là một mảng của một số điều giống hệt nhau và bạn muốn cho phép những thứ này được truy cập trực tiếp bằng cách đăng ký, ngoài bất kỳ hoạt động nào bạn có kế hoạch cung cấp cho toàn bộ kèo bóng đá c1. Ví dụ: gõđiểmđược biểu diễn dưới dạng hai số điểm nổi, có thể được truy cập bằng cách sử dụngđiểm [0]điểm [1]. Lưu ý rằng cơ sở này chỉ hoạt động cho các kèo bóng đá c1 có độ dài cố định có dạng bên trong chính xác là một chuỗi các trường có độ dài cố định giống hệt nhau.

Chỉ địnhĐăng kýTùy chọn cho phép kèo bóng đá c1 dữ liệu được đăng ký, mặc dù hệ thống không coi nó là kèo bóng đá c1 mảng. Hành vi vừa được mô tả cho các mảng có độ dài cố định thực sự được thực hiện bởiSCORSTIONChức năng HandlerRAW_ARRAY_SUBSCRIPT_HANDLER, được sử dụng tự động nếu bạn chỉ địnhElementĐối với kèo bóng đá c1 có độ dài cố định mà không viếtĐăng ký.

Khi chỉ định tùy chỉnhĐăng kýHàm, không cần thiết phải chỉ địnhElementtrừ khiSCORSTIONChức năng xử lý cần tham khảo ý kiếnTypelemĐể tìm hiểu những gì sẽ trở lại. Hãy biết rằng chỉ địnhElementkhiến hệ thống cho rằng kèo bóng đá c1 mới chứa hoặc bằng cách nào đó phụ thuộc vào vật lý vào kèo bóng đá c1 phần tử; Do đó, ví dụ như thay đổi thuộc tính của kèo bóng đá c1 phần tử sẽ không được phép nếu có bất kỳ cột nào thuộc kèo bóng đá c1 phụ thuộc.

tham số

tên

Tên (tùy chọn Lược đồ theo trình độ) của một kèo bóng đá c1 sẽ được tạo.

thuộc tính_name

Tên của một thuộc tính (cột) cho kèo bóng đá c1 tổng hợp.

data_type

Tên của một kèo bóng đá c1 dữ liệu hiện có để trở thành một cột của kèo bóng đá c1 tổng hợp.

đối chiếu

Tên của một đối chiếu hiện có được liên kết với một cột của một kèo bóng đá c1 tổng hợp hoặc với một kèo bóng đá c1 phạm vi.

nhãn

Một chuỗi theo nghĩa đen đại diện cho nhãn văn bản được liên kết với một giá trị của một kèo bóng đá c1 enum.

Subtype

Tên của kèo bóng đá c1 phần tử mà kèo bóng đá c1 phạm vi sẽ đại diện cho phạm vi của.

SubType_Operator_Class

Tên của lớp toán tử B-cây cho phân nhóm.

Canonical_Function

Tên của hàm Canonicalization cho kèo bóng đá c1 phạm vi.

Tên của hàm khác biệt cho phân nhóm.

Multirange_type_name

Tên của kèo bóng đá c1 đa kèo bóng đá c1 tương ứng.

input_function

Tên của hàm chuyển đổi dữ liệu từ dạng văn bản bên ngoài của kèo bóng đá c1 thành dạng bên trong của nó.

output_function

Tên của một hàm chuyển đổi dữ liệu từ dạng bên trong của kèo bóng đá c1 thành dạng văn bản bên ngoài của nó.

nhận_function

Tên của hàm chuyển đổi dữ liệu từ dạng nhị phân bên ngoài của kèo bóng đá c1 thành dạng bên trong của nó.

send_function

Tên của hàm chuyển đổi dữ liệu từ dạng bên trong của kèo bóng đá c1 thành dạng nhị phân bên ngoài của nó.

type_modifier_input_function

Tên của hàm chuyển đổi một mảng (các) công cụ sửa đổi cho kèo bóng đá c1 thành dạng nội bộ.

type_modifier_output_function

Tên của hàm chuyển đổi dạng bên trong của (các) công cụ sửa đổi của kèo bóng đá c1 thành dạng văn bản bên ngoài.

Phân tích_Function

Tên của hàm thực hiện phân tích thống kê cho kiểu dữ liệu.

Subscript_function

Tên của hàm xác định đăng ký giá trị của kiểu dữ liệu.

InternalLights

Một hằng số số chỉ định độ dài tính theo byte của biểu diễn nội bộ của kèo bóng đá c1 mới. Giả định mặc định là nó có độ dài thay đổi.

Căn chỉnh

Yêu cầu căn chỉnh lưu trữ của kiểu dữ liệu. Nếu được chỉ định, nó phải làchar, INT2, INT4hoặcDouble; Mặc định làINT4.

lưu trữ

Chiến lược lưu trữ cho kiểu dữ liệu. Nếu được chỉ định, phải làtrơn, bên ngoài, mở rộnghoặcchính; Mặc định làtrơn.

like_type

Tên của một kèo bóng đá c1 dữ liệu hiện có mà kèo bóng đá c1 mới sẽ có cùng một biểu diễn như. Các giá trị củaInternalLights, PassedByValue, Căn chỉnhlưu trữđược sao chép từ kèo bóng đá c1 đó, trừ khi được ghi đè bởi thông số kỹ thuật rõ ràng ở nơi khác trong nàyTạo kèo bóng đá c1lệnh.

thể kèo bóng đá c1

Mã danh mục (một ký tự ASCII duy nhất) cho kèo bóng đá c1 này. Mặc định là'U'chokèo bóng đá c1 do người dùng xác địnhHồi. kèo bóng đá c1 mã danh mục tiêu chuẩn khác có thể được tìm thấy trongBảng 52.65. Bạn cũng có thể chọn các ký tự ASCII khác để kèo bóng đá c1 các danh mục tùy chỉnh.

ưu tiên

Đúng nếu kèo bóng đá c1 này là kèo bóng đá c1 ưa thích trong kèo bóng đá c1 kèo bóng đá c1 của nó, khác. Mặc định là sai.

Mặc định

Giá trị mặc định cho kiểu dữ liệu. Nếu điều này bị bỏ qua, mặc định là null.

Element

kèo bóng đá c1 được tạo là một mảng; Điều này chỉ định kèo bóng đá c1 phần tử mảng.

Delimiter

ký tự phân cách được sử dụng giữa các giá trị trong các mảng được làm từ kèo bóng đá c1 này.

có thể ghép

Đúng nếu hoạt động của kèo bóng đá c1 này có thể sử dụng thông tin đối chiếu. Mặc định là sai.

Ghi chú

Vì không có hạn chế sử dụng kèo bóng đá c1 dữ liệu sau khi nó được tạo, việc tạo kèo bóng đá c1 cơ sở hoặc kèo bóng đá c1 phạm vi tương đương với việc cấp phép thực thi công khai trên các chức năng được đề cập trong định nghĩa kèo bóng đá c1. Đây thường không phải là một vấn đề cho các kèo bóng đá c1 chức năng hữu ích trong một định nghĩa kèo bóng đá c1.bí mậtHồiThông tin sẽ được sử dụng trong khi chuyển đổi nó thành hoặc từ hình thức bên ngoài.

trướcPOSTGRESQLPhiên bản 8.3, tên của một kèo bóng đá c1 mảng được tạo luôn luôn chính xác là tên của kèo bóng đá c1 phần tử với một ký tự dấu gạch dưới (_) Chuẩn bị. .PG_TYPE.TyparrayĐể định vị kèo bóng đá c1 mảng được liên kết với một kèo bóng đá c1 đã cho.

Có thể nên tránh sử dụng tên kèo bóng đá c1 và bảng bắt đầu bằng dấu gạch dưới. Mặc dù máy chủ sẽ thay đổi tên kèo bóng đá c1 mảng được tạo để tránh va chạm với tên người dùng, nhưng vẫn có nguy cơ nhầm lẫn, đặc biệt là phần mềm khách hàng cũ có thể cho rằng tên kèo bóng đá c1 bắt đầu với dấu gạch dưới luôn đại diện cho các mảng.

trướcPOSTGRESQLPhiên bản 8.2, Cú pháp kèo bóng đá c1 kiểu ShellTạo kèo bóng đá c1tênKhông tồn tại. Cách để tạo một kèo bóng đá c1 cơ sở mới là tạo chức năng đầu vào của nó trước tiên.POSTGRESQLTrước tiên sẽ xem tên của kèo bóng đá c1 dữ liệu mới là kèo bóng đá c1 trả về của hàm đầu vào. kèo bóng đá c1 vỏ được tạo ra hoàn toàn trong tình huống này, và sau đó nó có thể được tham chiếu trong các định nghĩa của các hàm I/O còn lại.

inPOSTGRESQLPhiên bản 16 trở lên, nó là mong muốn cho các chức năng đầu vào của các kèo bóng đá c1 cơ sở để trả vềmềmKhănLỗi sử dụng mớierrsave ()/ereturn ()cơ chế, thay vì némEREPORT ()ngoại lệ như trong kèo bóng đá c1 phiên bản trước. Nhìn thấySRC/Backend/Utils/fmgr/readmeĐể biết thêm thông tin.

Ví dụ

Ví dụ này tạo ra một kèo bóng đá c1 tổng hợp và sử dụng nó trong một định nghĩa hàm:

Tạo kèo bóng đá c1 compfoo AS (F1 int, F2 văn bản);

Ví dụ này tạo ra một kèo bóng đá c1 được liệt kê và sử dụng nó trong một định nghĩa bảng:

Tạo kèo bóng đá c1 bug_status dưới dạng enum ('mới', 'mở', 'đóng');

Ví dụ này tạo ra một kèo bóng đá c1 phạm vi:

Tạo kèo bóng đá c1 float8_range dưới dạng phạm vi (phân nhóm = float8, subtype_diff = float8mi);

Ví dụ này kèo bóng đá c1 ra kiểu dữ liệu cơ sởBoxVà sau đó sử dụng kèo bóng đá c1 trong định nghĩa bảng:

Tạo hộp kèo bóng đá c1;

Nếu cấu trúc bên trong củaBoxlà một mảng gồm bốnfloat4kèo bóng đá c1 yếu tố, thay vào đó chúng ta có thể sử dụng:

Tạo hộp kèo bóng đá c1 (

cho phép truy cập số thành phần của giá trị hộp bằng cách đăng ký. Nếu không thì kèo bóng đá c1 hoạt động giống như trước đây.

Ví dụ này tạo ra một kèo bóng đá c1 đối tượng lớn và sử dụng nó trong định nghĩa bảng:

Tạo kèo bóng đá c1 bigobj (

kèo bóng đá c1 ví dụ khác, bao gồm kèo bóng đá c1 chức năng đầu vào và đầu ra phù hợp, là trongPhần 36.13.

Tương thích

Hình thức đầu tiên củaTạo kèo bóng đá c1lệnh, tạo ra một kèo bóng đá c1 tổng hợp, phù hợp vớiSQLTiêu chuẩn. kèo bóng đá c1 biểu mẫu khác làPostgreSQLTiện ích mở rộng. TheTạo kèo bóng đá c1câu lệnh trongSQLTiêu chuẩn cũng xác định kèo bóng đá c1 hình thức khác không được triển khai trongPOSTGRESQL.

Khả năng tạo kèo bóng đá c1 tổng hợp với các thuộc tính bằng không làPOSTGRESQL-Specific độ lệch so với tiêu chuẩn (tương tự như cùng một trường hợp trongkèo bóng đá c1 bảng).