PostgreSQL

ภาพหน้าจอของซอฟแวร์:
PostgreSQL
รายละเอียดซอฟแวร์:
รุ่น: 10.5 / 11 Beta 3 การปรับปรุง
วันที่อัพโหลด: 16 Aug 18
ผู้พัฒนา: PostgreSQL Global Development Group
การอนุญาต: ฟรี
ความนิยม: 29

Rating: 1.5/5 (Total Votes: 2)

PostgreSQL เป็นระบบฐานข้อมูลโอเพนซอร์สมีประสิทธิภาพเชื่อถือได้มีเสถียรภาพพร้อมใช้งานและไม่เสียค่าใช้จ่ายในรูปแบบของโครงการ MariaDB, MySQL หรือ SQLite เป็นเซิร์ฟเวอร์ / เอ็นจิ้นเซิร์ฟเวอร์ฐานข้อมูลที่สอดคล้องกับอะตอม, ความสอดคล้อง, การแยก, ความทนทาน) ที่สามารถปรับแต่งได้สูงและมีคุณลักษณะที่น่าสนใจจำนวนมากทำให้เป็นเครื่องมือทดแทนที่ดีสำหรับเครื่องมือฐานข้อมูลดังกล่าว


คุณสมบัติได้อย่างรวดเร็ว

คุณลักษณะสำคัญ ได้แก่ การสนับสนุนคีย์ต่างประเทศมุมมองการเข้าร่วมการเรียกและการจัดเก็บการสนับสนุนหลายภาษาการสนับสนุนชนิดข้อมูล SQL รวมถึงบูลีนชอร์ INTEGER NUMERIC VARCHAR INTERVAL TIMESTAMP และ DATE.

นอกจากนี้ซอฟต์แวร์ยังมีการสนับสนุนการจัดเก็บวัตถุขนาดใหญ่แบบไบนารีรวมถึงไฟล์มัลติมีเดียทุกชนิด (วิดีโอเสียงและภาพ) และให้บริการนักพัฒนาซอฟต์แวร์ที่มีอินเตอร์เฟซการเขียนโปรแกรมพื้นเมืองสำหรับ C, C + +, Python, Perl, Ruby, Java, .Net, Tcl และ ODBC programming languages ​​

ท่ามกลางคุณสมบัติที่น่าสนใจอื่น ๆ เราสามารถพูดถึง MVCC (Multi-Version Concurrency Control), tablespaces, การเข้ารหัสตัวอักษรแบบหลายไบต์, การกู้คืนจุดเวลา, เครื่องมือเพิ่มประสิทธิภาพแบบสอบถามที่เป็นผู้ใหญ่และการวางแผน, การจำลองแบบอะซิงโครนัส, การสำรองข้อมูลออนไลน์, การทำธุรกรรมที่ซ้อนกัน (popularly known as savepoints), การสำรองข้อมูลที่ร้อน, เขียนบันทึกล่วงหน้าสำหรับความผิดพลาด, การสนับสนุนชุดอักขระระหว่างประเทศรวมทั้งการสนับสนุน Unicode


PostgreSQL เป็นตัวเลข

ขณะนี้เซิร์ฟเวอร์ฐานข้อมูล PostgreSQL สนับสนุนฐานข้อมูลไม่ จำกัด ขนาด 32 TB ควรเป็นขนาดสูงสุดสำหรับตาราง 1.6 TB ต่อแถว 1 GB ต่อเขตข้อมูลแถวไม่ จำกัด ต่อตารางรองรับระหว่างคอลัมน์ 250 ถึง 1600 คอลัมน์ต่อตาราง ขึ้นอยู่กับชนิดของคอลัมน์และสนับสนุนดัชนีไม่ จำกัด ต่อโต๊ะ


ระบบปฏิบัติการที่สนับสนุน

PostgreSQL ได้รับการทดสอบเรียบร้อยแล้วในระบบปฏิบัติการหลัก ๆ ทั้งหมดเช่น GNU / Linux, BSD, Solaris, HP-UX, AIX, SGI IRIX, Solaris, Tru64, Mac OS X และ Microsoft Windows PostgreSQL สามารถดาวน์โหลดเป็นที่เก็บข้อมูลสากลได้เช่นเดียวกับแพคเกจไบนารีที่รวบรวมไว้ล่วงหน้าสำหรับการกระจาย Linux จำนวนมากซึ่งสนับสนุนทั้งสถาปัตยกรรมแบบ 32 บิตและ 64 บิต

มีอะไรใหม่

