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

10.2. Người vận kèo bóng đá euro

toán tử cụ thể được tham chiếu bởi biểu thức toán tử được xác định bằng cách sử dụng quy trình sau. Lưu ý rằng quy trình này bị ảnh hưởng gián tiếp bởi sự ưu tiên của kèo bóng đá euro toán tử liên quan, vì điều đó sẽ xác định biểu hiện phụ nào được coi là đầu vào của kèo bóng đá euro toán tử.Phần 4.1.6Để biết thêm thông tin.

Độ phân giải kèo bóng đá euro toán tử

  1. Chọn kèo bóng đá euro toán tử được xem xét từpg_operatorDanh mục hệ thống. Nếu tên toán tử không có trình độ học sinh đã được sử dụng (trường hợp thông thường), kèo bóng đá euro toán tử được xem xét là những người có tên và số đối số phù hợp có thể nhìn thấy trong đường dẫn tìm kiếm hiện tại (xemPhần 5.9.3). Nếu một tên toán tử đủ điều kiện được đưa ra, chỉ xem xét kèo bóng đá euro toán tử trong lược đồ được chỉ định.

    1. Nếu đường dẫn tìm kiếm tìm thấy nhiều toán tử với các kèo bóng đá euro đối số giống hệt nhau, chỉ có kèo bóng đá euro xuất hiện sớm nhất trong đường dẫn được xem xét. Các toán tử với các kèo bóng đá euro đối số khác nhau được xem xét trên một chân bình đẳng bất kể vị trí đường dẫn tìm kiếm.

  2. Kiểm tra nhà điều kèo bóng đá euro chấp nhận chính xác các loại đối số đầu vào. Nếu một người tồn tại (chỉ có thể có một trận đấu chính xác trong tập hợp các toán tử được xem xét), hãy sử dụng nó.[8](không phải điển hình), bất kỳ toán tử nào được tìm thấy trong một lược đồ cho phép người dùng không tin tưởng tạo đối tượng. Trong kèo bóng đá euro tình huống như vậy, kèo bóng đá euro đối số diễn viên để buộc một trận đấu chính xác.

    1. Nếu một đối số của việc gọi toán tử nhị phân là củakhông xác địnhkèo bóng đá euro, sau đó giả sử nó giống như kèo bóng đá euro đối số khác cho kiểm tra này. Những lời mời liên quan đến haikhông xác địnhĐầu vào hoặc toán tử Unary cókhông xác địnhĐầu vào, sẽ không bao giờ tìm thấy một trận đấu ở bước này.

    2. Nếu một đối số của việc gọi toán tử nhị phân là củakhông xác địnhkèo bóng đá euro và kèo bóng đá euro khác thuộc kèo bóng đá euro miền, kiểm tra tiếp theo để xem có toán tử chấp nhận chính xác kèo bóng đá euro cơ sở của miền ở cả hai bên không; Nếu vậy, hãy sử dụng nó.

  3. Tìm kiếm trận đấu tốt nhất.

    1. kèo bóng đá euro bỏ các toán tử ứng viên mà các kèo bóng đá euro đầu vào không khớp và không thể được chuyển đổi (sử dụng chuyển đổi ngầm) để khớp.không xác địnhnghĩa đen được coi là có thể chuyển đổi thành bất cứ điều gì cho mục đích này. Nếu chỉ còn một ứng cử viên, hãy sử dụng nó;

    2. Nếu bất kỳ đối số đầu vào nào thuộc loại miền, hãy coi nó là loại cơ sở của miền cho tất cả các bước tiếp theo. Điều này đảm bảo rằng các miền hoạt động giống như các loại cơ sở của chúng cho mục đích phân giải điều kèo bóng đá euro mơ hồ.

    3. Chạy qua tất cả các ứng cử viên và giữ những người có những trận đấu chính xác nhất trên các kèo bóng đá euro đầu vào. Giữ tất cả các ứng cử viên nếu không có trận đấu chính xác.

    4. Chạy qua tất cả các ứng cử viên và giữ những người chấp nhận các kèo bóng đá euro ưa thích (thuộc kèo bóng đá euro kèo bóng đá euro dữ liệu đầu vào) ở hầu hết các vị trí mà sẽ cần chuyển đổi kèo bóng đá euro. Giữ tất cả các ứng cử viên nếu không chấp nhận các kèo bóng đá euro ưa thích.

    5. Nếu có bất kỳ đối số đầu vào nào làkhông xác định, Kiểm tra các kèo bóng đá euro kèo bóng đá euro được chấp nhận tại các vị trí đối số đó bởi các ứng cử viên còn lại. Ở mỗi vị trí, chọnchuỗiDanh mục nếu có ứng viên nào chấp nhận danh mục đó. .

    6. Nếu có cả haikhông xác địnhvà các đối số kiểu đã biết, và tất cả các đối số kiểu đã biết có cùng kèo bóng đá euro, giả sử rằngkhông xác địnhĐối số cũng thuộc kèo bóng đá euro đó và kiểm tra ứng viên nào có thể chấp nhận kèo bóng đá euro đó tạikhông xác định-Argument vị trí. Nếu chính xác một ứng cử viên vượt qua bài kiểm tra này, hãy sử dụng nó.

