Tạo cách đọc kèo bóng đátênnhư ([Attribe_name data_type[đối chiếuđối chiếu] [, ...]])) Tạo cách đọc kèo bóng đátênnhư enum (['nhãn' [, ...]]) Tạo cách đọc kèo bóng đátêndưới dạng phạm vi ( Subtype =SubType[, SubType_opClass =11150_11174] [, Đối chiếu =đối chiếu] [, Kinh điển =Canonical_Function] [, SubType_Diff =] ) Tạo cách đọc kèo bóng đátên( Input =input_function,, Đầu ra =output_function[, nhận =nhận_function] [, Send =Send_Function] [, Typmod_in =type_modifier_input_function] [, Typmod_out =type_modifier_output_function] [, Phân tích =Phân tích_Function] [, InternalLight =11994_12010| Biến] [, PassedByValue] [, Căn chỉnh =12100_12111] [, Lưu trữ =lưu trữ] [, Như =like_type] [, Danh mục =thể cách đọc kèo bóng đá] [, Ưa thích =ưu tiên] [, Mặc định =mặc định] [, Phần tử =Element] [, Delimiter =Delimiter] [, Collatable =có thể ghép] ) Tạo cách đọc kèo bóng đátên
Tạo cách đọc kèo bóng đáĐă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 cách đọc kèo bóng đá trở thành chủ sở hữu của nó.
Nếu một tên lược đồ được đưa ra thì cách đọc kèo bóng đá đượ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. Tên cách đọc kèo bóng đá phải khác biệt với tên của bất kỳ cách đọc kèo bóng đá hoặc tên miền nào trong cùng một lược đồ. .
Có năm hình thứcTạo cách đọc kèo bóng đá13333_13403cách đọc kèo bóng đá tổng hợp, anenum cách đọc kèo bóng đá, Acách đọc kèo bóng đá phạm vi, Acách đọc kèo bóng đá cơ sởhoặc Acách đọc kèo bóng đá 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. Một cách đọc kèo bóng đá vỏ chỉ đơn giản là một trình giữ chỗ cho một cách đọc kèo bóng đá được xác định sau; nó được tạo ra bằng cách phát hànhTạo cách đọc kèo bóng đáKhông có tham số ngoại trừ tên cách đọc kèo bóng đá. Các cách đọc kèo bóng đá shell là cần thiết như là tham chiếu chuyển tiếp khi tạo các cách đọc kèo bóng đá phạm vi và cách đọc kèo bóng đá cơ sở, như đã thảo luận trong các phần đó.
Hình thức đầu tiên củaTạo cách đọc kèo bóng đáTạo cách đọc kèo bóng đá tổng hợp. cách đọc kèo bóng đá tổng hợp được chỉ định bởi một danh sách các tên thuộc tính và cách đọc kèo bóng đá dữ liệu. Đối chiếu của một thuộc tính cũng có thể được chỉ định, nếu cách đọc kèo bóng đá dữ liệu của nó có thể có được. Một cách đọc kèo bóng đá tổng hợp về cơ bản giống như cách đọc kèo bóng đá hàng của bảng, nhưng sử dụngTạo cách đọc kèo bóng đáTrá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 cách đọc kèo bóng đá. Một cách đọc kèo bóng đá tổng hợp độc lập là hữu ích, ví dụ, là đối số hoặc cách đọc kèo bóng đá trả về của một hàm.
Để có thể tạo cách đọc kèo bóng đá tổng hợp, bạn phải cósử dụngĐặc quyền trên tất cả các cách đọc kèo bóng đá thuộc tính.
Mẫu thứ hai củaTạo cách đọc kèo bóng đáTạo cách đọc kèo bóng đá được liệt kê (enum), như được mô tả trongPhần 8.7. Các cách đọc kèo bóng đá enum lấy một danh sách các nhãn được trích dẫn, mỗi cách đọc kèo bóng đá phải nhỏ hơnĐược đặt tênByte dài (64 byte trong một tiêu chuẩnPostgreSQLBuild). .PostgreSQL: Tài liệu: 9.6: thay.)
Mẫu thứ ba củaTạo cách đọc kèo bóng đáTạo một cách đọc kèo bóng đá phạm vi mới, như được mô tả trongPhần 8.17.
cách đọc kèo bóng đá phạm viSubTypeCó thể là bất kỳ cách đọc kèo bóng đá 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 cách đọc kèo bóng đá 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ự; Để sử dụng lớp toán tử không mặc định, chỉ định tên của nó vớiSubType_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 cách đọc kèo bóng đá phạm vi được xác định và trả về giá trị của cùng cách đọc kèo bóng đá. Đ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. Nhìn thấyPhần 8.17.8Để biết thêm thông tin. Tạo ACanonical16572_16828Tạo cách đọc kèo bóng đátên16899_17150
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 cách đọc kèo bóng đá phạm vi. Nhìn thấyPhần 8.17.8Để biết thêm thông tin.
Mẫu thứ tư củaTạo cách đọc kèo bóng đáTạo một cách đọc kèo bóng đá cơ sở mới (cách đọc kèo bóng đá vô hướng). Để tạo một cách đọc kèo bóng đá cơ sở mới, bạn phải là một siêu người dùng. (Hạn chế này được thực hiện vì một định nghĩa cách đọc kèo bóng đá sai có thể gây nhầm lẫn hoặc thậm chí làm hỏng máy chủ.)
17982_18127tạo chức năng) trước khi xác định cách đọc kèo bóng đá. Các chức năng hỗ trợinput_functionvàoutput_functionđược yêu cầu, trong khi các chức năngrecean_function, send_function, type_modifier_input_function, type_modifier_output_functionvàPhân tích_Functionlà tùy chọn. Nói chung, các 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.
18722_18728input_function18772_18916output_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 cách đọc kèo bóng đácStringhoặc khi thực hiện ba đối số của các cách đọc kèo bóng đácString, OID, Số nguyên19221_19414TYPMODcủ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 cách đọc kèo bóng đá dữ liệu. Thông thường, một hàm đầu vào nên được tuyên bố nghiêm ngặt; Nếu không, nó sẽ được gọi với tham số đầu tiên của NULL khi đọc giá trị đầu vào null. Hàm vẫn phải trả về null trong trường hợp này, trừ khi nó gây ra lỗi. . Chức năng đầu ra phải trả về cách đọc kèo bóng đácString. Các chức năng đầu ra không được gọi cho các giá trị null.
Tùy chọnrecean_functionChuyển đổi biểu diễn nhị phân bên ngoài của cách đọc kèo bóng đá thành đại diện bên trong. Nếu chức năng này không được cung cấp, cách đọc kèo bóng đá không thể tham gia vào đầu vào nhị phân. Biểu diễn nhị phân nên được chọn là giá rẻ để chuyển đổi sang dạng bên trong, trong khi có thể di động hợp lý. . Chức năng nhận có thể được khai báo là lấy một đối số của cách đọc kèo bóng đáNội bộhoặc khi thực hiện ba đối số của các cách đọc kèo bóng đáNộ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; Các đối số tùy chọn giống như đối với hàm đầu vào văn bản. Hàm nhận phải trả về một giá trị của chính cách đọc kèo bóng đá dữ liệu. Thông thường, một chức năng nhận nên được tuyên bố nghiêm ngặt; Nếu không, nó sẽ được gọi với tham số đầu tiên của NULL khi đọc giá trị đầu vào null. Hàm vẫn phải trả về null trong trường hợp này, trừ khi nó gây ra lỗi. .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, cách đọc kèo bóng đá không thể tham gia vào đầu ra nhị phân. Hàm gửi phải được khai báo là lấy một đối số của kiểu dữ liệu mới. Chức năng gửi phải trả về cách đọc kèo bóng đábytea. Gửi các chức năng không được gọi cho các 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 khai báo để có kết quả hoặc đối số của cách đọc kèo bóng đá mới, khi chúng phải được tạo trước khi cách đọc kèo bóng đá mới có thể được tạo. Câu trả lời là cách đọc kèo bóng đá trước tiên phải được định nghĩa làcách đọc kèo bóng đá shell, là cách đọc kèo bóng đá 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 cách đọc kèo bóng đátê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 cách đọc kèo bóng đá shell. Cuối cùng,Tạo cách đọc kèo bóng đáVới một định nghĩa đầy đủ thay thế cho mục shell bằng một định nghĩa cách đọc kèo bóng đá hoàn chỉnh, hợp lệ, sau đó cách đọc kèo bóng đá mới có thể được sử dụng bình thường.
Tùy chọntype_modifier_input_functionvàtype_modifier_output_functionlà cần thiết nếu cách đọc kèo bóng đá 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 cách đọc kèo bóng đá, chẳng hạn nhưChar (5)hoặcSố (30,2). POSTGRESQLCho phép các cách đọc kèo bóng đá 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. Thetype_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 các 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ột"Typmod"23711_23775type_modifier_input_function. Thetype_modifier_output_function23900_24006cstringGiá trị là chuỗi chính xác để nối với tên cách đọc kèo bóng đá; Ví dụSố'Chức năng có thể trả về(30,2). Nó được phép bỏ qua24245_24276, trong trường hợp đó, định dạng hiển thị mặc định chỉ là giá trị số nguyên được lưu trữ được đặt trong dấu 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 các 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 cách đọc kèo bóng đá"bằng"và"ít hơn"toán tử, nếu có lớp toán tử B-cây mặc định cho cách đọc kèo bóng đá. Đối với các cách đọc kèo bóng đá 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. Hàm phân tích phải được khai báo để lấy một đối số duy nhấtNội bộ, và trả lại ABooleanKết quả. API chi tiết cho các chức năng phân tích xuất hiện trongsrc/bao gồm/lệnh/chân không.h.
25175_25412PostgreSQL. Đầu tiên trong số này làInternalLights. Các cách đọc kèo bóng đá dữ liệu cơ sở có thể được cố định độ dài, trong trường hợp đóInternalLightslà một số nguyên dương hoặc độ dài thay đổi, được biểu thị bằng cách đọc kèo bóng đá cài đặtInternalLightsđếnbiến. (Bên trong, điều này được biểu thị bằng cách đọc kèo bóng đá cài đặtTyplen25846_26060Phần 65.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 kiểu dữ liệu này được truyền theo giá trị, thay vì tham chiếu. Các cách đọc kèo bóng đá đượ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ủaDatumcách đọc kèo bóng đá (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. Các giá trị được phép tương đương với sự liên kết trên các ranh giới byte 1, 2, 4 hoặc 8. Lưu ý rằng các cách đọc kèo bóng đá có độ dài biến phải có căn chỉnh ít nhất 4, vì chúng nhất thiết phải chứaINT4Là 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 cách đọc kèo bóng đá dữ liệu có độ dài thay đổi. (Chỉ mộttrơnđược phép cho các cách đọc kèo bóng đá có độ dài cố định.)trơnChỉ định rằng dữ liệu của cách đọc kèo bóng đá 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ộngvàbên ngoàiMục.)
tất cảlưu trữGiá trị kháctrơnngụ ý rằng các hàm của kiểu dữ liệu có thể xử lý các giá trị đã đượcTOASTED, như được mô tả trongPhần 65.2vàPhần 36.11.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 cách đọc kèo bóng đá dữ liệu có thể nướng; Người dùng có thể chọn các chiến lược khác cho các cột riêng lẻ bằng cách sử dụngBộ lưu trữ bộ thay đổi.
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ố cách đọc kèo bóng đá hiện có. Các giá trị củaInternalLights, PassedByValue, Căn chỉnhvàlưu trữđược sao chép từ cách đọc kèo bóng đá đượ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 việc thực hiện cấp thấp của cách đọc kèo bóng đá mới"Piggybacks"Trên một cách đọc kèo bóng đá hiện có theo một số kiểu.
Thethể cách đọc kèo bóng đávàư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 cách đọc kèo bóng đá 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 cách đọc kèo bóng đá là"ưa thích"hoặ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 cách đọc kèo bóng đá ưa thích (nhưng chỉ từ các cách đọc kèo bóng đá 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. Để biết thêm chi tiết, xemChương 10. Đối với các cách đọc kèo bóng đá không có diễn viên ngầm đến hoặc từ bất kỳ cách đọc kèo bóng đá nào khác, nó là đủ để để các cài đặt này theo mặc định. Tuy nhiên, đối với một nhóm các cách đọc kèo bóng đá liên quan có diễn viên ngầm, thường hữu ích khi đánh dấu tất cả chúng là thuộc về một danh mục và chọn một hoặc hai trong số"Tổng quát nhất"Các cách đọc kèo bóng đá được ưa thích trong danh mục. Thethể cách đọc kèo bóng đáTham số đặc biệt hữu ích khi thêm cách đọc kèo bóng đá 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 cách đọc kèo bóng đá số hoặc chuỗi. Tuy nhiên, cũng có thể tạo các cách đọc kèo bóng đá cách đọc kèo bóng đá hoàn toàn mới được xác định. Chọn bất kỳ ký tự ASCII nào khác ngoài chữ cái trong trường hợp trên để đặt tên cho một danh mục như vậy.
Có thể chỉ định giá trị mặc định, trong trường hợp người dùng muốn các 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 cách đọc kèo bóng đá là một mảng, chỉ định cách đọc kèo bóng đá 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. Thông tin chi tiết về các cách đọc kèo bóng đá mảng xuất hiện bê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 thuộc cách đọc kèo bóng đá 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 cách đọc kèo bóng đá phần tử mảng, không phải cách đọc kèo bóng đá mảng.
Nếu tham số Boolean tùy chọncó thể ghép31554_31664đố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 cách đọc kèo bóng đá để thực sự sử dụng thông tin đối chiếu; Điều này không xảy ra tự động chỉ bằng cách đánh dấu cách đọc kèo bóng đá có thể có được.
Bất cứ khi nào một cách đọc kèo bóng đá do người dùng xác định,PostgreSQL32078_32254Được đặt tênByte dài. .mảng_invàArray_out. cách đọc kèo bóng đá mảng theo dõi mọi thay đổi trong chủ sở hữu hoặc lược đồ của cách đọc kèo bóng đá thành phần của nó và bị cách đọc kèo bóng đá bỏ nếu cách đọc kèo bóng đá phần tử là.
Bạn có thể hỏi một cách đọc kèo bóng đá hợp lý lý do tại sao cóElementTùy chọn, nếu hệ thống tự động thực hiện cách đọc kèo bóng đá mảng chính xác. Trường hợp duy nhất mà nó hữu ích để sử dụngElement32930_33222đ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 đọc kèo bóng đá sử dụngđiểm [0]vàĐiểm [1]. Lưu ý rằng cơ sở này chỉ hoạt động cho các cách đọc kèo bóng đá 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. Một cách đọc kèo bóng đá có thể thay đổi có thể đăng ký phải có biểu diễn nội bộ tổng quát được sử dụng bởimảng_invàArray_out. Vì lý do lịch sử (nghĩa là, điều này rõ ràng là sai nhưng đã quá muộn để thay đổi nó), việc đăng ký các cách đọc kèo bóng đá mảng có độ dài cố định bắt đầu từ số 0, thay vì từ một mảng có độ dài thay đổi.
Tên (tùy chọn Lược đồ-đủ điều kiện) của một cách đọc kèo bóng đá sẽ được tạo.
Tên của một thuộc tính (cột) cho cách đọc kèo bóng đá tổng hợp.
Tên của một cách đọc kèo bóng đá dữ liệu hiện có để trở thành một cột của cách đọc kèo bóng đá tổng hợp.
34497_34606
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 cách đọc kèo bóng đá enum.
Tên của cách đọc kèo bóng đá phần tử mà cách đọc kèo bóng đá phạm vi sẽ đại diện cho các phạm vi của.
34985_35039
Tên của chức năng Canonicalization cho cách đọc kèo bóng đá phạm vi.
Tên của hàm khác biệt cho phân nhóm.
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 cách đọc kèo bóng đá thành dạng bên trong của nó.
Tên của hàm chuyển đổi dữ liệu từ dạng bên trong của cách đọc kèo bóng đá thành dạng văn bản bên ngoài của nó.
35739_35841
Tên của hàm chuyển đổi dữ liệu từ dạng bên trong của cách đọc kèo bóng đá thành dạng nhị phân bên ngoài của nó.
Tên của hàm chuyển đổi một mảng (các) công cụ sửa đổi cho cách đọc kèo bóng đá thành dạng bên trong.
Tên của hàm chuyển đổi dạng bên trong của (các) công cụ sửa đổi thành dạng văn bản bên ngoài.
Tên của một hàm thực hiện phân tích thống kê cho kiểu dữ liệu.
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 cách đọc kèo bóng đá mới. Giả định mặc định là nó có độ dài thay đổi.
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.
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.
Tên của một cách đọc kèo bóng đá dữ liệu hiện có mà cách đọc kèo bóng đá mới sẽ có cùng một biểu diễn như. Các giá trị củaInternalLights, passedByValue, căn chỉnhvàlưu trữđược sao chép từ cách đọc kèo bóng đá đó, trừ khi được ghi đè bởi thông số kỹ thuật rõ ràng ở nơi khác trong nàyTạo cách đọc kèo bóng đálệnh.
Mã danh mục (một ký tự ASCII duy nhất) cho cách đọc kèo bóng đá này. Mặc định là'U'cho"cách đọc kèo bóng đá do người dùng xác định". Các mã danh mục tiêu chuẩn khác có thể được tìm thấy trongBảng 50-56. Bạn cũng có thể chọn các ký tự ASCII khác để tạo các danh mục tùy chỉnh.
Đúng nếu cách đọc kèo bóng đá này là cách đọc kèo bóng đá ưa thích trong cách đọc kèo bóng đá cách đọc kèo bóng đá của nó, khác. Mặc định là sai. Hãy rất cẩn thận về việc tạo một cách đọc kèo bóng đá ưa thích mới trong một cách đọc kèo bóng đá cách đọc kèo bóng đá hiện có, vì điều này có thể gây ra những thay đổi đáng ngạc nhiên trong hành vi.
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.
cách đọc kèo bóng đá được tạo là một mảng; Điều này chỉ định cách đọc kèo bóng đá phần tử mảng.
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ừ cách đọc kèo bóng đá này.
Đúng nếu hoạt động của cách đọc kèo bóng đá này có thể sử dụng thông tin đối chiếu. Mặc định là sai.
Vì không có hạn chế sử dụng cách đọc kèo bóng đá dữ liệu sau khi nó được tạo, việc tạo cách đọc kèo bóng đá cơ sở hoặc cách đọc kèo bóng đá phạm vi tương đương với việc cấp phép thực thi công khai đối với các chức năng được đề cập trong định nghĩa cách đọc kèo bóng đá. Đây thường không phải là một vấn đề cho các cách đọc kèo bóng đá chức năng hữu ích trong một định nghĩa cách đọc kèo bóng đá. Nhưng bạn có thể muốn suy nghĩ hai lần trước khi thiết kế một cách đọc kèo bóng đá theo cách yêu cầu"bí mật"Thô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 cách đọc kèo bóng đá mảng được tạo luôn luôn chính xác là tên của cách đọc kèo bóng đá phần tử với một ký tự dấu gạch dưới (_) Chuẩn bị. . Do đó, viết mã phụ thuộc vào quy ước này. Thay vào đó, sử dụngpg_type.TyparrayĐể định vị cách đọc kèo bóng đá mảng được liên kết với một cách đọc kèo bóng đá đã cho.
Có thể nên tránh sử dụng tên cách đọc kèo bóng đá 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 cách đọc kèo bóng đá 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 cách đọc kèo bóng đá 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 tạo kiểu ShellTạo cách đọc kèo bóng đátênKhông tồn tại. Cách để tạo một cách đọc kèo bóng đá cơ sở mới là tạo chức năng đầu vào của nó trước tiên. Trong cách tiếp cận này,PostgreSQLTrước tiên sẽ xem tên của cách đọc kèo bóng đá dữ liệu mới là cách đọc kèo bóng đá trả về của hàm đầu vào. cách đọc kèo bóng đá 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. Cách tiếp cận này vẫn hoạt động, nhưng không được chấp nhận và có thể không được phép trong một số phát hành trong tương lai. Ngoài ra, để tránh vô tình làm lộn xộn các danh mục với các cách đọc kèo bóng đá shell do lỗi chính tả đơn giản trong các định nghĩa chức năng, một cách đọc kèo bóng đá shell sẽ chỉ được thực hiện theo cách này khi hàm đầu vào được viết bằng C.
inPOSTGRESQLPhiên bản trước 7.3, thông thường để tránh tạo một cách đọc kèo bóng đá shell, bằng cách thay thế các tham chiếu chuyển tiếp của các hàm sang tên cách đọc kèo bóng đá bằng giả sở của trình giữ chỗOpaque. ThecStringĐối số và kết quả cũng phải được khai báo làOpaqueTrước 7.3. Để hỗ trợ tải các tệp kết xuất cũ,Tạo cách đọc kèo bóng đáSẽ chấp nhận các hàm I/O được khai báo bằng cách đọc kèo bóng đá sử dụngOpaque, nhưng nó sẽ đưa ra thông báo và thay đổi khai báo chức năng để sử dụng đúng các cách đọc kèo bóng đá.
Ví dụ này tạo ra một cách đọc kèo bóng đá tổng hợp và sử dụng nó trong một định nghĩa hàm:
Tạo cách đọc kèo bóng đá compfoo AS (F1 int, F2 văn bản); Tạo hàm getfoo () trả về setof compfoo dưới dạng $$ Chọn Fooid, Fooname từ Foo $$ Ngôn ngữ SQL;
Ví dụ này tạo ra một cách đọc kèo bóng đá được liệt kê và sử dụng nó trong một định nghĩa bảng:
tạo cách đọc kèo bóng đá bug_status dưới dạng enum ('mới', 'mở', 'đóng'); Tạo lỗi bảng ( id serial, mô tả văn bản, trạng thái bug_status );
Ví dụ này tạo ra một cách đọc kèo bóng đá phạm vi:
Tạo cách đọc kèo bóng đá float8_range dưới dạng phạm vi (phân nhóm = float8, subtype_diff = float8mi);
Ví dụ này tạo ra kiểu dữ liệu cơ sởBoxVà sau đó sử dụng cách đọc kèo bóng đá trong định nghĩa bảng:
Tạo hộp cách đọc kèo bóng đá; Tạo chức năng my_box_in_function (cString) trả về hộp như ...; Tạo hàm my_box_out_function (hộp) trả về cString là ...; Tạo hộp cách đọc kèo bóng đá ( InterlitalLight = 16, Input = my_box_in_function, Đầu ra = my_box_out_function ); Tạo bảng myboxes ( ID Số nguyên, Hộp mô tả );
Nếu cấu trúc bên trong củaBoxlà một mảng gồm bốnfloat4Các yếu tố, thay vào đó chúng ta có thể sử dụng:
43773_43907
cho phép các số thành phần của giá trị hộp được truy cập bằng cách đăng ký. Nếu không thì cách đọc kèo bóng đá hoạt động giống như trước đây.
Ví dụ này tạo ra một cách đọc kèo bóng đá đối tượng lớn và sử dụng nó trong định nghĩa bảng:
Tạo cách đọc kèo bóng đá bigobj ( Input = lo_filein, output = lo_fileout, InternalLights = Biến ); Tạo bảng BIG_OBJS ( ID Số nguyên, obj bigobj );
Các ví dụ khác, bao gồm các chức năng đầu vào và đầu ra phù hợp, là trongPhần 36.11.
Hình thức đầu tiên củaTạo cách đọc kèo bóng đálệnh, tạo ra một cách đọc kèo bóng đá tổng hợp, phù hợp vớiSQLTiêu chuẩn. Các biểu mẫu khác làPOSTGRESQLTiện ích mở rộng. TheTạo cách đọc kèo bóng đácâu lệnh trongSQLTiêu chuẩn cũng định nghĩa các hình thức khác không được triển khai trongPostgreSQL.
Khả năng tạo cách đọc kèo bóng đá 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 trong45220_45234).