strong> ในรุ่นนี้:

  • ฉบับนี้แก้ไขปัญหาด้านความปลอดภัยสองแบบ รุ่นนี้ยังแก้ไขปัญหาที่พบโดยใช้ VACUUM, GIN & ดัชนีแฮชการค้นหาแบบขนานการจำลองแบบตรรกะและข้อผิดพลาดอื่น ๆ ที่รายงานในช่วง 3 เดือนที่ผ่านมา ผู้ใช้ทั้งหมดที่ใช้ PostgreSQL เวอร์ชันที่มีปัญหาควรอัปเดตโดยเร็วที่สุด

  • มีอะไรใหม่ ในเวอร์ชัน 10.4 / 11 เบต้า 1:

    • รุ่นนี้แก้ไขปัญหาด้านความปลอดภัยสองเรื่อง รุ่นนี้ยังแก้ไขปัญหาที่พบโดยใช้ VACUUM, GIN & ดัชนีแฮชการค้นหาแบบขนานการจำลองแบบตรรกะและข้อผิดพลาดอื่น ๆ ที่รายงานในช่วง 3 เดือนที่ผ่านมา ผู้ใช้ทั้งหมดที่ใช้ PostgreSQL เวอร์ชันที่มีปัญหาควรอัปเดตโดยเร็วที่สุด

    มีอะไรใหม่ ในเวอร์ชัน:

    • จำกัด การมองเห็น pg_user_mappings.umoptions เพื่อป้องกันรหัสผ่านที่เก็บไว้ในตัวเลือกการทำแผนที่ผู้ใช้ (Noah Misch)
    • การแก้ไขสำหรับ CVE-2017-7486 ไม่ถูกต้อง: อนุญาตให้ผู้ใช้เห็นตัวเลือกในการแมปผู้ใช้ของตนเองแม้ว่าจะไม่ได้รับสิทธิ์ในการใช้งานบนเซิร์ฟเวอร์ต่างประเทศก็ตาม ตัวเลือกดังกล่าวอาจรวมถึงรหัสผ่านที่ได้รับจากเจ้าของเซิร์ฟเวอร์แทนที่จะเป็นผู้ใช้เอง เนื่องจาก information_schema.user_mapping_options ไม่แสดงตัวเลือกในกรณีดังกล่าว pg_user_mappings ไม่ควรทำอย่างใดอย่างหนึ่ง (CVE-2017-7547)
    • ด้วยตัวเองแพทช์นี้จะแก้ไขพฤติกรรมในฐานข้อมูล initdb'd ใหม่เท่านั้น ถ้าคุณต้องการใช้การเปลี่ยนแปลงนี้ในฐานข้อมูลที่มีอยู่คุณจะต้องดำเนินการดังนี้:
    • เริ่มต้น postmaster ใหม่หลังจากเพิ่ม allow_system_table_mods = true ลงใน postgresql.conf (ในเวอร์ชันที่สนับสนุน ALTER SYSTEM คุณสามารถใช้เพื่อทำการเปลี่ยนแปลงการกำหนดค่า แต่คุณจะต้องเริ่มต้นใหม่)
    • ในแต่ละฐานข้อมูลของคลัสเตอร์ให้รันคำสั่งต่อไปนี้เป็น superuser:
    • ตั้งค่า search_path = pg_catalog;
    • สร้างหรือเปลี่ยนมุมมอง pg_user_mappings AS
    • เลือก
    • U.oid AS umid,
    • S.oid AS srvid,
    • S.srvname AS srvname,
    • U.umuser AS umuser,
    • กรณีเมื่อ U.umuser = 0 THEN
    • 'สาธารณะ'
    • ELSE
    • A.rolname
    • END as usename,
    • กรณีเมื่อ (U.umuser 0 AND A.rolname = current_user
    • AND (pg_has_role (S.srvowner, 'USAGE')
    • หรือ has_server_privilege (S.oid, 'ใช้')))
    • OR (U.umuser = 0 และ pg_has_role (S.srvowner, 'USAGE'))
    • หรือ (SELECT rolsuper FROM pg_authid WHERE rolname = current_user)
    • THEN U.umoptions
    • อื่น ๆ เป็น NULL END AS umoptions
    • FROM pg_user_mapping U
    • LEFT JOIN pg_authid A ON (A.oid = U.umuser) JOIN
    • pg_foreign_server S ON (U.umserver = S.oid);
    • อย่าลืมใส่ฐานข้อมูล template0 และ template1 หรือช่องโหว่จะยังคงอยู่ในฐานข้อมูลที่คุณสร้างในภายหลัง ในการแก้ไข template0 คุณจะต้องยอมรับการเชื่อมต่อชั่วคราว ใน PostgreSQL 9.5 ขึ้นไปคุณสามารถใช้
    • ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;
    • หลังจากแก้ไข template0 แล้วเลิกทำด้วย
    • ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;
    • ในเวอร์ชันก่อนหน้านี้ให้ใช้
    • แทน
    • อัปเดต pg_database SET datallowconn = true ในกรณีที่ datname = 'template0';
    • อัปเดต pg_database SET datallowconn = false WHERE datname = 'template0';
    • สุดท้ายลบการตั้งค่าคอนฟิกูเรชัน allow_system_table_mods และเริ่มต้น postmaster ใหม่อีกครั้ง
    • ไม่อนุญาตให้ใช้รหัสผ่านที่ว่างเปล่าในวิธีการรับรองความถูกต้องของรหัสผ่าน (Heikki Linnakangas)
    • libpq ละเว้นข้อกำหนดรหัสผ่านที่ว่างเปล่าและไม่ได้ส่งข้อมูลไปยังเซิร์ฟเวอร์ ดังนั้นถ้ารหัสผ่านของผู้ใช้ถูกตั้งค่าเป็นสตริงว่างคุณไม่สามารถลงชื่อเข้าใช้ด้วยรหัสผ่านนั้นผ่าน psql หรือไคลเอ็นต์ที่ใช้ libpq อื่น ๆ ผู้ดูแลระบบอาจเชื่อว่าการตั้งรหัสผ่านให้ว่างจะเท่ากับการล็อกอินรหัสผ่าน อย่างไรก็ตามด้วยไคลเอ็นต์ที่ปรับเปลี่ยนหรือไม่ใช่ libpq การเข้าสู่ระบบอาจเป็นไปได้ขึ้นอยู่กับวิธีการตรวจสอบสิทธิ์ที่ได้รับการกำหนดค่า โดยเฉพาะอย่างยิ่งวิธีการที่พบมากที่สุดคือ md5 ยอมรับรหัสผ่านที่ว่างเปล่า เปลี่ยนเซิร์ฟเวอร์เพื่อปฏิเสธรหัสผ่านที่ว่างเปล่าในทุกกรณี (CVE-2017-7546)
    • ตรวจสอบสิทธิ์ UPDATE ในเป้าหมายขนาดใหญ่ (Tom Lane, Michael Paquier)
    • lo_put () ควรจะต้องมีสิทธิ์เหมือนกับ lowrite () แต่การตรวจสอบหายไปทำให้ผู้ใช้สามารถเปลี่ยนข้อมูลในวัตถุขนาดใหญ่ได้ (CVE-2017-7548)
    • แก้ไขเอกสารเกี่ยวกับกระบวนการอัพเกรดเซิร์ฟเวอร์สแตนด์บายด้วย pg_upgrade (Bruce Momjian)
    • เอกสารก่อนหน้านี้แนะนำให้ผู้ใช้เริ่ม / หยุดเซิร์ฟเวอร์หลักหลังจากใช้งาน pg_upgrade แต่ก่อนที่จะซิงค์เซิร์ฟเวอร์สแตนด์บาย ลำดับนี้ไม่ปลอดภัย
    • แก้ไขการล็อกร่วมกันของชุดปรับปรุง tuple (Alvaro Herrera)
    • ถ้าหลายเซสชันพร้อมกันจะล็อคสตริงการอัปเดต tuple ด้วยโหมดล็อกที่ไม่ทำให้เกิดปัญหาโดยใช้ snapshot เก่าและพวกเขาทั้งหมดประสบความสำเร็จ เงื่อนไข. สิ่งนี้มีผลเช่นการตรวจสอบคีย์ต่างประเทศล้มเหลวในการดูเอกสารที่มีอยู่จริง แต่มีการอัปเดตพร้อมกัน
    • แก้ไขข้อมูลที่อาจเกิดความเสียหายเมื่อแช่แข็ง tuple ซึ่ง XMAX เป็น multixact กับสมาชิกที่น่าสนใจอย่างหนึ่ง (Teodor Sigaev)
    • หลีกเลี่ยงการล้นเกินจำนวนเต็มและเกิดข้อผิดพลาดในการคัดแยกหน่วยความจำภายในมากกว่าหนึ่งพันล้านใบ (Sergey Koposov)
    • ใน Windows ให้ลองสร้างกระบวนการอีกครั้งหากเราไม่สามารถสำรองช่วงที่อยู่สำหรับหน่วยความจำที่ใช้ร่วมกันของเราในกระบวนการใหม่ (Tom Lane, Amit Kapila)
    • นี่คาดว่าจะแก้ไขปัญหาความล้มเหลวในการเปิดใช้งานขั้นตอนย่อยสำหรับเด็กซึ่งอาจเกิดจากการแทรกแซงจากผลิตภัณฑ์แอนตี้ไวรัส
    • แก้ไขความเสียหายต่ำของความน่าจะเป็นของตารางแฮชกริดที่ใช้ร่วมกันใน Windows ที่สร้างขึ้น (Thomas Munro, Tom Lane)
    • หลีกเลี่ยงการปิดกั้นการเชื่อมต่อ SSL อย่างปลอดภัยเช่นเดียวกับการตั้งค่าการเชื่อมต่อ (Michael Paquier)
    • ป้องกันไม่ให้ส่งตั๋วเข้าชม SSL ไปยังลูกค้า (Tom Lane)
    • การแก้ไขนี้จะช่วยป้องกันความล้มเหลวในการเชื่อมต่อใหม่ด้วยรหัส SSL ฝั่งไคลเอ็นต์ที่รับทราบข้อมูลตั๋ว
    • แก้ไขโค้ดสำหรับตั้งค่า tcp_keepalives_idle บน Solaris (Tom Lane)
    • แก้ไขตัวเก็บรวบรวมสถิติเพื่อให้เกียรติข้อความค้นหาที่ออกหลังจากปิดระบบ postmaster และรีสตาร์ททันที (Tom Lane)
    • การสอบถามข้อมูลด้านสถิติที่ออกภายในครึ่งวินาทีของการปิดระบบมาสเตอร์โพสต์ก่อนหน้านี้ได้รับการละเลยอย่างมีประสิทธิภาพ
    • ตรวจสอบว่าผู้รวบรวมสถิติได้รับขนาดบัฟเฟอร์อย่างน้อย 100KB (ทอมเลน)
    • ช่วยลดความเสี่ยงในการลดข้อมูลสถิติบนแพลตฟอร์มรุ่นเก่าที่มีขนาดบัฟเฟอร์ต่ำกว่า
    • แก้ไขการสร้างส่วน WAL ที่ไม่ถูกต้องเมื่อสแตนด์บายถูกโปรโมตหลังจากที่ประมวลผลระเบียน WIND () ของ XLOG_SWITCH แล้ว
    • แก้ไข walsender เพื่อออกจากระบบทันทีเมื่อไคลเอนต์ขอปิดระบบ (Tom Lane)
    • แก้ไขการจัดการ SIGHUP และ SIGUSR1 ในกระบวนการ Walsender (Petr Jelinek, Andres Freund)
    • ป้องกันการตื่นตระหนกของ walsender ระหว่างจุดปิดเครื่อง (Andres Freund, Michael Paquier)
    • แก้ไขขั้นตอนการรีสตาร์ทรีสตาร์ทที่ช้าโดยไม่จำเป็นเนื่องจากสภาวะการแข่งขันในไปรษณีย์ (Tom Lane)
    • แก้ไขการรั่วไหลของการดำเนินการย่อยเล็ก ๆ ที่หกลงในดิสก์ในระหว่างการถอดรหัสตรรกะ (Andres Freund)
    • ส่งผลให้ไฟล์ชั่วคราวใช้พื้นที่ดิสก์มากเกินไป
    • ลดงานที่จำเป็นในการสร้างภาพรวมในระหว่างการสร้างสล็อตถอดรหัสตรรกะ (Andres Freund, Petr Jelinek)
    • อัลกอริธึมก่อนหน้านี้มีราคาแพงมากเมื่อเทียบกับเซิร์ฟเวอร์ที่มีธุรกรรมเปิดอยู่มากมาย
    • แก้ไขสภาวะการแข่งขันที่อาจสร้างความล่าช้าในการสร้างช่องตรรกะถอดรหัส (Andres Freund, Petr Jelinek) อย่างไม่มีกำหนด
    • ลดค่าใช้จ่ายในการประมวลผลเหตุการณ์ invalidation ของ syscache (Tom Lane)
    • การทำตรรกะนี้มีประโยชน์อย่างยิ่งสำหรับการถอดรหัสตรรกะซึ่งจะเรียกใช้การทำให้เป็นโมฆะแคชบ่อยๆ
    • ลบฮิวริสติกที่ไม่ถูกต้องที่ใช้ในบางกรณีเพื่อประมาณความพร้อมในการเข้าร่วมตามการมีข้อ จำกัด ของคีย์ต่างประเทศ (David Rowley)
    • ในบางกรณีที่มีข้อ จำกัด คีย์ต่างประเทศหลายคอลัมน์ แต่ไม่ตรงกับโครงสร้างการเข้าร่วมของข้อความแบบสอบถามนักวางแผนใช้การประมาณค่าที่เป็นไปในทางที่ไม่ได้ผลดีนัก ย้อนกลับกรณีดังกล่าวไปตามที่คาดคะเนก่อน 9.6
    • แก้ไขกรณีที่ INSERT หรือ UPDATE กำหนดให้มากกว่าหนึ่งองค์ประกอบของคอลัมน์ที่มีประเภท domain-over-array (Tom Lane)
    • อนุญาตให้ใช้ฟังก์ชันหน้าต่างในรายการย่อยที่อยู่ภายในอาร์กิวเมนต์ของฟังก์ชันรวม (ทอมเลน)
    • ตรวจสอบว่าคำสั่ง CHECK OPTIONS ของดูถูกบังคับใช้อย่างถูกต้องเมื่อตารางอ้างอิงเป็นตารางต่างประเทศ (Etsuro Fujita)
    • ก่อนหน้านี้การอัปเดตอาจถูกผลักไปยังเซิร์ฟเวอร์จากต่างประเทศทั้งหมด แต่จำเป็นต้องตรวจสอบเงื่อนไขมุมมองหากเป็นเช่นนั้น
    • ย้ายอาร์เรย์ที่สร้างขึ้นโดยอัตโนมัติในระหว่างการแก้ไข ALTER ... RENAME (Vik Fearing)
    • ก่อนหน้านี้เราจะเปลี่ยนชื่ออาร์เรย์อาร์เรย์ที่ขัดแย้งกันออกไปในระหว่างการสร้าง การแก้ไขนี้ขยายการทำงานเพื่อเปลี่ยนชื่อการทำงาน
    • แก้ไขตัวชี้แบบ dangling ใน ALTER TABLE เมื่อมีข้อคิดเห็นเกี่ยวกับข้อ จำกัด ของตาราง (David Rowley)
    • การใช้ความคิดเห็นกับข้อ จำกัด ที่สร้างใหม่อาจล้มเหลวด้วยข้อความแสดงข้อผิดพลาดแปลก ๆ หรือแม้แต่ความผิดพลาด
    • ตรวจสอบให้แน่ใจว่า ALTER USER ... SET ยอมรับรูปแบบไวยากรณ์ทั้งหมดที่ ALTER ROLE ... SET ทำ (Peter Eisentraut)
    • อนุญาตให้ข้อ จำกัด CHECK ของตารางในต่างประเทศเริ่มต้นไม่ถูกต้อง (Amit Langote)
    • CREATE TABLE จะไม่ใช้ตัวระบุที่ไม่ถูกต้องสำหรับข้อ จำกัด CHECK โดยให้เหตุผลว่าตารางต้องว่างเปล่าเพื่อให้ข้อ จำกัด สามารถตรวจสอบได้ทันที แต่นี่เป็นข้อผิดพลาดในการสร้างตารางต่างประเทศซึ่งไม่มีเหตุผลใดที่จะสมมติว่าตารางอ้างอิงว่างเปล่าและแม้ว่าจะไม่ใช่ธุรกิจของเราก็ตามที่จะตัดสินว่าข้อ จำกัด ดังกล่าวสามารถปฏิบัติได้อย่างถูกต้องต่อไป ข้ามการเพิ่มประสิทธิภาพนี้ & quot; สำหรับตารางต่างประเทศ
    • อัปเดตข้อมูลการพึ่งพาอย่างถูกต้องเมื่อเปลี่ยนอาร์กิวเมนต์ของฟังก์ชัน I / O ประเภทข้อมูลหรือประเภทส่งคืนจากแบบทึบแสงเป็นประเภทที่ถูกต้อง (Heikki Linnakangas)
    • CREATE TYPE ปรับปรุงฟังก์ชัน I / O ที่ประกาศในรูปแบบที่ล้าสมัยแล้ว แต่ลืมบันทึกการพึ่งพาประเภทซึ่งทำให้ DROP TYPE สามารถออกจากคำจำกัดความของฟังก์ชันที่หักหลังได้
    • อนุญาตให้เกิดการทำงานแบบขนานในแผนแบบสอบถามเมื่อ COPY คัดลอกจากผลการค้นหา (Andres Freund)
    • ลดการใช้หน่วยความจำเมื่อ ANALYZE ประมวลผลคอลัมน์ tsvector (Heikki Linnakangas)
    • แก้ไขการสูญเสียความแม่นยำที่ไม่จำเป็นและการปัดเศษที่เลอะเทอะเมื่อคูณหรือแบ่งเงินตามจำนวนเต็มหรือลอยตัว (ทอมเลน)
    • ตรวจสอบช่องว่างสำหรับฟังก์ชันที่แยกวิเคราะห์ตัวระบุเช่น regprocedurein () (Tom Lane)
    • ขึ้นอยู่กับตำแหน่งที่ตั้งที่มีอยู่ฟังก์ชันเหล่านี้อาจตีความผิด ๆ ว่าเป็นส่วนของอักขระหลายรายการเป็นช่องว่าง
    • ใช้ #define สัญลักษณ์ที่เกี่ยวข้องจาก Perl ขณะรวบรวม PL / Perl (Ashutosh Sharma, Tom Lane)
    • การหลีกเลี่ยงปัญหาการพกพานี้โดยทั่วไปจะแสดงเป็น "การจับมือ" & quot; ไม่ตรงกันระหว่างโหลดไลบรารีเมื่อทำงานกับเวอร์ชัน Perl ล่าสุด
    • ใน libpq ให้รีเซ็ตสถานะการตรวจสอบ GSS / SASL และ SSPI อย่างถูกต้องหลังจากพยายามเชื่อมต่อล้มเหลว (Michael Paquier)
    • การไม่ทำเช่นนี้หมายความว่าเมื่อกลับจาก SSL ไปยังการเชื่อมต่อที่ไม่ใช่ SSL ความล้มเหลวของ GSS / SASL ในการพยายามใช้ SSL จะทำให้ความพยายามในการไม่ผ่าน SSL ล้มเหลว SSPI ไม่ล้มเหลว แต่หน่วยความจำรั่วออกมา
    • ใน psql ให้แก้ไขความล้มเหลวเมื่อ COPY FROM STDIN สิ้นสุดลงด้วยสัญญาณ EOF ของแป้นพิมพ์จากนั้นจึงเรียกใช้ COPY จาก STDIN (Thomas Munro)
    • พฤติกรรมที่ไม่เหมาะสมนี้เกิดขึ้นบนแพลตฟอร์มที่ได้รับ BSD (รวมถึง macOS) แต่ไม่ใช่ในส่วนอื่น ๆ
    • แก้ไข pg_dump และ pg_restore เพื่อแสดงคำสั่ง REFRESH MATERIALIZED VIEW ล่าสุด (Tom Lane)
    • ป้องกันข้อผิดพลาดระหว่างการถ่ายโอนข้อมูล / เรียกคืนเมื่อมุมมองที่เป็นร่างหมายถึงตารางที่เป็นของผู้ใช้รายอื่น
    • ปรับปรุงการรายงานข้อผิดพลาดของ pg_dump / pg_restore ที่มีต้นกำเนิดใน zlib (Vladimir Kunschikov, Alvaro Herrera)
    • แก้ไข pg_dump ด้วย --clean ตัวเลือกเพื่อลดทริกเกอร์เหตุการณ์ตามที่คาดไว้ (Tom Lane)
    • ตอนนี้ยังกำหนดสิทธิ์การเป็นเจ้าของทริกเกอร์เหตุการณ์อย่างถูกต้อง ก่อนหน้านี้พวกเขาได้รับการคืนค่าให้เป็นเจ้าของโดย superuser ที่เรียกใช้สคริปต์การเรียกคืน
    • แก้ไข pg_dump ด้วย --clean option เพื่อไม่ให้ล้มเหลวเมื่อไม่มี schema สาธารณะ (Stephen Frost)
    • แก้ไข pg_dump เพื่อไม่ปล่อย SQL ที่ไม่ถูกต้องสำหรับคลาสผู้ดำเนินการที่ว่างเปล่า (Daniel Gustafsson)
    • แก้ไขไฟล์ pg_dump ออกเป็น stdout บน Windows (Kuntal Ghosh)
    • การถ่ายโอนข้อมูลข้อความล้วนแบบบีบอัดที่เขียนลงใน stdout จะมีข้อมูลที่เสียหายเนื่องจากไม่ได้ใส่ตัวอธิบายไฟล์ลงในโหมดไบนารี
    • แก้ไข pg_get_ruledef () เพื่อพิมพ์ผลลัพธ์ที่ถูกต้องสำหรับกฎ ON SELECT ของมุมมองที่มีการเปลี่ยนชื่อคอลัมน์ (Tom Lane)
    • ในบางกรณีมุม pg_dump ใช้ pg_get_ruledef () เพื่อถ่ายโอนข้อมูลพร็อพเพอร์ตี้เพื่อให้ข้อผิดพลาดนี้อาจส่งผลให้เกิดความผิดพลาดในการโหลด / โหลดใหม่
    • แก้ไขการทุ่มตลาดการรวมภายนอกด้วยข้อ จำกัด ที่ว่างเปล่าเช่นผลของ NATURAL LEFT JOIN โดยไม่มีคอลัมน์ทั่วไป (Tom Lane)
    • แก้ไขการทุ่มตลาดการแสดงออกของฟังก์ชันในส่วน FROM ในกรณีที่นิพจน์ไม่แบ่งแยกออกเป็นส่วนที่คล้ายกับการเรียกฟังก์ชัน (Tom Lane)
    • แก้ไขผลลัพธ์ pg_basebackup เป็น stdout บน Windows (Haribabu Kommi)
    • การเขียนข้อมูลสำรองที่ stdout จะมีข้อมูลที่เสียหายเนื่องจากไม่ได้ใส่ตัวอธิบายไฟล์ลงในโหมดไบนารี
    • แก้ไข pg_rewind เพื่อจัดการไฟล์ที่มีขนาดไม่เกิน 2GB (Kuntal Ghosh, Michael Paquier)
    • โดยปกติไฟล์ดังกล่าวจะไม่ปรากฏในไดเรกทอรีข้อมูล PostgreSQL แต่อาจมีอยู่ในบางกรณี
    • แก้ไข pg_upgrade เพื่อให้แน่ใจว่าการบันทึก WAL สิ้นสุดไม่มี wal_level = minimum (Bruce Momjian)
    • เงื่อนไขนี้สามารถป้องกันไม่ให้เซิร์ฟเวอร์สแตนด์บายรุ่นอัปเกรดสามารถเชื่อมต่อใหม่ได้
    • แก้ไขการคำนวณ pg_xlogdump ของความยาวระเบียน WAL (Andres Freund)
    • ใน postgres_fdw ให้ตั้งค่าการเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลใหม่หลังจาก ALTER SERVER หรือ ALTER USER MAPPING commands (Kyotaro Horiguchi)
    • การดำเนินการนี้จะทำให้แน่ใจว่าการเปลี่ยนแปลงตัวเลือกที่ส่งผลต่อพารามิเตอร์การเชื่อมต่อจะถูกใช้ทันที
    • ใน postgres_fdw อนุญาตให้ยกเลิกคำสั่งควบคุมธุรกรรมแบบระยะไกล (Robert Haas, Rafia Sabih)
    • การเปลี่ยนแปลงนี้ทำให้เราสามารถหลบหนีการรอเซิร์ฟเวอร์ระยะไกลที่ไม่ตอบสนองได้อย่างรวดเร็วในหลาย ๆ กรณีกว่าที่เคย
    • เพิ่ม MAX_SYSCACHE_CALLBACKS เพื่อเพิ่มพื้นที่สำหรับส่วนขยาย (ทอมเลน)
    • ควรใช้ -fPIC เสมอไม่ใช่ -fpic เมื่อสร้างห้องสมุดสาธารณะด้วย gcc (Tom Lane)
    • นี้รองรับไลบรารีส่วนขยายที่มีขนาดใหญ่กว่าบนแพลตฟอร์มที่ทำให้เกิดความแตกต่าง
    • ใน MSVC build จัดการกรณีที่ไลบรารี openssl ไม่อยู่ในไดเรกทอรีย่อยของ VC (Andrew Dunstan)
    • ใน MSVC build ให้เพิ่มเส้นทางที่เหมาะสมสำหรับไฟล์ส่วนหัว libxml2 (Andrew Dunstan)
    • การแก้ไขนี้จำเป็นต้องย้ายสิ่งต่างๆรอบ ๆ ในการติดตั้ง Windows มาตรฐานของ libxml2
    • ใน MSVC สร้างรู้จักไลบรารี Tcl ที่ชื่อ tcl86.lib (Noah Misch)
    • ใน MSVC จะสร้างรายละเอียดการตั้งค่า PROVE_FLAGS ในบรรทัดคำสั่งของ vcregress.pl (Andrew Dunstan)

    • มีอะไรใหม่ ในเวอร์ชัน 9.6.4:

      • จำกัด การมองเห็น pg_user_mappings.umoptions เพิ่มเติมเพื่อปกป้องรหัสผ่านที่เก็บไว้ในตัวเลือกการทำแผนที่ผู้ใช้ (Noah Misch)
      • การแก้ไขสำหรับ CVE-2017-7486 ไม่ถูกต้อง: อนุญาตให้ผู้ใช้เห็นตัวเลือกในการแมปผู้ใช้ของตนเองแม้ว่าจะไม่ได้รับสิทธิ์ในการใช้งานบนเซิร์ฟเวอร์ต่างประเทศก็ตาม ตัวเลือกดังกล่าวอาจรวมถึงรหัสผ่านที่ได้รับจากเจ้าของเซิร์ฟเวอร์แทนที่จะเป็นผู้ใช้เอง เนื่องจาก information_schema.user_mapping_options ไม่แสดงตัวเลือกในกรณีดังกล่าว pg_user_mappings ไม่ควรทำอย่างใดอย่างหนึ่ง (CVE-2017-7547)
      • ด้วยตัวเองแพทช์นี้จะแก้ไขพฤติกรรมในฐานข้อมูล initdb'd ใหม่เท่านั้น ถ้าคุณต้องการใช้การเปลี่ยนแปลงนี้ในฐานข้อมูลที่มีอยู่คุณจะต้องดำเนินการดังนี้:
      • เริ่มต้น postmaster ใหม่หลังจากเพิ่ม allow_system_table_mods = true ลงใน postgresql.conf (ในเวอร์ชันที่สนับสนุน ALTER SYSTEM คุณสามารถใช้เพื่อทำการเปลี่ยนแปลงการกำหนดค่า แต่คุณจะต้องเริ่มต้นใหม่)
      • ในแต่ละฐานข้อมูลของคลัสเตอร์ให้รันคำสั่งต่อไปนี้เป็น superuser:
      • ตั้งค่า search_path = pg_catalog;
      • สร้างหรือเปลี่ยนมุมมอง pg_user_mappings AS
      • เลือก
      • U.oid AS umid,
      • S.oid AS srvid,
      • S.srvname AS srvname,
      • U.umuser AS umuser,
      • กรณีเมื่อ U.umuser = 0 THEN
      • 'สาธารณะ'
      • ELSE
      • A.rolname
      • END as usename,
      • กรณีเมื่อ (U.umuser 0 AND A.rolname = current_user
      • AND (pg_has_role (S.srvowner, 'USAGE')
      • หรือ has_server_privilege (S.oid, 'ใช้')))
      • OR (U.umuser = 0 และ pg_has_role (S.srvowner, 'USAGE'))
      • หรือ (SELECT rolsuper FROM pg_authid WHERE rolname = current_user)
      • THEN U.umoptions
      • อื่น ๆ เป็น NULL END AS umoptions
      • FROM pg_user_mapping U
      • LEFT JOIN pg_authid A ON (A.oid = U.umuser) JOIN
      • pg_foreign_server S ON (U.umserver = S.oid);
      • อย่าลืมใส่ฐานข้อมูล template0 และ template1 หรือช่องโหว่จะยังคงอยู่ในฐานข้อมูลที่คุณสร้างในภายหลัง ในการแก้ไข template0 คุณจะต้องยอมรับการเชื่อมต่อชั่วคราว ใน PostgreSQL 9.5 ขึ้นไปคุณสามารถใช้
      • ALTER DATABASE template0 WITH ALLOW_CONNECTIONS true;
      • หลังจากแก้ไข template0 แล้วเลิกทำด้วย
      • ALTER DATABASE template0 WITH ALLOW_CONNECTIONS false;
      • ในเวอร์ชันก่อนหน้านี้ให้ใช้
      • แทน
      • อัปเดต pg_database SET datallowconn = true ในกรณีที่ datname = 'template0';
      • อัปเดต pg_database SET datallowconn = false WHERE datname = 'template0';
      • สุดท้ายลบการตั้งค่าคอนฟิกูเรชัน allow_system_table_mods และเริ่มต้น postmaster ใหม่อีกครั้ง
      • ไม่อนุญาตให้ใช้รหัสผ่านที่ว่างเปล่าในวิธีการรับรองความถูกต้องของรหัสผ่าน (Heikki Linnakangas)
      • libpq ละเว้นข้อกำหนดรหัสผ่านที่ว่างเปล่าและไม่ได้ส่งข้อมูลไปยังเซิร์ฟเวอร์ ดังนั้นถ้ารหัสผ่านของผู้ใช้ถูกตั้งค่าเป็นสตริงว่างคุณไม่สามารถลงชื่อเข้าใช้ด้วยรหัสผ่านนั้นผ่าน psql หรือไคลเอ็นต์ที่ใช้ libpq อื่น ๆ ผู้ดูแลระบบอาจเชื่อว่าการตั้งรหัสผ่านให้ว่างจะเท่ากับการล็อกอินรหัสผ่าน อย่างไรก็ตามด้วยไคลเอ็นต์ที่ปรับเปลี่ยนหรือไม่ใช่ libpq การเข้าสู่ระบบอาจเป็นไปได้ขึ้นอยู่กับวิธีการตรวจสอบสิทธิ์ที่ได้รับการกำหนดค่า โดยเฉพาะอย่างยิ่งวิธีการที่พบมากที่สุดคือ md5 ยอมรับรหัสผ่านที่ว่างเปล่า เปลี่ยนเซิร์ฟเวอร์เพื่อปฏิเสธรหัสผ่านที่ว่างเปล่าในทุกกรณี (CVE-2017-7546)
      • ตรวจสอบสิทธิ์ UPDATE ในเป้าหมายขนาดใหญ่ (Tom Lane, Michael Paquier)
      • lo_put () ควรจะต้องมีสิทธิ์เหมือนกับ lowrite () แต่การตรวจสอบหายไปทำให้ผู้ใช้สามารถเปลี่ยนข้อมูลในวัตถุขนาดใหญ่ได้ (CVE-2017-7548)
      • แก้ไขเอกสารเกี่ยวกับกระบวนการอัพเกรดเซิร์ฟเวอร์สแตนด์บายด้วย pg_upgrade (Bruce Momjian)
      • เอกสารก่อนหน้านี้แนะนำให้ผู้ใช้เริ่ม / หยุดเซิร์ฟเวอร์หลักหลังจากใช้งาน pg_upgrade แต่ก่อนที่จะซิงค์เซิร์ฟเวอร์สแตนด์บาย ลำดับนี้ไม่ปลอดภัย
      • แก้ไขการล็อกร่วมกันของชุดปรับปรุง tuple (Alvaro Herrera)
      • ถ้าหลายเซสชันพร้อมกันจะล็อคสตริงการอัปเดต tuple ด้วยโหมดล็อกที่ไม่ทำให้เกิดปัญหาโดยใช้ snapshot เก่าและพวกเขาทั้งหมดประสบความสำเร็จ เงื่อนไข. สิ่งนี้มีผลเช่นการตรวจสอบคีย์ต่างประเทศล้มเหลวในการดูเอกสารที่มีอยู่จริง แต่มีการอัปเดตพร้อมกัน
      • แก้ไขข้อมูลที่อาจเกิดความเสียหายเมื่อแช่แข็ง tuple ซึ่ง XMAX เป็น multixact กับสมาชิกที่น่าสนใจอย่างหนึ่ง (Teodor Sigaev)
      • หลีกเลี่ยงการล้นเกินจำนวนเต็มและเกิดข้อผิดพลาดในการคัดแยกหน่วยความจำภายในมากกว่าหนึ่งพันล้านใบ (Sergey Koposov)
      • ใน Windows ให้ลองสร้างกระบวนการอีกครั้งหากเราไม่สามารถสำรองช่วงที่อยู่สำหรับหน่วยความจำที่ใช้ร่วมกันของเราในกระบวนการใหม่ (Tom Lane, Amit Kapila)
      • นี่คาดว่าจะแก้ไขปัญหาความล้มเหลวในการเปิดใช้งานขั้นตอนย่อยสำหรับเด็กซึ่งอาจเกิดจากการแทรกแซงจากผลิตภัณฑ์แอนตี้ไวรัส
      • แก้ไขความเสียหายต่ำของความน่าจะเป็นของตารางแฮชกริดที่ใช้ร่วมกันใน Windows ที่สร้างขึ้น (Thomas Munro, Tom Lane)
      • หลีกเลี่ยงการปิดกั้นการเชื่อมต่อ SSL อย่างปลอดภัยเช่นเดียวกับการตั้งค่าการเชื่อมต่อ (Michael Paquier)
      • ป้องกันไม่ให้ส่งตั๋วเข้าชม SSL ไปยังลูกค้า (Tom Lane)
      • การแก้ไขนี้จะช่วยป้องกันความล้มเหลวในการเชื่อมต่อใหม่ด้วยรหัส SSL ฝั่งไคลเอ็นต์ที่รับทราบข้อมูลตั๋ว
      • แก้ไขโค้ดสำหรับตั้งค่า tcp_keepalives_idle บน Solaris (Tom Lane)
      • แก้ไขตัวเก็บรวบรวมสถิติเพื่อให้เกียรติข้อความค้นหาที่ออกหลังจากปิดระบบ postmaster และรีสตาร์ททันที (Tom Lane)
      • การสอบถามข้อมูลด้านสถิติที่ออกภายในครึ่งวินาทีของการปิดระบบมาสเตอร์โพสต์ก่อนหน้านี้ได้รับการละเลยอย่างมีประสิทธิภาพ
      • ตรวจสอบว่าผู้รวบรวมสถิติได้รับขนาดบัฟเฟอร์อย่างน้อย 100KB (ทอมเลน)
      • ช่วยลดความเสี่ยงในการลดข้อมูลสถิติบนแพลตฟอร์มรุ่นเก่าที่มีขนาดบัฟเฟอร์ต่ำกว่า
      • แก้ไขการสร้างส่วน WAL ที่ไม่ถูกต้องเมื่อสแตนด์บายถูกโปรโมตหลังจากที่ประมวลผลระเบียน WIND () ของ XLOG_SWITCH แล้ว
      • แก้ไข walsender เพื่อออกจากระบบทันทีเมื่อไคลเอนต์ขอปิดระบบ (Tom Lane)
      • แก้ไขการจัดการ SIGHUP และ SIGUSR1 ในกระบวนการ Walsender (Petr Jelinek, Andres Freund)
      • ป้องกันการตื่นตระหนกของ walsender ระหว่างจุดปิดเครื่อง (Andres Freund, Michael Paquier)
      • แก้ไขขั้นตอนการรีสตาร์ทรีสตาร์ทที่ช้าโดยไม่จำเป็นเนื่องจากสภาวะการแข่งขันในไปรษณีย์ (Tom Lane)
      • แก้ไขการรั่วไหลของการดำเนินการย่อยเล็ก ๆ ที่หกลงในดิสก์ในระหว่างการถอดรหัสตรรกะ (Andres Freund)
      • ส่งผลให้ไฟล์ชั่วคราวใช้พื้นที่ดิสก์มากเกินไป
      • ลดงานที่จำเป็นในการสร้างภาพรวมในระหว่างการสร้างสล็อตถอดรหัสตรรกะ (Andres Freund, Petr Jelinek)
      • อัลกอริธึมก่อนหน้านี้มีราคาแพงมากเมื่อเทียบกับเซิร์ฟเวอร์ที่มีธุรกรรมเปิดอยู่มากมาย
      • แก้ไขสภาวะการแข่งขันที่อาจสร้างความล่าช้าในการสร้างช่องตรรกะถอดรหัส (Andres Freund, Petr Jelinek) อย่างไม่มีกำหนด
      • ลดค่าใช้จ่ายในการประมวลผลเหตุการณ์ invalidation ของ syscache (Tom Lane)
      • การทำตรรกะนี้มีประโยชน์อย่างยิ่งสำหรับการถอดรหัสตรรกะซึ่งจะเรียกใช้การทำให้เป็นโมฆะแคชบ่อยๆ
      • ลบฮิวริสติกที่ไม่ถูกต้องที่ใช้ในบางกรณีเพื่อประมาณความพร้อมในการเข้าร่วมตามการมีข้อ จำกัด ของคีย์ต่างประเทศ (David Rowley)
      • ในบางกรณีที่มีข้อ จำกัด คีย์ต่างประเทศหลายคอลัมน์ แต่ไม่ตรงกับโครงสร้างการเข้าร่วมของข้อความแบบสอบถามนักวางแผนใช้การประมาณค่าที่เป็นไปในทางที่ไม่ได้ผลดีนัก ย้อนกลับกรณีดังกล่าวไปตามที่คาดคะเนก่อน 9.6
      • แก้ไขกรณีที่ INSERT หรือ UPDATE กำหนดให้มากกว่าหนึ่งองค์ประกอบของคอลัมน์ที่มีประเภท domain-over-array (Tom Lane)
      • อนุญาตให้ใช้ฟังก์ชันหน้าต่างในรายการย่อยที่อยู่ภายในอาร์กิวเมนต์ของฟังก์ชันรวม (ทอมเลน)
      • ตรวจสอบว่าคำสั่ง CHECK OPTIONS ของดูถูกบังคับใช้อย่างถูกต้องเมื่อตารางอ้างอิงเป็นตารางต่างประเทศ (Etsuro Fujita)
      • ก่อนหน้านี้การอัปเดตอาจถูกผลักไปยังเซิร์ฟเวอร์จากต่างประเทศทั้งหมด แต่จำเป็นต้องตรวจสอบเงื่อนไขมุมมองหากเป็นเช่นนั้น
      • ย้ายอาร์เรย์ที่สร้างขึ้นโดยอัตโนมัติในระหว่างการแก้ไข ALTER ... RENAME (Vik Fearing)
      • ก่อนหน้านี้เราจะเปลี่ยนชื่ออาร์เรย์อาร์เรย์ที่ขัดแย้งกันออกไปในระหว่างการสร้าง การแก้ไขนี้ขยายการทำงานเพื่อเปลี่ยนชื่อการทำงาน
      • แก้ไขตัวชี้แบบ dangling ใน ALTER TABLE เมื่อมีข้อคิดเห็นเกี่ยวกับข้อ จำกัด ของตาราง (David Rowley)
      • การใช้ความคิดเห็นกับข้อ จำกัด ที่สร้างใหม่อาจล้มเหลวด้วยข้อความแสดงข้อผิดพลาดแปลก ๆ หรือแม้แต่ความผิดพลาด
      • ตรวจสอบให้แน่ใจว่า ALTER USER ... SET ยอมรับรูปแบบไวยากรณ์ทั้งหมดที่ ALTER ROLE ... SET ทำ (Peter Eisentraut)
      • อนุญาตให้ข้อ จำกัด CHECK ของตารางในต่างประเทศเริ่มต้นไม่ถูกต้อง (Amit Langote)
      • CREATE TABLE จะไม่ใช้ตัวระบุที่ไม่ถูกต้องสำหรับข้อ จำกัด CHECK โดยให้เหตุผลว่าตารางต้องว่างเปล่าเพื่อให้ข้อ จำกัด สามารถตรวจสอบได้ทันที แต่นี่เป็นข้อผิดพลาดในการสร้างตารางต่างประเทศซึ่งไม่มีเหตุผลใดที่จะสมมติว่าตารางอ้างอิงว่างเปล่าและแม้ว่าจะไม่ใช่ธุรกิจของเราก็ตามที่จะตัดสินว่าข้อ จำกัด ดังกล่าวสามารถปฏิบัติได้อย่างถูกต้องต่อไป ข้ามการเพิ่มประสิทธิภาพ "" สำหรับตารางต่างประเทศ
      • อัปเดตข้อมูลการพึ่งพาอย่างถูกต้องเมื่อเปลี่ยนอาร์กิวเมนต์ของฟังก์ชัน I / O ประเภทข้อมูลหรือประเภทส่งคืนจากแบบทึบแสงเป็นประเภทที่ถูกต้อง (Heikki Linnakangas)
      • CREATE TYPE ปรับปรุงฟังก์ชัน I / O ที่ประกาศในรูปแบบที่ล้าสมัยแล้ว แต่ลืมบันทึกการพึ่งพาประเภทซึ่งทำให้ DROP TYPE สามารถออกจากคำจำกัดความของฟังก์ชันที่หักหลังได้
      • อนุญาตให้เกิดการทำงานแบบขนานในแผนแบบสอบถามเมื่อ COPY คัดลอกจากผลการค้นหา (Andres Freund)
      • ลดการใช้หน่วยความจำเมื่อ ANALYZE ประมวลผลคอลัมน์ tsvector (Heikki Linnakangas)
      • แก้ไขการสูญเสียความแม่นยำที่ไม่จำเป็นและการปัดเศษที่เลอะเทอะเมื่อคูณหรือแบ่งเงินตามจำนวนเต็มหรือลอยตัว (ทอมเลน)
      • ตรวจสอบช่องว่างสำหรับฟังก์ชันที่แยกวิเคราะห์ตัวระบุเช่น regprocedurein () (Tom Lane)
      • ขึ้นอยู่กับตำแหน่งที่ตั้งที่มีอยู่ฟังก์ชันเหล่านี้อาจตีความผิด ๆ ว่าเป็นส่วนของอักขระหลายรายการเป็นช่องว่าง
      • ใช้ #define สัญลักษณ์ที่เกี่ยวข้องจาก Perl ขณะรวบรวม PL / Perl (Ashutosh Sharma, Tom Lane)
      • การหลีกเลี่ยงปัญหาเรื่องความสามารถในการพกพาโดยทั่วไปจะแสดงให้เห็นว่า "จับมือ" ไม่ตรงกันในระหว่างโหลดไลบรารีเมื่อทำงานกับเวอร์ชัน Perl ล่าสุด
      • ใน libpq ให้รีเซ็ตสถานะการตรวจสอบ GSS / SASL และ SSPI อย่างถูกต้องหลังจากพยายามเชื่อมต่อล้มเหลว (Michael Paquier)
      • การไม่ทำเช่นนี้หมายความว่าเมื่อกลับจาก SSL ไปยังการเชื่อมต่อที่ไม่ใช่ SSL ความล้มเหลวของ GSS / SASL ในการพยายามใช้ SSL จะทำให้ความพยายามในการไม่ผ่าน SSL ล้มเหลว SSPI ไม่ล้มเหลว แต่หน่วยความจำรั่วออกมา
      • ใน psql ให้แก้ไขความล้มเหลวเมื่อ COPY FROM STDIN สิ้นสุดลงด้วยสัญญาณ EOF ของแป้นพิมพ์จากนั้นจึงเรียกใช้ COPY จาก STDIN (Thomas Munro)
      • พฤติกรรมที่ไม่เหมาะสมนี้เกิดขึ้นบนแพลตฟอร์มที่ได้รับ BSD (รวมถึง macOS) แต่ไม่ใช่ในส่วนอื่น ๆ
      • แก้ไข pg_dump และ pg_restore เพื่อแสดงคำสั่ง REFRESH MATERIALIZED VIEW ล่าสุด (Tom Lane)
      • ป้องกันข้อผิดพลาดระหว่างการถ่ายโอนข้อมูล / เรียกคืนเมื่อมุมมองที่เป็นร่างหมายถึงตารางที่เป็นของผู้ใช้รายอื่น
      • ปรับปรุงการรายงานข้อผิดพลาดของ pg_dump / pg_restore ที่มีต้นกำเนิดใน zlib (Vladimir Kunschikov, Alvaro Herrera)
      • แก้ไข pg_dump ด้วย --clean ตัวเลือกเพื่อลดทริกเกอร์เหตุการณ์ตามที่คาดไว้ (Tom Lane)
      • ตอนนี้ยังกำหนดสิทธิ์การเป็นเจ้าของทริกเกอร์เหตุการณ์อย่างถูกต้อง ก่อนหน้านี้พวกเขาได้รับการคืนค่าให้เป็นเจ้าของโดย superuser ที่เรียกใช้สคริปต์การเรียกคืน
      • แก้ไข pg_dump ด้วย --clean option เพื่อไม่ให้ล้มเหลวเมื่อไม่มี schema สาธารณะ (Stephen Frost)
      • แก้ไข pg_dump เพื่อไม่ปล่อย SQL ที่ไม่ถูกต้องสำหรับคลาสผู้ดำเนินการที่ว่างเปล่า (Daniel Gustafsson)
      • แก้ไขไฟล์ pg_dump ออกเป็น stdout บน Windows (Kuntal Ghosh)
      • การถ่ายโอนข้อมูลข้อความล้วนแบบบีบอัดที่เขียนลงใน stdout จะมีข้อมูลที่เสียหายเนื่องจากไม่ได้ใส่ตัวอธิบายไฟล์ลงในโหมดไบนารี
      • แก้ไข pg_get_ruledef () เพื่อพิมพ์ผลลัพธ์ที่ถูกต้องสำหรับกฎ ON SELECT ของมุมมองที่มีการเปลี่ยนชื่อคอลัมน์ (Tom Lane)
      • ในบางกรณีมุม pg_dump ใช้ pg_get_ruledef () เพื่อถ่ายโอนข้อมูลพร็อพเพอร์ตี้เพื่อให้ข้อผิดพลาดนี้อาจส่งผลให้เกิดความผิดพลาดในการโหลด / โหลดใหม่
      • แก้ไขการทุ่มตลาดการรวมภายนอกด้วยข้อ จำกัด ที่ว่างเปล่าเช่นผลของ NATURAL LEFT JOIN โดยไม่มีคอลัมน์ทั่วไป (Tom Lane)
      • แก้ไขการทุ่มตลาดการแสดงออกของฟังก์ชันในส่วน FROM ในกรณีที่นิพจน์ไม่แบ่งแยกออกเป็นส่วนที่คล้ายกับการเรียกฟังก์ชัน (Tom Lane)
      • แก้ไขผลลัพธ์ pg_basebackup เป็น stdout บน Windows (Haribabu Kommi)
      • การเขียนข้อมูลสำรองที่ stdout จะมีข้อมูลที่เสียหายเนื่องจากไม่ได้ใส่ตัวอธิบายไฟล์ลงในโหมดไบนารี
      • แก้ไข pg_rewind เพื่อจัดการไฟล์ที่มีขนาดไม่เกิน 2GB (Kuntal Ghosh, Michael Paquier)
      • โดยปกติไฟล์ดังกล่าวจะไม่ปรากฏในไดเรกทอรีข้อมูล PostgreSQL แต่อาจมีอยู่ในบางกรณี
      • แก้ไข pg_upgrade เพื่อให้แน่ใจว่าการบันทึก WAL สิ้นสุดไม่มี wal_level = minimum (Bruce Momjian)
      • เงื่อนไขนี้สามารถป้องกันไม่ให้เซิร์ฟเวอร์สแตนด์บายรุ่นอัปเกรดสามารถเชื่อมต่อใหม่ได้
      • แก้ไขการคำนวณ pg_xlogdump ของความยาวระเบียน WAL (Andres Freund)
      • ใน postgres_fdw ให้ตั้งค่าการเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลใหม่หลังจาก ALTER SERVER หรือ ALTER USER MAPPING commands (Kyotaro Horiguchi)
      • การดำเนินการนี้จะทำให้แน่ใจว่าการเปลี่ยนแปลงตัวเลือกที่ส่งผลต่อพารามิเตอร์การเชื่อมต่อจะถูกใช้ทันที
      • ใน postgres_fdw อนุญาตให้ยกเลิกคำสั่งควบคุมธุรกรรมแบบระยะไกล (Robert Haas, Rafia Sabih)
      • การเปลี่ยนแปลงนี้ทำให้เราสามารถหลบหนีการรอเซิร์ฟเวอร์ระยะไกลที่ไม่ตอบสนองได้อย่างรวดเร็วในหลาย ๆ กรณีกว่าที่เคย
      • เพิ่ม MAX_SYSCACHE_CALLBACKS เพื่อเพิ่มพื้นที่สำหรับส่วนขยาย (ทอมเลน)
      • ควรใช้ -fPIC เสมอไม่ใช่ -fpic เมื่อสร้างห้องสมุดสาธารณะด้วย gcc (Tom Lane)
      • นี้รองรับไลบรารีส่วนขยายที่มีขนาดใหญ่กว่าบนแพลตฟอร์มที่ทำให้เกิดความแตกต่าง
      • ใน MSVC build จัดการกรณีที่ไลบรารี openssl ไม่อยู่ในไดเรกทอรีย่อยของ VC (Andrew Dunstan)
      • ใน MSVC build ให้เพิ่มเส้นทางที่เหมาะสมสำหรับไฟล์ส่วนหัว libxml2 (Andrew Dunstan)
      • การแก้ไขนี้จำเป็นต้องย้ายสิ่งต่างๆรอบ ๆ ในการติดตั้ง Windows มาตรฐานของ libxml2
      • ใน MSVC สร้างรู้จักไลบรารี Tcl ที่ชื่อ tcl86.lib (Noah Misch)
      • ใน MSVC จะสร้างรายละเอียดการตั้งค่า PROVE_FLAGS ในบรรทัดคำสั่งของ vcregress.pl (Andrew Dunstan)

ซอฟต์แวร์ที่คล้ายกัน

MUSCLE
MUSCLE

22 Jun 18

Drizzle
Drizzle

20 Feb 15

MongoDB
MongoDB

17 Aug 18

Mroonga
Mroonga

17 Feb 15

ความคิดเห็นที่ PostgreSQL

ความคิดเห็นที่ไม่พบ
เพิ่มความคิดเห็น
เปิดภาพ!
ค้นหาตามหมวดหมู่