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 kèo bóng đá c1 đượ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
Tài liệu này dành cho phiên bản kèo bóng đá c1 được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong kèo bóng đá c1 phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

32.2. Đánh giá kèo bóng đá c1

Một số được cài đặt đúng và đầy đủ chức năngPostgreSQLCài đặt có thểFAILxông12070_12255diffSo sánh với các đầu ra được tạo ra trên hệ thống tham chiếu, do đó kết quả rất nhạy cảm với sự khác biệt của hệ thống nhỏ. Khi một bài kèo bóng đá c1 được báo cáo làkèo bóng đá c1 thành công, Luôn kèo bóng đá c1 sự khác biệt giữa kết quả thực tế và dự kiến; Bạn có thể thấy rằng sự khác biệt không đáng kể. Tuy nhiên, chúng tôi vẫn cố gắng duy trì các tệp tham chiếu chính xác trên tất cả các nền tảng được hỗ trợ, do đó có thể dự kiến ​​tất cả các thử nghiệm đều vượt qua.

Đầu ra thực tế của kèo bóng đá c1 thử nghiệm hồi quy có trong kèo bóng đá c1 tệp trongsrc/test/repress/kết quảThư mục. Tập lệnh kèo bóng đá c1 sử dụngdiffĐể so sánh từng tệp đầu ra với kèo bóng đá c1 đầu ra tham chiếu được lưu trữ trongSRC/TEST/THỰC HIỆN/Dự kiếnThư mục. Bất kỳ sự khác biệt nào được lưu để kèo bóng đá c1 của bạn trongsrc/test/repress/regression.diffs. .src/test/repress.)

Nếu bạn kèo bóng đá c1 thíchDiffTùy chọn được sử dụng theo mặc định, đặt biến môi trường, ví dụ. (Hoặc bạn có thể chạyDiffchính bạn, nếu bạn thích.)

Nếu vì lý do nào đó, một nền tảng cụ thể sẽ tạo rathất bạiHồiĐối với một thử nghiệm nhất định, nhưng kèo bóng đá c1 đầu ra thuyết phục bạn rằng kết quả là hợp lệ, bạn có thể thêm một tệp so sánh mới để im lặng báo cáo thất bại trong các lần chạy thử trong tương lai. Nhìn thấyPhần 32.3Để biết chi tiết.

32.2.1. Sự khác biệt về thông báo lỗi

Một số thử nghiệm hồi quy liên quan đến kèo bóng đá c1 giá trị đầu vào không hợp lệ. Thông báo lỗi có thể đến từPostgreSQLMã hoặc từ kèo bóng đá c1 thói quen hệ thống nền tảng máy chủ. Trong trường hợp sau, kèo bóng đá c1 thông điệp có thể khác nhau giữa kèo bóng đá c1 nền tảng, nhưng sẽ phản ánh thông tin tương tự. Những khác biệt trong tin nhắn sẽ dẫn đếnthất bạiKhănkèo bóng đá c1 hồi quy có thể được xác thực bằng cách kèo bóng đá c1.

32.2.2. Sự khác biệt địa phương

14916_15251

15257_15409làmdòng lệnh, ví dụ:

Làm cho kèo bóng đá c1 Lang = de_de.utf8

(Trình điều khiển kèo bóng đá c1 hồi quy không được giải quyếtLC_ALL, do đó, không hoạt động để chọn địa điểm bằng cách sử dụng biến đó.) Để không sử dụng locale, hoặc không đặt tất cả kèo bóng đá c1 biến môi trường liên quan đến địa phương (hoặc đặt chúng thànhC) hoặc sử dụng lời cầu khẩn đặc biệt sau:

Làm cho kèo bóng đá c1 NO_LOCALE = 1

Khi chạy kèo bóng đá c1 thử nghiệm chống lại cài đặt hiện có, thiết lập locale được xác định bằng cài đặt hiện có. Để thay đổi nó, hãy khởi tạo cụm cơ sở dữ liệu với một ngôn ngữ khác bằng cách chuyển kèo bóng đá c1 tùy chọn thích hợp choinitDB.

Nói chung, nên cố gắng chạy kèo bóng đá c1 thử nghiệm hồi quy trong thiết lập địa phương được muốn sử dụng, vì điều này sẽ thực hiện kèo bóng đá c1 phần mã liên quan đến địa phương và mã hóa sẽ thực sự được sử dụng trong sản xuất. Tùy thuộc vào môi trường hệ điều hành, bạn có thể bị lỗi, nhưng ít nhất bạn sẽ biết những hành vi cụ thể của địa phương sẽ mong đợi khi chạy kèo bóng đá c1 ứng dụng thực.

32.2.3. Sự khác biệt về ngày và thời gian

Hầu hết kèo bóng đá c1 kết quả ngày và giờ phụ thuộc vào môi trường múi giờ. kèo bóng đá c1 tệp tham chiếu được tạo cho múi giờPST8PDT(Berkeley, California), và sẽ có những thất bại rõ ràng nếu các bài kèo bóng đá c1 không chạy với cài đặt múi giờ đó. Trình điều khiển kèo bóng đá c1 hồi quy đặt biến môi trườngPGTZđếnPST8PDT, thường đảm bảo kết quả thích hợp.

32.2.4. Sự khác biệt về điểm nổi

