ฉันจะบรรลุพฤติกรรมการเปรียบเทียบ Postgres แบบเดียวกันใน Linux เช่นเดียวกับใน Mac OS ได้อย่างไร

เมื่อสลับระหว่าง Mac OS (การพัฒนา) เป็น Linux (เซิร์ฟเวอร์ที่ใช้งานจริง) การจัดเรียงสำหรับ Postgres จะเปลี่ยนไปเนื่องจากการจัดเรียงใน Postgres ขึ้นอยู่กับการกำหนดค่าระบบปฏิบัติการพื้นฐาน

ฉันจะบรรลุพฤติกรรมการเปรียบเทียบ Postgres แบบเดียวกันกับที่ฉันมีใน Mac OS ได้อย่างไร

ฉันใช้ Postgres 9.2


person BestPractices    schedule 02.05.2013    source แหล่งที่มา
comment
เป็นเพียงฉันหรือเป็นความผิดพลาดครั้งใหญ่สำหรับ Postgres ที่จะไม่สรุปพฤติกรรมเฉพาะแพลตฟอร์มทั้งหมดในกรณีนี้และกรณีอื่นๆ   -  person Andy    schedule 17.01.2019


คำตอบ (2)


โลแคลบน OS X ใช้งานไม่ได้เพียงพอและโลแคลบน Linux (glibc) ไม่เพียงพอ ดังนั้นคุณจะประสบปัญหาในการแยกแยะให้สำเร็จ วิธีเดียวคือใช้ตัวส่วนร่วมที่ต่ำที่สุด ซึ่งก็คือภาษา C แต่หากคุณกำลังพัฒนาแอปพลิเคชันที่ขึ้นอยู่กับพฤติกรรมการเปรียบเทียบภาษาธรรมชาติที่เป็นประโยชน์จริงๆ คุณจะต้องทำบนแพลตฟอร์มเดียวกับที่คุณใช้ในการผลิต ฉันขอแนะนำให้ตั้งค่ากล่องเสมือนที่ใช้ Linux บนเครื่อง OS X ของคุณ

person Peter Eisentraut    schedule 02.05.2013
comment
นิสัยแปลกๆ เกี่ยวกับสถานที่ของ OS X เป็นเหตุผลหนึ่งที่ฉันเปลี่ยนมาใช้ ICU ในรายการความปรารถนาของฉันเกี่ยวกับสิ่งใหญ่โตที่น่ากลัว ซึ่งสักวันหนึ่งคงจะน่าสนใจที่จะจัดการ - person Craig Ringer; 03.05.2013

คุณสามารถควบคุมการจัดเรียงที่ใช้เมื่อคุณ CREATE DATABASE - ดูตัวเลือก LC_COLLATE เพื่อ CREATE DATABASE< /ก>.

PostgreSQL จะใช้รูทีนการเปรียบเทียบระบบปฏิบัติการพื้นฐาน ดังนั้นคุณจึงไม่สามารถจับคู่แบบตรงทั้งหมดได้เสมอไป หากระบบปฏิบัติการไม่ได้เสนอภาษาที่เหมือนกันทุกประการหรือการใช้งานต่างกัน การเพิ่มการรองรับสำหรับ การใช้ ICU เพื่อทำการจัดเรียงที่ไม่ขึ้นกับระบบปฏิบัติการภายในนั้นเป็นสิ่งที่อยากได้มานานแล้ว แต่กลับเป็น งานใหญ่ที่ยังไม่มีใครอยากทำมากพอที่จะทำ

person Craig Ringer    schedule 02.05.2013