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)

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

MongoDB
MongoDB

17 Aug 18

MariaDB
MariaDB

20 Jan 18

Apache Xindice
Apache Xindice

2 Jun 15

DB2
DB2

19 Feb 15

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

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