Một số bài kèo bóng đá c1 liên quan đến tính toán số điểm nổi 64 bit (Double Precision) từ kèo bóng đá c1 cột bảng. Sự khác biệt trong kết quả liên quan đến kèo bóng đá c1 chức năng toán học củaDouble Precisionkèo bóng đá c1 cột đã được quan sát. Thefloat8Hình họcCác bài kèo bóng đá c1 đặc biệt dễ bị khác biệt nhỏ giữa các nền tảng hoặc thậm chí với các cài đặt tối ưu hóa trình biên dịch khác nhau. Việc so sánh nhãn cầu của con người là cần thiết để xác định ý nghĩa thực sự của những khác biệt này thường là 10 vị trí ở bên phải của điểm thập phân.

Một số hệ thống hiển thị trừ số 0 là-0, trong khi những người khác chỉ hiển thị0.

Một số lỗi tín hiệu hệ thống từpow ()exp ()khác với cơ chế được dự kiến ​​bởi hiện tạiPostgreSQLmã.

32.2.5. ROUS RATEDING CHUYỂN ĐỔI

Bạn có thể thấy sự khác biệt trong đó cùng một hàng được đầu ra theo một thứ tự khác với những gì xuất hiện trong tệp dự kiến. Trong hầu hết các trường hợp, điều này không phải là, nói đúng, một lỗi. Hầu hết các tập lệnh kèo bóng đá c1 hồi quy không quá tầm thường khi sử dụngĐặt hàng bởicho mỗi lầnChọn, và do đó, kèo bóng đá c1 thứ tự hàng kết quả của chúng không được xác định rõ theo thông số kỹ thuật SQL. Trong thực tế, vì chúng tôi đang xem xét kèo bóng đá c1 truy vấn tương tự được thực thi trên cùng một dữ liệu bởi cùng một phần mềm, chúng tôi thường nhận được cùng một thứ tự kết quả trên tất cả kèo bóng đá c1 nền tảng, vì vậy việc thiếuĐặt hàng bởikhông phải là vấn đề. Tuy nhiên, một số truy vấn thể hiện sự khác biệt đặt hàng đa nền tảng. Khi kèo bóng đá c1 đối với máy chủ đã được cài đặt, việc đặt hàng chênh lệch cũng có thể được gây ra bởi các cài đặt địa phương không cwork_memhoặc tham số chi phí kế hoạch.

Do đó, nếu bạn thấy sự khác biệt đặt hàng, thì đó kèo bóng đá c1 phải là điều đáng lo ngại, trừ khi truy vấn cóđặt hàng bởiKết quả của bạn đang vi phạm. Tuy nhiên, vui lòng báo cáo nó bằng mọi cách, để chúng tôi có thể thêm mộtĐặt hàng bởiĐối với truy vấn cụ thể đó để loại bỏ kèo bóng đá c1 có thậtHồithất bạixôngTrong kèo bóng đá c1 bản phát hành trong tương lai.

Bạn có thể tự hỏi tại sao chúng tôi không đặt hàng tất cả các truy vấn kèo bóng đá c1 hồi quy một cách rõ ràng để loại bỏ vấn đề này một lần và mãi mãi. Lý do là điều đó sẽ làm cho các bài kèo bóng đá c1 hồi quy ít hữu ích hơn, không nhiều hơn, vì chúng có xu hướng thực hiện các loại kế hoạch truy vấn tạo ra kết quả đã được loại trừ để loại trừ các loại không.

32.2.6. Độ sâu ngăn xếp kèo bóng đá c1 đủ

NếuLỗiKết quả kèo bóng đá c1 trong sự cố máy chủ tạichọn infinite_recureS ()Lệnh, điều đó có nghĩa là giới hạn của nền tảng về kích thước ngăn xếp quy trình nhỏ hơnMAX_STACK_DEPTHtham số chỉ ra. Điều này có thể được sửa bằng cách chạy máy chủ dưới giới hạn kích thước ngăn xếp cao hơn (4MB được khuyến nghị với giá trị mặc định làMAX_STACK_DEPTH). Nếu bạn kèo bóng đá c1 thể làm điều đó, một giải pháp thay thế là giảm giá trị củaMAX_STACK_DEPTH.

Trên kèo bóng đá c1 nền tảng hỗ trợgetRlImit (), máy chủ nên tự động chọn giá trị an toàn làMAX_STACK_DEPTH; Vì vậy, trừ khi bạn đã ghi đè thủ công cài đặt này, một lỗi của loại này là một lỗi báo cáo.

32.2.7. TheMạnhngẫu nhiênHồitest

Thengẫu nhiênTập lệnh kèo bóng đá c1 nhằm tạo ra kết quả ngẫu nhiên. Trong những trường hợp rất hiếm, điều này làm cho bài kèo bóng đá c1 hồi quy đó thất bại. Gõ:

Diff kết quả/ngẫu nhiên.out dự kiến/ngẫu nhiên.out

Chỉ nên tạo ra một hoặc một vài dòng khác biệt. Bạn không cần phải lo lắng trừ khi bài kèo bóng đá c1 ngẫu nhiên không liên tục.

32.2.8. Tham số cấu hình

Khi chạy kèo bóng đá c1 thử nghiệm chống lại cài đặt hiện có, một số cài đặt tham số không mặc định có thể khiến kèo bóng đá c1 thử nghiệm không thành công. Ví dụ: thay đổi kèo bóng đá c1 tham số nhưenable_seqscanhoặcenable_indexscanCó thể gây ra kèo bóng đá c1 thay đổi kế hoạch sẽ ảnh hưởng đến kết quả của kèo bóng đá c1 thử nghiệm sử dụngGiải thích.