Một số ví dụ theo sau.

Ví dụ 10.1. Độ phân giải kèo bóng đá euro toán tử gốc

Chỉ có một toán tử gốc (tiền tố|/) được xác định trong danh mục tiêu chuẩn và nó có một đối số của kèo bóng đá euroDouble Precision. Máy quét gán một kèo bóng đá euro ban đầuSố nguyênĐối với đối số trong biểu thức truy vấn này:

Chọn |/ 40 làm "căn bậc hai của 40";

Vì vậy, trình phân tích cú pháp thực hiện chuyển đổi kèo bóng đá euro trên toán hạng và truy vấn tương đương với:

Chọn |/ Cast (40 là độ chính xác kép) là "căn bậc hai của 40";

Ví dụ 10.2. Chuỗi phân giải kèo bóng đá euro toán tử nối

Cú pháp giống như chuỗi được sử dụng để làm việc với các loại chuỗi và để làm việc với các loại mở rộng phức tạp. Các chuỗi có loại không xác định được khớp với các ứng cử viên vận kèo bóng đá euro có khả năng.

Một ví dụ với một đối số không xác định:

Chọn văn bản 'ABC' || 'def' là "văn bản và không xác định";

Trong trường hợp này, trình phân tích cú pháp có vẻ xem có toán tử đang sử dụngTextcho cả hai đối số. Vì có, nó giả định rằng đối số thứ hai nên được hiểu là kèo bóng đá euroText.

Đây là sự kết hợp của hai giá trị của các kèo bóng đá euro không xác định:

Chọn 'ABC' || 'def' là "không xác định";

Trong trường hợp này không có gợi ý ban đầu cho kèo bóng đá euro nào sử dụng, vì không có kèo bóng đá euro nào được chỉ định trong truy vấn. Vì vậy, trình phân tích cú pháp tìm kiếm tất cả các toán tử ứng cử viên và thấy rằng có các ứng cử viên chấp nhận cả đầu vào kèo bóng đá euro chuỗi và chuỗi bit.Text, được sử dụng làm kèo bóng đá euro cụ thể để giải quyết các chữ không xác định như.


Ví dụ 10.3. Độ phân giải kèo bóng đá euro toán tử giá trị và phủ định tuyệt đối

ThePostgreSQLDanh mục toán tử có một số mục cho toán tử tiền tố@, tất cả đều thực hiện các hoạt động giá trị tuyệt đối cho các kèo bóng đá euro dữ liệu số khác nhau. Một trong những mục này là dành cho kèo bóng đá eurofloat8, kèo bóng đá euro được ưa thích trong danh mục số. Vì thế,PostgreSQLSẽ sử dụng mục nhập đó khi phải đối mặt vớikhông xác địnhĐầu vào:

Chọn @ '-4.5' là "abs";

Ở đây hệ thống đã ngầm giải quyết theo nghĩa đen chưa biết là kèo bóng đá eurofloat8Trước khi áp dụng toán tử đã chọn. Chúng ta có thể xác minh rằngfloat8và không phải một số kèo bóng đá euro khác đã được sử dụng:

Chọn @ '-4.5e500' là "abs";

Mặt khác, toán tử tiền tố~(phủ định bitwise) chỉ được xác định cho các kèo bóng đá euro dữ liệu số nguyên, không phải chofloat8. Vì vậy, nếu chúng ta thử một trường hợp tương tự với~, Chúng tôi nhận được:

Chọn ~ '20' làm "phủ định";

Điều này xảy ra vì hệ thống không thể quyết định trong số một số có thể~Người vận kèo bóng đá euro nên được ưu tiên. Chúng tôi có thể giúp nó với một diễn viên rõ ràng:

Chọn ~ cast ('20 'là int8) là "phủ định";

Ví dụ 10.4. Độ phân giải kèo bóng đá euro toán tử bao gồm mảng

Đây là một ví dụ khác về việc giải quyết một toán tử với một đầu vào đã biết và một đầu vào không xác định:

chọn mảng [1,2] <@ '1,2,3' là "là tập hợp con";

ThePostgreSQLDanh mục toán tử có một số mục cho toán tử infix<@, nhưng hai người duy nhất có thể chấp nhận một mảng số nguyên ở phía bên trái là bao gồm mảng (AnyArray <@ AnyArray) và bao gồm phạm vi (AnyEuity <@ Anyrange). Vì không có kèo bóng đá euro giả thuyết đa hình này (xemPhần 8.21) được coi là ưa thích, trình phân tích cú pháp không thể giải quyết sự mơ hồ trên cơ sở đó. Tuy nhiên,Bước 3.fNói với nó giả sử rằng chữ không xác định có cùng kèo bóng đá euro với đầu vào khác, nghĩa là mảng số nguyên. Bây giờ chỉ có một trong hai toán tử có thể khớp, vì vậy bao gồm mảng được chọn.


Ví dụ 10.5. Toán tử tùy chỉnh trên một kèo bóng đá euro miền

Người dùng đôi khi cố gắng khai báo các nhà khai thác chỉ áp dụng cho một kèo bóng đá euro tên miền. Điều này là có thể nhưng gần như không hữu ích như nó có vẻ, bởi vì các quy tắc phân giải toán tử được thiết kế để chọn các toán tử áp dụng cho kèo bóng đá euro cơ sở của miền.

Tạo tên miền mytext dưới dạng kiểm tra văn bản (...);

Truy vấn này sẽ không sử dụng toán tử tùy chỉnh. Trình phân tích cú pháp trước tiên sẽ xem nếu cómytext = mytexttoán tử (Bước 2.a), mà không có; Sau đó, nó sẽ xem xét kèo bóng đá euro cơ sở của miềnText, và xem cóText = Texttoán tử (Bước 2.B), có; Vì vậy, nó giải quyếtkhông xác định-Type theo nghĩa đen asTextvà sử dụngText = Texttoán tử. Cách duy nhất để sử dụng toán tử tùy chỉnh là sử dụng rõ ràng theo nghĩa đen:

Chọn * từ MyTable WHERE Val = text 'foo';

sao chomytext = Texttoán tử được tìm thấy ngay theo quy tắc chính xác. Nếu đạt được các quy tắc phù hợp nhất, chúng tích cực phân biệt đối xử với các nhà khai thác trên các kèo bóng đá euro miền.


Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không phù hợpMẫu nàyĐể báo cáo vấn đề tài liệu.