Trong khi thực hiện một dự án cho một công ty ở Moscow, Nga, Tôi đã gặp phải vấn đề mà PostgreSQL không có sự hỗ trợ Bảng chữ cái quốc gia. Sau khi tìm kiếm các cách giải quyết có thể quyết định phát triển sự hỗ trợ của địa kèo chấp bóng đá hôm nay. Tôi không phải là một chương trình C Nhưng đã có một số kinh nghiệm với lập trình địa kèo chấp bóng đá hôm nay khi tôi làm việc với Perl (gỡ lỗi) và cái nhìn thoáng qua. Sau vài ngày đào thông quaPostgresCây nguồn i đã thực hiện các cuộc điều hành rất nhỏ cho SRC/Backend/Utils/ADT/Varlena.C và SRC/phụ trợ/main/main.c và có những gì tôi cần! Tôi chỉ hỗ trợ vìlc_ctypevàlc_collate, nhưng sau nàylc_monetaryđã được thêm vào bởi những người khác. Tôi có nhiều tin nhắn Từ những người về bản vá này, vì vậy tôi quyết định gửi nó cho các nhà phát triển và (thật ngạc nhiên) nó được kết hợp vàoPostgresPhân phối.Lưu ý:Được viết bởi Oleg Bartunov. Nhìn thấyOleg's Trang webĐể biết thêm thông tin về địa kèo chấp bóng đá hôm nay và tiếng Nga Hỗ trợ ngôn ngữ.
Mọi người thường phàn nàn rằng kèo chấp bóng đá hôm nay không làm việc cho họ. Ở đó là một số sai lầm phổ biến:
Không định cấu hình đúng kèo chấp bóng đá hôm nay trước khi biên dịch. Bạn Phải chạy Cấu hình với tùy chọn --Enable-Locale để bật Locale ủng hộ. Không thiết lập môi trường chính xác khi bắt đầu Bưu điện. Bạn phải xác định các biến môi trườnglc_ctypevàLC_CollateTrước khi chạy bưu điện vì phụ trợ có được thông tin về địa kèo chấp bóng đá hôm nay từ môi trường. Tôi sử dụng script shell sau (RunPostgres):
#!/Bin/sh Xuất LC_CTYPE = KOI8-R Xuất LC_Collate = KOI8-R PostMaster -B 1024 -S -D/usr/local/pgsql/data/-o '-fe'và chạy nó từ rc.local as
/bin/su - postgres -c "/home/postgres/runpostgres"
Hỗ trợ địa kèo chấp bóng đá hôm nay bị hỏng trong hệ điều hành (ví dụ: hỗ trợ địa kèo chấp bóng đá hôm nay trong LIBC dưới Linux nhiều lần đã thay đổi và điều này gây ra Rất nhiều vấn đề). Perl mới nhất cũng có sự hỗ trợ của địa kèo chấp bóng đá hôm nay và nếu Locale bị hỏngperl -vsẽ phàn nàn một cái gì đó như:
8: 17 [MIRA]: ~/www/postgres setenv lc_ctype not_exist 8:18 [Mira]: ~/www/postgres perl -v Perl: Cảnh báo: Đặt địa kèo chấp bóng đá hôm nay không thành công. Perl: CẢNH BÁO: Vui lòng kiểm tra xem cài đặt địa kèo chấp bóng đá hôm nay của bạn: Lc_all = (unset), Lc_ctype = "not_exist", Lang = (Unset) được hỗ trợ và cài đặt trên hệ thống của bạn. Perl: CẢNH BÁO: rơi trở lại địa kèo chấp bóng đá hôm nay tiêu chuẩn ("C").
Vị trí sai của các tệp địa kèo chấp bóng đá hôm nay! Các vị trí có thể bao gồm:/usr/lib/kèo chấp bóng đá hôm nay(Linux, Solaris),/usr/share/kèo chấp bóng đá hôm nay(Linux),/usr/lib/nls/loc(Dux 4.0). Kiểm trangười đàn ông địa kèo chấp bóng đá hôm nayĐể tìm vị trí chính xác. Dưới Linux tôi đã làm một liên kết tượng trưng giữa/usr/lib/kèo chấp bóng đá hôm nayvà/usr/share/kèo chấp bóng đá hôm nayĐể chắc chắn rằng LIBC tiếp theo sẽ không phá vỡ địa điểm của tôi.
Bạn có thể sử dụng ~* và đặt hàng bởi các toán tử cho các chuỗi chứa Nhân vật từ bảng chữ cái quốc gia. Người dùng không phải tiếng Anh chắc chắn cần điều đó. Nếu bạn không sử dụng công cụ địa kèo chấp bóng đá hôm nay, chỉ cần xác định Biến uses_locale.
Có một nhược điểm rõ ràng của việc sử dụng kèo chấp bóng đá hôm nay - Tốc độ của nó! Vì thế, Chỉ sử dụng kèo chấp bóng đá hôm nay nếu bạn thực sự cần nó.