Postgresql 8.3.23 Tài liệu | ||||
---|---|---|---|---|
prev | Backward nhanh | Chương 10. kèo bóng đá c1 chuyển đổi | Chuyển tiếp nhanh | Tiếp theo |
SQL9791_9930PostgreSQLCó hệ thống loại mở rộng đó là tổng quát và linh hoạt hơn nhiều so với kèo bóng đá c1 khácSQLtriển khai. Do đó, hầu hết kèo bóng đá c1 loại Hành vi chuyển đổi trongPostgreSQLđược điều chỉnh bởi kèo bóng đá c1 quy tắc chung thay vì bởiad hocHeuristic. Điều này cho phép kèo bóng đá c1 biểu thức loại hỗn hợp có ý nghĩa ngay cả với kèo bóng đá c1 loại do người dùng xác định.
ThePostgreSQLMáy quét/trình phân tích cú pháp Chia kèo bóng đá c1 yếu tố từ vựng chỉ thành năm loại cơ bản: số nguyên, số không số nguyên, chuỗi, định danh và khóa từ. Hằng số của hầu hết kèo bóng đá c1 loại không phải là số được phân loại đầu tiên như dây. TheSQLNgôn ngữ Định nghĩa cho phép chỉ định tên kèo bóng đá c1 bằng chuỗi và cái này cơ chế có thể được sử dụng trongPostgreSQLĐể khởi động trình phân tích cú pháp xuống đường dẫn chính xác. Ví dụ: truy vấn
chọn văn bản 'gốc' là "nhãn", điểm '(0,0)' làm "giá trị"; Nhãn | giá trị --------+------- Nguồn gốc | (0,0) (1 hàng)
Có hai hằng số theo nghĩa đen, kèo bóng đá c1Textvàđiểm. Nếu một kèo bóng đá c1 không được chỉ định cho một Chuỗi theo nghĩa đen, sau đó là kèo bóng đá c1 trình giữ chỗkhông xác địnhđược gán ban đầu, sẽ được giải quyết trong kèo bóng đá c1 giai đoạn sau như được mô tả dưới đây.
Có bốn cơ bảnSQLCấu trúc yêu cầu kèo bóng đá c1 khác biệt Quy tắc chuyển đổi trongPostgreSQLphân tích cú pháp:
Phần lớnPostgreSQLLoại hệ thống được xây dựng xung quanh một bộ chức năng phong phú. kèo bóng đá c1 chức năng có thể có một hoặc nhiều đối số. TừPostgreSQLgiấy phép quá tải chức năng, tên chức năng không xác định duy nhất kèo bóng đá c1 chức năng được gọi; trình phân tích cú pháp phải chọn đúng chức năng dựa trên kèo bóng đá c1 loại dữ liệu của kèo bóng đá c1 đối số được cung cấp.
PostgreSQLCho phép Biểu thức với tiền tố và postfix unary (một đối số) kèo bóng đá c1 nhà khai thác, cũng như kèo bóng đá c1 nhà khai thác nhị phân (hai đối số). Giống kèo bóng đá c1 chức năng, người vận hành có thể bị quá tải và như vậy Sự cố chọn toán tử đúng tồn tại.
SQL Chènvà12657_12665Câu lệnh đặt kết quả của kèo bóng đá c1 biểu thức vào một bảng. kèo bóng đá c1 biểu thức trong câu lệnh phải được khớp với, và có lẽ được chuyển đổi thành, kèo bóng đá c1 loại mục tiêu kèo bóng đá c1 cột.
Vì tất cả kèo bóng đá c1 kết quả truy vấn từ một liên minhChọnCâu lệnh phải xuất hiện trong một bộ duy nhất
của kèo bóng đá c1 cột, kèo bóng đá c1 loại kết quả của mỗiChọnmệnh đề phải được khớp với nhau và
chuyển đổi thành một bộ đồng đều. Tương tự, kết quả
Biểu thức của AcaseXây dựng
phải được chuyển đổi thành một kèo bóng đá c1 chung đểcaseBiểu thức nói chung có một
kèo bóng đá c1 đầu ra. Tương tự như vậy chomảngCấu trúc và chovĩ đại nhất
vàÍt nhất
chức năng.
Danh mục hệ thống lưu trữ thông tin về chuyển đổi nào, gọi điệnCasts, giữa kèo bóng đá c1 loại dữ liệu là hợp lệ, và làm thế nào để thực hiện kèo bóng đá c1 chuyển đổi đó. kèo bóng đá c1 diễn viên bổ sung có thể được người dùng thêm vào vớiTạo Cast14058_14239
Một heuristic bổ sung được cung cấp trong trình phân tích cú pháp để cho phép đoán tốt hơn về hành vi thích hợp choSQLkèo bóng đá c1 loại tiêu chuẩn. Có một số cơ bảnkèo bóng đá c1 danh mụcXác định:Boolean, Số, chuỗi, BitString, DateTime, Timespan, hình học, mạng, và Người dùng xác định. Mỗi danh mục, ngoại trừ người dùng do người dùng định nghĩa, có một hoặc nhiềukèo bóng đá c1 loại ưu tiên14912_15290
Tất cả kèo bóng đá c1 quy tắc chuyển đổi loại được thiết kế với một số nguyên tắc trong tâm trí:
Chuyển đổi ngầm không bao giờ có điều đáng ngạc nhiên hoặc Kết quả không thể đoán trước.
kèo bóng đá c1 loại do người dùng xác định, trong đó trình phân tích cú pháp không cóA PrioriKiến thức, nên là"cao hơn"Trong phân cấp loại. TRONG biểu thức loại hỗn hợp, kèo bóng đá c1 loại bản địa sẽ luôn luôn chuyển đổi thành loại do người dùng xác định (tất nhiên, chỉ khi chuyển đổi là cần thiết).
Các loại do người dùng xác định không liên kèo bóng đá c1. Hiện nay,POSTGRESQLKhông có thông tin có sẵn cho nó về mối kèo bóng đá c1 hệ giữa các loại, khác với các heuristic được mã hóa cứng cho các loại tích hợp và các mối kèo bóng đá c1 hệ tiềm ẩn dựa trên các chức năng có sẵn và diễn viên.
Không nên có thêm chi phí từ trình phân tích cú pháp hoặc Người thực thi nếu một truy vấn không cần chuyển đổi loại ngầm. Nghĩa là, nếu một truy vấn được xây dựng tốt và kèo bóng đá c1 loại đã khớp với nhau, sau đó truy vấn nên tiến hành mà không cần chi tiêu thêm thời gian trong trình phân tích cú pháp và không giới thiệu không cần thiết kèo bóng đá c1 cuộc gọi chuyển đổi ngầm vào truy vấn.
Ngoài ra, nếu một truy vấn thường yêu cầu chuyển đổi cho một chức năng và nếu sau đó người dùng xác định một chức năng với kèo bóng đá c1 loại đối số chính xác, trình phân tích cú pháp nên sử dụng chức năng mới này và sẽ không còn làm Chuyển đổi bằng hàm cũ.