Postgresql 8.2.23 Tài liệu | ||||
---|---|---|---|---|
prev | Backward nhanh | Chuyển tiếp nhanh | Tiếp theo |
Tạo kèo chấp bóng đá hôm naytênnhư (Attribution_name data_type[, ...]) Tạo kèo chấp bóng đá hôm naytên( Input =input_function, Đầu ra =output_function[, nhận =recean_function] [, Send =send_function] [, Phân tích =Phân tích_Function] [, InternalLight =InternalLights| Biến] [, PassedByValue] [, Căn chỉnh =Căn chỉnh] [, Lưu trữ =lưu trữ11601_11624mặc định] [, Phần tử =Element] [, Delimiter =Delimiter] ) Tạo kèo chấp bóng đá hôm naytên
Tạo kèo chấp bóng đá hôm nay11984_12096
Nếu một tên lược đồ được đưa ra thì kèo chấp bóng đá hôm nay được tạo trong lược đồ cụ thể. Nếu không, nó được tạo ra trong lược đồ hiện tại. Tên kèo chấp bóng đá hôm nay phải khác với tên của bất kỳ kèo chấp bóng đá hôm nay hiện có hoặc miền trong cùng một lược đồ. (Vì các bảng đã liên kết kèo chấp bóng đá hôm nay dữ liệu, tên kèo chấp bóng đá hôm nay cũng phải khác với tên của bất kỳ bảng hiện có nào trong cùng một lược đồ.)
Hình thức đầu tiên củaTạo kèo chấp bóng đá hôm nayTạo một kèo chấp bóng đá hôm nay tổng hợp. kèo chấp bóng đá hôm nay tổng hợp được chỉ định bởi một Danh sách các tên thuộc tính và kiểu dữ liệu. Đây thực chất là Giống như kèo chấp bóng đá hôm nay hàng của bảng, nhưng sử dụngTạo kèo chấp bóng đá hôm nayTránh sự cần thiết phải tạo ra một thực tế Bảng khi tất cả những gì muốn là xác định một kèo chấp bóng đá hôm nay. MỘT kèo chấp bóng đá hôm nay tổng hợp độc lập là hữu ích như đối số hoặc trở lại kèo chấp bóng đá hôm nay chức năng.
Hình thức thứ hai củaTạo kèo chấp bóng đá hôm nayTạo kèo chấp bóng đá hôm nay cơ sở mới (kèo chấp bóng đá hôm nay vô hướng). Các 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 chấp bóng đá hôm nay chức năng) trước khi xác định kiểu. Các chức năng hỗ trợinput_functionvàoutput_functionđược yêu cầu, trong khi Chức năngnhận_function, Send_FunctionvàPhân tích_Functionlà tùy chọn. Nói chung là Các chức năng này phải được mã hóa trong C hoặc kèo chấp bóng đá hôm nay mức độ thấp khác ngôn ngữ.
Theinput_functionChuyển đổi biểu diễn văn bản bên ngoài của kèo chấp bóng đá hôm nay cho bên trong Đại diện được sử dụng bởi các toán tử và các chức năng được xác định cho kèo chấp bóng đá hôm nay.14155_14172Thực hiện chuyển đổi ngược. Hàm đầu vào có thể là được tuyên bố là lấy một đối số của kèo chấp bóng đá hôm naycstringhoặc khi thực hiện ba đối số của các kèo chấp bóng đá hôm naycString, OID, Số nguyên. Đối số đầu tiên là đầu vào Văn bản dưới dạng chuỗi C, đối số thứ hai là OID của kèo chấp bóng đá hôm nay (ngoại trừ các kèo chấp bóng đá hôm nay mảng, thay vào đó nhận phần tử của chúng kèo chấp bóng đá hôm nay oid) 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ề một giá trị của kèo chấp bóng đá hôm nay dữ liệu chính nó. Thông thường, một hàm đầu vào phải tuyên bố nghiêm ngặt; Nếu nó không, nó sẽ được gọi với một null Tham số đầu tiên khi đọc một giá trị đầu vào null. Chức năng vẫn phải trả lại null trong trường hợp này, trừ khi nó gây ra lỗi. (Trường hợp này chủ yếu có nghĩa là để hỗ trợ các chức năng đầu vào miền, có thể cần phải từ chối đầu vào null.) Hàm đầu ra phải được tuyên bố là lấy một đối số của kiểu dữ liệu mới. Các chức năng đầu ra phải trả về kèo chấp bóng đá hôm naycstring. Các chức năng đầu ra không được gọi cho các giá trị null.
Tùy chọnnhận_functionChuyển đổi kèo chấp bóng đá hôm nay của kèo chấp bóng đá hôm nay Đại diện nhị phân bên ngoài cho đại diện nội bộ. Nếu chức năng này không được cung cấp, kèo chấp bóng đá hôm nay không thể tham gia trong đầu vào nhị phân. Biểu diễn nhị phân nên được chọn để trở nên rẻ để chuyển đổi sang dạng nội bộ, trong khi hợp lý cầm tay. (Ví dụ: các kèo chấp bóng đá hôm nay dữ liệu số nguyên tiêu chuẩn sử dụng Mạng đơn đặt hàng byte là biểu diễn nhị phân bên ngoài, trong khi Đại diện nội bộ nằm trong byte gốc của máy thứ tự.) chức năng nhận sẽ thực hiện kiểm tra đầy đủ Để đảm bảo rằng giá trị là hợp lệ. Chức năng nhận có thể là được tuyên bố là lấy một đối số của kèo chấp bóng đá hôm nayNội bộ16161_16207Nội bộ, oid, Số nguyên. Đối số đầu tiên là kèo chấp bóng đá hôm nay con trỏ đến aStringInfoBộ đệm giữ đã nhận được chuỗi byte; Các đối số tùy chọn giống như cho chức năng đầu vào văn bản. Chức năng nhận phải trả về một Giá trị của chính kèo chấp bóng đá hôm nay 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 nó không, nó sẽ được gọi với Một tham số đầu tiên null khi đọc giá trị đầu vào null. Các chức năng vẫn phải trả lại null trong trường hợp này, trừ khi nó tăng một lỗi. (Trường hợp này chủ yếu là nhằm hỗ trợ nhận miền các chức năng, có thể cần phải từ chối đầu vào null.) Tương tự, Tùy chọnSend_FunctionChuyển đổi từ biểu diễn bên trong thành bên ngoài Đại diện nhị phân. Nếu chức năng này không được cung cấp, kèo chấp bóng đá hôm nay không thể tham gia vào đầu ra nhị phân. Chức năng gửi Phải được tuyên bố 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ề kèo chấp bóng đá hôm naybytea. 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 đầu vào và đầu vào Các chức năng đầu ra có thể được khai báo là có kết quả hoặc đối số thuộc kèo chấp bóng đá hôm nay mới, khi chúng phải được tạo ra trước khi kèo chấp bóng đá hôm nay có thể được tạo ra. Câu trả lời là kèo chấp bóng đá hôm nay nên trước tiên được định nghĩa làkèo chấp bóng đá hôm nay shell, là một kèo chấp bóng đá hôm nay trình giữ chỗ không có thuộc tính ngoại trừ tên và người sở hữu. Điều này được thực hiện bằng cách ban hành lệnhTạo kèo chấp bóng đá hôm naytên, không có tham số bổ sung. Sau đó, các hàm I/O có thể được xác định tham chiếu shell kiểu. Cuối cùng,Tạo kèo chấp bóng đá hôm nayvới đầy đủ Định nghĩa thay thế mục nhập shell bằng một kèo chấp bóng đá hôm nay hoàn chỉnh, hợp lệ Định nghĩa, sau đó kèo chấp bóng đá hôm nay mới có thể được sử dụng bình thường.
Tùy chọnPhân tích_FunctionThực hiện kèo chấp bóng đá hôm nay cụ thể Bộ sưu tập thống kê 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 Thống kê sử dụng kèo chấp bóng đá hôm nay"bằng"và"ít hơn"18527_18821Nội bộ, và trả lại ABooleanKết quả. API chi tiết để phân tích Các chức năng xuất hiện trongsrc/bao gồm/lệnh/chân không.h.
Trong khi các chi tiết của biểu diễn nội bộ của kèo chấp bóng đá hôm nay mới chỉ được biết đến các chức năng I/O và các chức năng khác mà bạn tạo để làm việc với kèo chấp bóng đá hôm nay, có một số thuộc tính của Đại diện nội bộ phải được khai báo choPostgreSQL. Đầu tiên của những điều này làInternalLights. Dữ liệu cơ sở Các kèo chấp bóng đá hôm nay có thể được cố định độ dài, trong trường hợp đóInternalLightslà kèo chấp bóng đá hôm nay số nguyên dương hoặc Độ dài biến, được biểu thị bằng cách cài đặtInternallimptđếnbiến. (Bên trong, điều này được đại diện bởi cài đặtTyplenđến -1.) Nội bộ Biểu diễn của tất cả các kèo chấp bóng đá hôm nay có độ dài thay đổi phải bắt đầu với một Số nguyên 4 byte cho tổng chiều dài của giá trị này của kiểu.
Cờ tùy chọnPassedByValuechỉ ra rằng các giá trị của kèo chấp bóng đá hôm nay dữ liệu này được truyền theo giá trị, hơn là bằng cách tham khảo. Bạn không được vượt qua các kèo chấp bóng đá hôm nay giá trị có Biểu diễn bên trong lớn hơn kích thước củaDatumkèo chấp bóng đá hôm nay (4 byte trên hầu hết các máy, 8 byte trên một vài).
TheCăn chỉnh20321_20591INT4Là 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 chấp bóng đá hôm nay dữ liệu có độ dài thay đổi. (Chỉ mộttrơnđược phép cho Các kèo chấp bóng đá hôm nay có độ dài cố định.)trơnChỉ định Dữ liệu đó của kèo chấp bóng đá hôm nay sẽ luôn được lưu trữ nội tuyến và không được nén.Mở rộngChỉ định điều đó Hệ thống trước tiên sẽ cố gắng nén kèo chấp bóng đá hôm nay giá trị dữ liệu dài và sẽ chuyển giá trị ra khỏi hàng bảng chính nếu nó vẫn còn dài.Bên ngoàicho phép giá trị 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. (Dữ liệu Các mục với chiến lược lưu trữ này vẫn có thể được chuyển ra khỏi bảng chính nếu không có cách nào khác để làm cho kèo chấp bóng đá hôm nay hàng phù hợp, nhưng chúng sẽ được giữ trong bảng chính kèo chấp bóng đá hôm nay cách tốt hơnmở rộngvàbên ngoàiCác mục.)
Giá trị mặc định có thể được chỉ đị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à kèo chấp bóng đá hôm nay cái gì đó khác với giá trị null. Chỉ định mặc định vớimặc địnhTừ khóa. (kèo chấp bóng đá hôm nay mặc định như vậy có thể là được ghi đè bởi kèo chấp bóng đá hôm nay rõ ràngmặc địnhmệnh đề được gắn vào kèo chấp bóng đá hôm nay cột cụ thể.)
Để chỉ ra rằng một kèo chấp bóng đá hôm nay là một mảng, chỉ định kèo chấp bóng đá hôm nay của các phần tử mảng bằng cách sử dụngElementkhóa từ. Ví dụ: để xác định kèo chấp bóng đá hôm nay loạt các số nguyên 4 byte (INT4), Chỉ địnhElement = int4. Thông tin chi tiết về các kèo chấp bóng đá hôm nay 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 kèo chấp bóng đá hôm nay này,Delimitercó thể được đặt thành kèo chấp bóng đá hôm nay cụ thể tính cách. 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 chấp bóng đá hôm nay phần tử mảng, không phải kèo chấp bóng đá hôm nay mảng.
Bất cứ khi nào một kèo chấp bóng đá hôm nay dữ liệu cơ sở do người dùng định nghĩa,POSTGRESQLTự động tạo một kèo chấp bóng đá hôm nay mảng liên quan, có tên bao gồm Tên của kèo chấp bóng đá hôm nay cơ sở được chuẩn bị với một dấu gạch dưới. Trình phân tích cú pháp hiểu quy ước đặt tên này và dịch các yêu cầu cho Các cột kèo chấp bóng đá hôm nayfoo []vào các yêu cầu cho kèo chấp bóng đá hôm nay_foo. Các điều khoản ngầm được tạo ra kèo chấp bóng đá hôm nay mảng là độ dài thay đổi và sử dụng đầu vào tích hợp và Chức năng đầu ramảng_invàArray_out.
Bạn có thể hỏi kèo chấp bóng đá hôm nay cách hợp lý lý do tại sao cóElementtùy chọn, nếu hệ thống làm cho đúng kèo chấp bóng đá hôm nay mảng tự động. Trường hợp duy nhất mà nó hữu ích cho sử dụngElementlà khi bạn đang tạo ra một kèo chấp bóng đá hôm nay có độ dài cố định xảy ra là một mảng của một Số thứ 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 cứ hoạt động nào bạn dự định cung cấp cho kèo chấp bóng đá hôm nay dưới dạng trọn. Ví dụ: gõtêncho phép nó cấu thànhcharCác yếu tố cần truy cập cách này. A 2-Dđiểmkèo chấp bóng đá hôm nay có thể cho phép hai số thành phần của nó được truy cập nhưđiểm [0]vàđiểm [1]. Lưu ý rằng cơ sở này chỉ hoạt động cho các kèo chấp bóng đá hôm nay có độ dài cố định có Mẫu bên trong chính xác là một chuỗi có độ dài cố định giống hệt nhau Cánh đồng. Một kèo chấp bóng đá hôm nay độ dài biến 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ử (tức là, điều này rõ ràng là sai nhưng nó Quá muộn để thay đổi nó), đăng ký mảng có độ dài cố định Các kèo chấp bóng đá hôm nay bắt đầu từ 0, thay vì từ một Mảng độ dài biến.
Tên (tùy chọn Lược đồ theo trình độ) của một kèo chấp bóng đá hôm nay tạo.
Tên của kèo chấp bóng đá hôm nay thuộc tính (cột) cho tổng hợp kiểu.
Tên của một kèo chấp bóng đá hôm nay dữ liệu hiện có để trở thành một cột của kèo chấp bóng đá hôm nay tổng hợp.
Tên của hàm chuyển đổi dữ liệu từ Biểu mẫu văn bản bên ngoài của kèo chấp bóng đá hôm nay sang dạng nội bộ của nó.
Tên của hàm chuyển đổi dữ liệu từ Biểu mẫu nội bộ của kèo chấp bóng đá hôm nay sang dạng văn bản bên ngoài của nó.
26057_26167
Tên của hàm chuyển đổi dữ liệu từ Biểu mẫu nội bộ của kèo chấp bóng đá hôm nay sang dạng nhị phân bên ngoài của nó.
Tên của kèo chấp bóng đá hôm nay hàm thực hiện thống kê Phân tích cho kiểu dữ liệu.
Một hằng số số chỉ định độ dài tính theo byte của Đại diện nội bộ của kèo chấp bóng đá hôm nay mới. Mặc định giả đị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 như đượ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ộng,, hoặcchính; Mặc định làtrơn.
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.
kèo chấp bóng đá hôm nay được tạo là một mảng; Điều này chỉ định kèo chấp bóng đá hôm nay của các phần tử mảng.
ký tự phân cách được sử dụng giữa các giá trị trong mảng được làm từ kèo chấp bóng đá hôm nay này.
Tên kèo chấp bóng đá hôm nay do người dùng xác định không thể bắt đầu bằng dấu gạch dưới tính cách (_) và chỉ có thể là 62 ký tự dài (hoặc nói chungĐược đặt tên- 2, thay vìĐược đặt tên- 1 ký tự cho phép khác tên). Tên tên bắt đầu với dấu gạch dưới được dành cho Tên kèo chấp bóng đá hôm nay mảng được tạo bên trong.
28690_29162"Secret"Thông tin sẽ được đượ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.2, cú phápTạo kèo chấp bóng đá hôm naytênKhông tồn tại. Cách tạo Một kèo chấp bóng đá hôm nay cơ sở mới là tạo chức năng đầu vào của nó trước. Trong này tiếp cận,PostgreSQL29585_30121
inPostgreSQLPhiên bản trước 7.3, theo thông lệ để tránh tạo một kèo chấp bóng đá hôm nay vỏ, bằng cách Thay thế các tham chiếu chuyển tiếp của các hàm thành tên kèo chấp bóng đá hôm nay bằng Kiểu mẫu của người giữ chỗOpaque. ThecstringĐối số và kết quả cũng phải được tuyên bố làOpaqueTrước 7.3. ĐẾN Hỗ trợ tải các tệp kết xuất cũ,kèo chấp bóng đá hôm nay KIỂUSẽ chấp nhận các hàm I/O được khai báo bằng cách sử dụngOpaque, nhưng nó sẽ đưa ra một thông báo và thay đổi Khai báo chức năng để sử dụng đúng kèo chấp bóng đá hôm nay.
Ví dụ này tạo ra một kèo chấp bóng đá hôm nay tổng hợp và sử dụng nó trong một Định nghĩa chức năng:
30973_31124
Ví dụ này kèo chấp bóng đá hôm nay ra kiểu dữ liệu cơ sởBox31203_31251
Tạo hộp kèo chấp bóng đá hôm nay; 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 kèo chấp bóng đá hôm nay ( 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à kèo chấp bóng đá hôm nay mảng bốnfloat4Các yếu tố, chúng ta có thể Thay vào đó sử dụng
Tạo hộp kèo chấp bóng đá hôm nay ( InterlitalLight = 16, Input = my_box_in_function, Output = my_box_out_function, Phần tử = float4 );
sẽ cho phép các số thành phần của giá trị hộp Truy cập bằng cách đăng ký. Nếu không thì kèo chấp bóng đá hôm nay hành xử giống như trước.
Ví dụ này tạo ra một kèo chấp bóng đá hôm nay đối tượng lớn và sử dụng nó trong a Định nghĩa bảng:
Tạo kèo chấp bóng đá hôm nay 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, đang ởPhần 33.11.
this32656_32669Lệnh làPostgreSQLPhần mở rộng. Có kèo chấp bóng đá hôm nayTạo kèo chấp bóng đá hôm naycâu lệnh trongSQLTiêu chuẩn hơn là chi tiết khác nhau.