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
9379_9450
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

46.3. Giai đoạn kèo bóng đá hôm nay và ngày mai

TheGiai đoạn kèo bóng đá hôm nay và ngày maibao gồm hai Phần:

  • Thekèo bóng đá hôm nay và ngày maiđược xác định tronggram.yScan.lIS Được xây dựng bằng Công cụ UNIXBisonFlex.

  • TheQuy trình chuyển đổikhông sửa đổi và tăng cường cho các cấu trúc dữ liệu được trả về bởi trình kèo bóng đá hôm nay và ngày mai.

46.3.1. Trình kèo bóng đá hôm nay và ngày mai

Trình kèo bóng đá hôm nay và ngày mai phải kiểm tra chuỗi truy vấn (đến như đơn giản văn bản) cho cú pháp hợp lệ. Nếu cú ​​pháp đúng aparse câyđược xây dựng và bàn giao; nếu không thì một lỗi được trả về. Trình kèo bóng đá hôm nay và ngày mai và lexer được triển khai bằng cách sử dụng các công cụ UNIX nổi tiếngBisonFlex.

TheLexerđược xác định trong tệpScan.lvà chịu trách nhiệm nhận dạngĐịnh danh, TheSQL từ khóavv. Đối với mọi từ khóa hoặc định danh được tìm thấy, Mộtmã thông báođược tạo và trao cho trình kèo bóng đá hôm nay và ngày mai.

Trình kèo bóng đá hôm nay và ngày mai được xác định trong tệpgram.yvà bao gồm một tập hợpQuy tắc ngữ kèo bóng đá hôm nay và ngày maiActionđược thực thi bất cứ khi nào một quy tắc được sa thải. Mã của các hành động (thực sự là mã C) được sử dụng để xây dựng cây kèo bóng đá hôm nay và ngày mai.

TệpScan.lđược chuyển đổi thành C Tệp nguồnScan.cSử dụng chương trìnhFlexgram.yđược chuyển đổi thànhgram.cSử dụngBison. Sau khi những biến đổi này đã được thực hiện Đặt một trình biên dịch C bình thường có thể được sử dụng để tạo trình kèo bóng đá hôm nay và ngày mai. Không bao giờ thực hiện bất kỳ thay đổi nào đối với các tệp c được tạo vì chúng sẽ ghi đè vào lần tiếp theoFlexhoặcBisonđược gọi.

Lưu ý:Các biến đổi và tổng hợp được đề cập là thường được thực hiện tự động bằng cách sử dụngMakefilesĐược vận chuyển vớiPostgreSQLkèo bóng đá hôm nay và ngày mai phối nguồn.

Một mô tả chi tiết vềBisonhoặc các quy tắc ngữ kèo bóng đá hôm nay và ngày mai được đưa ra tronggram.ysẽ vượt quá phạm vi của bài viết này. Có nhiều sách và tài liệu liên quan đếnFlexBison. Bạn nên quen thuộc vớiBisonTrước khi bạn bắt đầu học tập Ngữ kèo bóng đá hôm nay và ngày mai được đưa ra tronggram.yNếu không bạn sẽ không hiểu điều gì xảy ra ở đó.

46.3.2. Quá trình chuyển đổi

Giai đoạn kèo bóng đá hôm nay và ngày mai tạo một cây phân tích chỉ bằng cách sử dụng các quy tắc cố định về cấu trúc cú pháp của SQL. Nó không thực hiện bất kỳ tra cứu nào trong các danh mục hệ thống, do đó không có khả năng để hiểu Các ngữ nghĩa chi tiết của các hoạt động được yêu cầu. Sau Trình kèo bóng đá hôm nay và ngày mai hoàn thành,14012_14036lấy cây được người kèo bóng đá hôm nay và ngày mai làm đầu vào và Giải thích ngữ nghĩa có cần phải hiểu bảng nào không, Các chức năng và toán tử được tham chiếu bởi truy vấn. Dữ liệu Cấu trúc được xây dựng để thể hiện thông tin này được gọi làTruy vấn cây.

Lý do tách kèo bóng đá hôm nay và ngày mai thô với kèo bóng đá hôm nay và ngày mai ngữ nghĩa là Tra cứu danh mục hệ thống đó chỉ có thể được thực hiện trong một giao dịch, và chúng tôi không muốn bắt đầu một giao dịch ngay lập tức nhận một chuỗi truy vấn. Giai đoạn kèo bóng đá hôm nay và ngày mai thô là đủ để Xác định các lệnh điều khiển giao dịch (bắt đầu, rollback, v.v.), và Chúng sau đó có thể được thực hiện chính xác mà không cần kèo bóng đá hôm nay và ngày mai thêm. Khi chúng ta biết rằng chúng ta đang xử lý một truy vấn thực tế (chẳng hạn nhưChọnhoặcCập nhật), bắt đầu giao dịch là ổn nếu chúng ta chưa có trong một. Chỉ sau đó, quá trình chuyển đổi mới có thể là được viện dẫn.

Cây truy vấn được tạo bởi quy trình chuyển đổi là về mặt cấu trúc tương tự như cây kèo bóng đá hôm nay và ngày mai thô ở hầu hết các nơi, nhưng nó Có nhiều khác biệt chi tiết. Ví dụ: Afunccallnút trong cây kèo bóng đá hôm nay và ngày mai Một cái gì đó trông giống như một cuộc gọi chức năng. Điều này có thể được chuyển đổi thành mộtfuncexprhoặcAggrefnút tùy thuộc kèo bóng đá hôm nay và ngày maio việc Tên được tham chiếu hóa ra là một hàm thông thường hoặc Hàm tổng hợp. Ngoài ra, thông tin về các loại dữ liệu thực tế của các cột và kết quả biểu thức được thêm kèo bóng đá hôm nay và ngày maio cây truy vấn.