PostgreSQL

Software screenshot:
PostgreSQL
Rincian Software:
Versi: 10.5 / 11 Beta 3 Diperbarui
Tanggal Upload: 16 Aug 18
Lisensi: Gratis
Popularitas: 29

Rating: 1.5/5 (Total Votes: 2)

PostgreSQL adalah sistem database relasional objek yang terbuka, kuat, andal, stabil, bebas-proyek dan siap pakai dalam gaya proyek-proyek MariaDB, MySQL atau SQLite. Ini adalah ACID (Atomicity, Consistency, Isolation, Durability) compliant server basis data / mesin yang dapat sangat disesuaikan dan mencakup banyak fitur menarik, membuat pengganti besar untuk mesin database tersebut.


Fitur sekilas

Fitur utama termasuk dukungan untuk kunci asing, pandangan, bergabung, pemicu dan prosedur tersimpan, dukungan untuk beberapa bahasa, dukungan untuk berbagai jenis data SQL, termasuk BOOLEAN, CHAR, INTEGER, NUMERIC, VARCHAR, INTERVAL, TIMESTAMP dan DATE.

Selain itu, perangkat lunak dilengkapi dengan dukungan untuk menyimpan objek besar biner, termasuk semua jenis file multimedia (video, audio dan foto), dan menyediakan pengembang dengan antarmuka pemrograman asli untuk C, C ++, Python, Perl, Ruby, Java, .Net, Tcl dan ODBC bahasa pemrograman.

Di antara fitur menarik lainnya, kami dapat menyebutkan MVCC (Multi-Version Concurrency Control), tablespace, pengkodean karakter multibyte, pemulihan titik waktu, pengoptimal kueri yang matang dan perencana, replikasi asinkron, cadangan online, transaksi bertingkat (dikenal sebagai savepoints), hot backup, write ahead logging untuk toleransi kesalahan, dukungan untuk set karakter internasional, serta dukungan Unicode.


PostgreSQL dalam angka

Saat ini, server database PostgreSQL mendukung ukuran tidak terbatas untuk database, 32 TB harus menjadi ukuran maksimum untuk tabel, 1,6 TB per baris, 1 GB per bidang, baris tak terbatas per tabel, mendukung antara 250 dan 1600 kolom per tabel , tergantung pada jenis kolom, dan mendukung indeks tak terbatas per tabel.


Sistem operasi yang didukung

PostgreSQL telah berhasil diuji pada semua sistem operasi utama, termasuk GNU / Linux, BSD, Solaris, HP-UX, AIX, SGI IRIX, Solaris, Tru64, Mac OS X dan Microsoft Windows. PostgreSQL tersedia untuk diunduh sebagai arsip sumber universal, serta paket biner pra-dikompilasi untuk banyak distribusi Linux, mendukung arsitektur 32-bit dan 64-bit.

Apa yang baru dalam rilis ini:

  • Rilis ini memperbaiki dua masalah keamanan. Rilis ini juga memperbaiki masalah yang ditemukan dengan indeks VACUUM, GIN & hash, kueri paralel, replikasi logis, dan bug lainnya yang dilaporkan selama tiga bulan terakhir. Semua pengguna yang menggunakan versi PostgreSQL yang terpengaruh harus memperbarui sesegera mungkin.

Apa yang baru di versi 10.4 / 11 Beta 1:

  • Rilis ini memperbaiki dua masalah keamanan. Rilis ini juga memperbaiki masalah yang ditemukan dengan indeks VACUUM, GIN & hash, kueri paralel, replikasi logis, dan bug lainnya yang dilaporkan selama tiga bulan terakhir. Semua pengguna yang menggunakan versi PostgreSQL yang terpengaruh harus memperbarui sesegera mungkin.

Apa yang baru dalam versi:

  • Lebih lanjut membatasi visibilitas pg_user_mappings.umoptions, untuk melindungi kata sandi yang disimpan sebagai opsi pemetaan pengguna (Noah Misch)
  • Perbaikan untuk CVE-2017-7486 tidak benar: itu memungkinkan pengguna untuk melihat opsi dalam pemetaan pengguna sendiri, bahkan jika dia tidak memiliki izin USAGE di server asing terkait. Pilihan tersebut mungkin termasuk kata sandi yang telah disediakan oleh pemilik server daripada pengguna itu sendiri. Karena informasi_schema.user_mapping_options tidak menunjukkan opsi dalam kasus seperti itu, pg_user_mappings seharusnya tidak baik. (CVE-2017-7547)
  • Dengan sendirinya, tambalan ini hanya akan memperbaiki perilaku dalam basis data baru initdb. Jika Anda ingin menerapkan perubahan ini dalam database yang sudah ada, Anda perlu melakukan hal-hal berikut:
  • Mulai ulang postmaster setelah menambahkan allow_system_table_mods = true to postgresql.conf. (Dalam versi yang mendukung ALTER SYSTEM, Anda dapat menggunakannya untuk membuat perubahan konfigurasi, tetapi Anda masih perlu memulai ulang.)
  • Di setiap basis data kluster, jalankan perintah berikut sebagai superuser:
  • SET search_path = pg_catalog;
  • BUAT ATAU REPLACE VIEW pg_user_mappings AS
  • PILIH
  • U.oid AS umid,
  • S.oid AS srvid,
  • S.srvname AS srvname,
  • U.umuser AS umuser,
  • KASUS SAAT U.umuser = 0 KEMUDIAN
  • 'publik'
  • ELSE
  • A.rolname
  • END AS usename,
  • KASUS SAAT (U.umuser 0 DAN A.rolname = current_user
  • DAN (pg_has_role (S.srvowner, 'USAGE')
  • ATAU has_server_privilege (S.oid, 'USAGE')))
  • ATAU (U.umuser = 0 DAN pg_has_role (S.srvowner, 'USAGE'))
  • ATAU (PILIH rolsuper DARI pg_authid WHERE rolname = current_user)
  • THEN U.umoptions
  • ELSE NULL END AS umoptions
  • DARI pg_user_mapping U
  • LEFT JOIN pg_authid A ON (A.oid = U.umuser) GABUNG
  • pg_foreign_server S ON (U.umserver = S.oid);
  • Jangan lupa untuk menyertakan database template0 dan template1, atau kerentanan akan tetap ada di database yang Anda buat nanti. Untuk memperbaiki template0, Anda perlu membuatnya menerima koneksi untuk sementara. Di PostgreSQL 9.5 dan yang lebih baru, Anda dapat menggunakan
  • ALTER DATABASE template0 DENGAN ALLOW_CONNECTIONS true;
  • dan kemudian setelah memperbaiki template0, batalkan itu dengan
  • ALTER DATABASE template0 DENGAN ALLOW_CONNECTIONS salah;
  • Di versi sebelumnya, gunakan
  • UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
  • UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
  • Akhirnya, hapus pengaturan konfigurasi allow_system_table_mods, dan jalankan lagi postmaster.
  • Jangan izinkan kata sandi kosong dalam semua metode otentikasi berbasis kata sandi (Heikki Linnakangas)
  • libpq mengabaikan spesifikasi kata sandi kosong, dan tidak mengirimnya ke server. Jadi, jika kata sandi pengguna telah disetel ke string kosong, tidak mungkin untuk masuk dengan kata sandi itu melalui psql atau klien berbasis libpq lainnya. Oleh karena itu seorang administrator mungkin percaya bahwa pengaturan kata sandi untuk mengosongkan setara dengan menonaktifkan login kata sandi. Namun, dengan klien yang dimodifikasi atau non-libpq, login dapat dilakukan, tergantung pada metode otentikasi yang dikonfigurasi. Khususnya metode yang paling umum, md5, menerima kata sandi kosong. Ubah server untuk menolak kata sandi kosong dalam semua kasus. (CVE-2017-7546)
  • Membuat lo_put () memeriksa hak istimewa UPDATE pada objek besar target (Tom Lane, Michael Paquier)
  • lo_put () pasti membutuhkan perizinan yang sama dengan lowrite (), tetapi pemeriksaan tidak ada, memungkinkan setiap pengguna untuk mengubah data dalam objek besar. (CVE-2017-7548)
  • Perbaiki dokumentasi tentang proses untuk meningkatkan server siaga dengan pg_upgrade (Bruce Momjian)
  • Dokumentasi sebelumnya menginstruksikan pengguna untuk memulai / menghentikan server utama setelah menjalankan pg_upgrade tetapi sebelum menyinkronkan server siaga. Urutan ini tidak aman.
  • Perbaiki penguncian bersamaan rantai pembaruan tupel (Alvaro Herrera)
  • Jika beberapa sesi secara bersamaan mengunci rantai pembaruan tupel dengan mode kunci nonkonflik menggunakan snapshot lama, dan semuanya berhasil, mungkin bagi beberapa dari mereka untuk tetap gagal (dan menyimpulkan tidak ada versi tuple hidup) karena balapan kondisi. Ini memiliki konsekuensi seperti pemeriksaan kunci asing gagal melihat tupel yang pasti ada tetapi sedang diperbarui secara bersamaan.
  • Memperbaiki potensi kerusakan data saat membekukan tuple yang XMAX-nya merupakan multixact dengan satu anggota yang masih menarik (Teodor Sigaev)
  • Hindari kelebihan bilangan bulat dan terjadilah crash saat menyortir lebih dari satu miliar tupel dalam-memori (Sergey Koposov)
  • Di Windows, coba lagi pembuatan proses jika kami gagal memesan kisaran alamat untuk memori bersama kami dalam proses baru (Tom Lane, Amit Kapila)
  • Ini diharapkan untuk memperbaiki kegagalan proses anak yang jarang terjadi yang mungkin disebabkan oleh gangguan dari produk antivirus.
  • Perbaiki kemungkinan rendah korupsi tabel hash hash kunci bersama di Windows builds (Thomas Munro, Tom Lane)
  • Hindari mencatat penutupan bersih dari koneksi SSL seolah-olah itu adalah koneksi ulang (Michael Paquier)
  • Mencegah pengiriman tiket sesi SSL ke klien (Tom Lane)
  • Perbaikan ini mencegah kegagalan rekoneksi dengan kode SSL sisi klien yang tahu tiket.
  • Perbaiki kode untuk pengaturan tcp_keepalives_idle di Solaris (Tom Lane)
  • Perbaiki kolektor statistik untuk menghormati pesan penyelidikan yang dikeluarkan tepat setelah shutdown postmaster dan segera restart (Tom Lane)
  • Permintaan informasi statistik yang dikeluarkan dalam setengah detik dari penutupan postmaster sebelumnya secara efektif diabaikan.
  • Pastikan bahwa ukuran buffer kolektor statistik setidaknya 100KB (Tom Lane)
  • Ini mengurangi risiko data statistik yang dijatuhkan pada platform lama yang ukuran buffer bawaannya lebih kecil dari itu.
  • Perbaiki kemungkinan pembuatan segmen WAL yang tidak valid ketika siaga dipromosikan tepat setelah memproses catatan XLOG_SWITCH WAL (Andres Freund)
  • Perbaiki walsender untuk segera keluar saat permintaan klien dimatikan (Tom Lane)
  • Perbaiki SIGHUP dan SIGUSR1 yang menangani proses walsender (Petr Jelinek, Andres Freund)
  • Cegah kepanikan yang dipicu oleh walsender selama pemeriksaan penutupan (Andres Freund, Michael Paquier)
  • Perbaiki restart proses walreceiver yang tidak perlu lambat karena kondisi balapan di postmaster (Tom Lane)
  • Perbaiki kebocoran subtransaksi kecil yang tumpah ke disk selama penguraian logis (Andres Freund)
  • Ini mengakibatkan file sementara menghabiskan ruang disk yang berlebihan.
  • Mengurangi pekerjaan yang diperlukan untuk membuat foto selama pembuatan slot logika-decoding (Andres Freund, Petr Jelinek)
  • Algoritma sebelumnya sangat mahal pada server dengan banyak transaksi terbuka.
  • Perbaiki kondisi balapan yang dapat menunda pembuatan slot logika-decoding (Andres Freund, Petr Jelinek)
  • Kurangi overhead dalam memproses kejadian pembatalan syscache (Tom Lane)
  • Ini sangat membantu untuk penguraian kode yang logis, yang sering memicu pembatalan cache.
  • Hapus heuristik yang salah yang digunakan dalam beberapa kasus untuk memperkirakan selektivitas gabungan berdasarkan keberadaan batasan foreign-key (David Rowley)
  • Dalam beberapa kasus di mana kendala kunci asing multi-kolom ada tetapi tidak benar-benar cocok dengan struktur gabungan kueri, perencana menggunakan estimasi heuristik yang ternyata tidak berfungsi dengan baik sama sekali. Kembalikan kasus tersebut ke cara mereka diperkirakan sebelum 9.6.
  • Memperbaiki kasus di mana INSERT atau UPDATE menetapkan lebih dari satu elemen kolom yang memiliki tipe domain-over-array (Tom Lane)
  • Memungkinkan fungsi-fungsi window untuk digunakan dalam sub-SELECT yang berada dalam argumen fungsi agregat (Tom Lane)
  • Pastikan bahwa klausa PERIKSA PERIKSA pandangan diberlakukan dengan benar saat tabel yang mendasari adalah tabel asing (Etsuro Fujita)
  • Sebelumnya, pembaruan mungkin didorong sepenuhnya ke server asing, tetapi kebutuhan untuk memverifikasi kondisi tampilan tidak terjawab jika demikian.
  • Memindahkan jenis larik yang diautogenerasi dari jalan selama ALTER ... RENAME (Vik Fearing)
  • Sebelumnya, kami akan mengganti nama jenis array autogenerated yang bertolak belakang selama CREATE; perbaikan ini memperluas perilaku itu untuk mengganti nama operasi.
  • Perbaiki pointer yang menggantung di ALTER TABLE ketika ada komentar tentang kendala yang termasuk dalam tabel (David Rowley)
  • Menerapkan kembali komentar ke kendala yang direkonstruksi dapat gagal dengan pesan kesalahan yang aneh, atau bahkan mogok.
  • Pastikan bahwa ALTER USER ... SET menerima semua varian sintaks yang ALTER ROLE ... SET melakukan (Peter Eisentraut)
  • Biarkan kendala PERIKSA tabel asing menjadi awalnya TIDAK VALID (Amit Langote)
  • BUAT TABLE diam-diam menjatuhkan penentu TIDAK VALID untuk kendala PERIKSA, beralasan bahwa tabel harus kosong sehingga kendala dapat segera divalidasi. Tapi ini salah untuk CREATE FOREIGN TABLE, di mana tidak ada alasan untuk menganggap bahwa tabel yang mendasari kosong, dan bahkan jika itu bukan urusan kita untuk memutuskan bahwa kendala dapat dianggap valid. Lewati ini & quot; pengoptimalan & quot; untuk tabel asing.
  • Memperbarui info dependensi dengan benar saat mengubah argumen jenis data I / O atau jenis kembalinya dari buram ke jenis yang benar (Heikki Linnakangas)
  • CREATE TYPE memperbarui fungsi I / O yang dideklarasikan dalam gaya yang sudah lama usang ini, tetapi lupa mencatat ketergantungan pada jenis, memungkinkan TYPE DROP berikutnya meninggalkan definisi fungsi yang rusak di belakang.
  • Izinkan paralelisme dalam rencana kueri ketika COPY menyalin dari hasil kueri (Andres Freund)
  • Kurangi penggunaan memori ketika ANALYZE memproses kolom tsvector (Heikki Linnakangas)
  • Perbaiki ketepatan yang tidak perlu dan pembulatan sembrono saat mengalikan atau membagi nilai uang dengan bilangan bulat atau pelampung (Tom Lane)
  • Kencangkan pemeriksaan untuk spasi dalam fungsi yang mem-parsing pengidentifikasi, seperti regprocedurein () (Tom Lane)
  • Bergantung pada lokal yang berlaku, fungsi-fungsi ini dapat salah menafsirkan fragmen karakter multibyte sebagai spasi putih.
  • Gunakan simbol #define yang relevan dari Perl saat mengompilasi PL / Perl (Ashutosh Sharma, Tom Lane)
  • Ini menghindari masalah portabilitas, biasanya bermanifestasi sebagai & quot; jabat tangan & quot; ketidakcocokan selama beban perpustakaan, ketika bekerja dengan versi Perl terbaru.
  • Dalam libpq, setel ulang status autentikasi GSS / SASL dan SSPI dengan benar setelah upaya koneksi gagal (Michael Paquier)
  • Kegagalan untuk melakukan ini berarti bahwa ketika mundur dari SSL ke koneksi non-SSL, kegagalan GSS / SASL dalam upaya SSL akan selalu menyebabkan upaya non-SSL gagal. SSPI tidak gagal, tetapi bocor memori.
  • Dalam psql, memperbaiki kegagalan ketika COPY FROM STDIN diakhiri dengan keyboard EOF signal dan kemudian COPY FROM STDIN lainnya dicoba (Thomas Munro)
  • Perilaku buruk ini diamati pada platform BSD yang diturunkan (termasuk macOS), tetapi tidak pada sebagian besar lainnya.
  • Perbaiki pg_dump dan pg_restore untuk memancarkan perintah REFRESH MATERIALIZED VIEW terakhir (Tom Lane)
  • Ini mencegah kesalahan saat membuang / memulihkan saat tampilan terwujud merujuk ke tabel yang dimiliki oleh pengguna yang berbeda.
  • Tingkatkan pelaporan pg_dump / pg_restore tentang kondisi kesalahan yang berasal dari zlib (Vladimir Kunschikov, Alvaro Herrera)
  • Perbaiki pg_dump dengan opsi --clean untuk menghentikan pemicu peristiwa seperti yang diharapkan (Tom Lane)
  • Sekarang juga secara benar menetapkan kepemilikan pemicu peristiwa; sebelumnya, mereka dipulihkan sebagai dimiliki oleh superuser yang menjalankan skrip pemulihan.
  • Perbaiki pg_dump dengan opsi --clean agar tidak gagal ketika skema publik tidak ada (Stephen Frost)
  • Perbaiki pg_dump untuk tidak mengeluarkan SQL yang tidak valid untuk kelas operator kosong (Daniel Gustafsson)
  • Perbaiki keluaran pg_dump ke stdout pada Windows (Kuntal Ghosh)
  • Pembuangan teks biasa yang dikompresi yang ditulis ke stdout akan berisi data yang rusak karena kegagalan menempatkan deskriptor file ke dalam mode biner.
  • Perbaiki pg_get_ruledef () untuk mencetak hasil yang benar untuk aturan ON SELECT dari tampilan yang namanya telah diubah namanya (Tom Lane)
  • Dalam beberapa kasus sudut, pg_dump mengandalkan pg_get_ruledef () untuk membuang tampilan, sehingga kesalahan ini dapat menyebabkan kegagalan dump / reload.
  • Memperbaiki pembuangan gabungan luar dengan kendala kosong, seperti hasil dari ALAT KIRI ALAMI tanpa kolom umum (Tom Lane)
  • Perbaiki penuangan ekspresi fungsi dalam klausa FROM dalam kasus-kasus di mana ekspresi tidak menurun menjadi sesuatu yang tampak seperti panggilan fungsi (Tom Lane)
  • Perbaiki keluaran pg_basebackup ke stdout pada Windows (Haribabu Kommi)
  • Cadangan yang ditulis ke stdout akan berisi data yang rusak karena kegagalan menempatkan deskriptor file ke mode biner.
  • Perbaiki pg_rewind untuk menangani file dengan benar melebihi 2GB (Kuntal Ghosh, Michael Paquier)
  • Biasanya file seperti itu tidak akan muncul di direktori data PostgreSQL, tetapi bisa ada dalam beberapa kasus.
  • Perbaiki pg_upgrade untuk memastikan bahwa catatan WAL akhir tidak memiliki wal_level = minimum (Bruce Momjian)
  • Kondisi ini dapat mencegah server siaga yang ditingkatkan untuk terhubung kembali.
  • Perbaiki perhitungan pg_xlogdump tentang WAL record length (Andres Freund)
  • Di postgres_fdw, buat kembali koneksi ke server jauh setelah ALTER SERVER atau perintah ALTER USER MAPPING (Kyotaro Horiguchi)
  • Ini memastikan bahwa perubahan opsi yang memengaruhi parameter koneksi akan segera diterapkan.
  • Dalam postgres_fdw, izinkan pembatalan perintah kontrol transaksi jarak jauh (Robert Haas, Rafia Sabih)
  • Perubahan ini memungkinkan kami dengan cepat melarikan diri dari menunggu server jarak jauh yang tidak responsif dalam banyak kasus daripada sebelumnya.
  • Tingkatkan MAX_SYSCACHE_CALLBACKS untuk menyediakan lebih banyak ruang untuk ekstensi (Tom Lane)
  • Selalu gunakan -fPIC, bukan -fpic, ketika membangun pustaka bersama dengan gcc (Tom Lane)
  • Ini mendukung pustaka ekstensi yang lebih besar pada platform yang membuat perbedaan.
  • Di MSVC build, menangani kasus di mana pustaka openssl tidak berada dalam subdirektori VC (Andrew Dunstan)
  • Pada MSVC build, tambahkan path include yang tepat untuk file header libxml2 (Andrew Dunstan)
  • Ini memperbaiki kebutuhan sebelumnya untuk memindahkan berbagai hal di instalasi Windows standar libxml2.
  • Di MSVC build, kenali pustaka Tcl yang bernama tcl86.lib (Noah Misch)
  • Dalam MSVC build, hormati pengaturan PROVE_FLAGS pada baris perintah vcregress.pl (Andrew Dunstan)

Apa yang baru di versi 9.6.4:

  • Lebih lanjut membatasi visibilitas pg_user_mappings.umoptions, untuk melindungi kata sandi yang disimpan sebagai opsi pemetaan pengguna (Noah Misch)
  • Perbaikan untuk CVE-2017-7486 tidak benar: itu memungkinkan pengguna untuk melihat opsi dalam pemetaan pengguna sendiri, bahkan jika dia tidak memiliki izin USAGE di server asing terkait. Pilihan tersebut mungkin termasuk kata sandi yang telah disediakan oleh pemilik server daripada pengguna itu sendiri. Karena informasi_schema.user_mapping_options tidak menunjukkan opsi dalam kasus seperti itu, pg_user_mappings seharusnya tidak baik. (CVE-2017-7547)
  • Dengan sendirinya, tambalan ini hanya akan memperbaiki perilaku dalam basis data baru initdb. Jika Anda ingin menerapkan perubahan ini dalam database yang sudah ada, Anda perlu melakukan hal-hal berikut:
  • Mulai ulang postmaster setelah menambahkan allow_system_table_mods = true to postgresql.conf. (Dalam versi yang mendukung ALTER SYSTEM, Anda dapat menggunakannya untuk membuat perubahan konfigurasi, tetapi Anda masih perlu memulai ulang.)
  • Di setiap basis data kluster, jalankan perintah berikut sebagai superuser:
  • SET search_path = pg_catalog;
  • BUAT ATAU REPLACE VIEW pg_user_mappings AS
  • PILIH
  • U.oid AS umid,
  • S.oid AS srvid,
  • S.srvname AS srvname,
  • U.umuser AS umuser,
  • KASUS SAAT U.umuser = 0 KEMUDIAN
  • 'publik'
  • ELSE
  • A.rolname
  • END AS usename,
  • KASUS SAAT (U.umuser 0 DAN A.rolname = current_user
  • DAN (pg_has_role (S.srvowner, 'USAGE')
  • ATAU has_server_privilege (S.oid, 'USAGE')))
  • ATAU (U.umuser = 0 DAN pg_has_role (S.srvowner, 'USAGE'))
  • ATAU (PILIH rolsuper DARI pg_authid WHERE rolname = current_user)
  • THEN U.umoptions
  • ELSE NULL END AS umoptions
  • DARI pg_user_mapping U
  • LEFT JOIN pg_authid A ON (A.oid = U.umuser) GABUNG
  • pg_foreign_server S ON (U.umserver = S.oid);
  • Jangan lupa untuk menyertakan database template0 dan template1, atau kerentanan akan tetap ada di database yang Anda buat nanti. Untuk memperbaiki template0, Anda perlu membuatnya menerima koneksi untuk sementara. Di PostgreSQL 9.5 dan yang lebih baru, Anda dapat menggunakan
  • ALTER DATABASE template0 DENGAN ALLOW_CONNECTIONS true;
  • dan kemudian setelah memperbaiki template0, batalkan itu dengan
  • ALTER DATABASE template0 DENGAN ALLOW_CONNECTIONS salah;
  • Di versi sebelumnya, gunakan
  • UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
  • UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
  • Akhirnya, hapus pengaturan konfigurasi allow_system_table_mods, dan jalankan lagi postmaster.
  • Jangan izinkan kata sandi kosong dalam semua metode otentikasi berbasis kata sandi (Heikki Linnakangas)
  • libpq mengabaikan spesifikasi kata sandi kosong, dan tidak mengirimnya ke server. Jadi, jika kata sandi pengguna telah disetel ke string kosong, tidak mungkin untuk masuk dengan kata sandi itu melalui psql atau klien berbasis libpq lainnya. Oleh karena itu seorang administrator mungkin percaya bahwa pengaturan kata sandi untuk mengosongkan setara dengan menonaktifkan login kata sandi. Namun, dengan klien yang dimodifikasi atau non-libpq, login dapat dilakukan, tergantung pada metode otentikasi yang dikonfigurasi. Khususnya metode yang paling umum, md5, menerima kata sandi kosong. Ubah server untuk menolak kata sandi kosong dalam semua kasus. (CVE-2017-7546)
  • Membuat lo_put () memeriksa hak istimewa UPDATE pada objek besar target (Tom Lane, Michael Paquier)
  • lo_put () pasti membutuhkan perizinan yang sama dengan lowrite (), tetapi pemeriksaan tidak ada, memungkinkan setiap pengguna untuk mengubah data dalam objek besar. (CVE-2017-7548)
  • Perbaiki dokumentasi tentang proses untuk meningkatkan server siaga dengan pg_upgrade (Bruce Momjian)
  • Dokumentasi sebelumnya menginstruksikan pengguna untuk memulai / menghentikan server utama setelah menjalankan pg_upgrade tetapi sebelum menyinkronkan server siaga. Urutan ini tidak aman.
  • Perbaiki penguncian bersamaan rantai pembaruan tupel (Alvaro Herrera)
  • Jika beberapa sesi secara bersamaan mengunci rantai pembaruan tupel dengan mode kunci nonkonflik menggunakan snapshot lama, dan semuanya berhasil, mungkin bagi beberapa dari mereka untuk tetap gagal (dan menyimpulkan tidak ada versi tuple hidup) karena balapan kondisi. Ini memiliki konsekuensi seperti pemeriksaan kunci asing gagal melihat tupel yang pasti ada tetapi sedang diperbarui secara bersamaan.
  • Memperbaiki potensi kerusakan data saat membekukan tuple yang XMAX-nya merupakan multixact dengan satu anggota yang masih menarik (Teodor Sigaev)
  • Hindari kelebihan bilangan bulat dan terjadilah crash saat menyortir lebih dari satu miliar tupel dalam-memori (Sergey Koposov)
  • Di Windows, coba lagi pembuatan proses jika kami gagal memesan kisaran alamat untuk memori bersama kami dalam proses baru (Tom Lane, Amit Kapila)
  • Ini diharapkan untuk memperbaiki kegagalan proses anak yang jarang terjadi yang mungkin disebabkan oleh gangguan dari produk antivirus.
  • Perbaiki kemungkinan rendah korupsi tabel hash hash kunci bersama di Windows builds (Thomas Munro, Tom Lane)
  • Hindari mencatat penutupan bersih dari koneksi SSL seolah-olah itu adalah koneksi ulang (Michael Paquier)
  • Mencegah pengiriman tiket sesi SSL ke klien (Tom Lane)
  • Perbaikan ini mencegah kegagalan rekoneksi dengan kode SSL sisi klien yang tahu tiket.
  • Perbaiki kode untuk pengaturan tcp_keepalives_idle di Solaris (Tom Lane)
  • Perbaiki kolektor statistik untuk menghormati pesan penyelidikan yang dikeluarkan tepat setelah shutdown postmaster dan segera restart (Tom Lane)
  • Permintaan informasi statistik yang dikeluarkan dalam setengah detik dari penutupan postmaster sebelumnya secara efektif diabaikan.
  • Pastikan bahwa ukuran buffer kolektor statistik setidaknya 100KB (Tom Lane)
  • Ini mengurangi risiko data statistik yang dijatuhkan pada platform lama yang ukuran buffer bawaannya lebih kecil dari itu.
  • Perbaiki kemungkinan pembuatan segmen WAL yang tidak valid ketika siaga dipromosikan tepat setelah memproses catatan XLOG_SWITCH WAL (Andres Freund)
  • Perbaiki walsender untuk segera keluar saat permintaan klien dimatikan (Tom Lane)
  • Perbaiki SIGHUP dan SIGUSR1 yang menangani proses walsender (Petr Jelinek, Andres Freund)
  • Cegah kepanikan yang dipicu oleh walsender selama pemeriksaan penutupan (Andres Freund, Michael Paquier)
  • Perbaiki restart proses walreceiver yang tidak perlu lambat karena kondisi balapan di postmaster (Tom Lane)
  • Perbaiki kebocoran subtransaksi kecil yang tumpah ke disk selama penguraian logis (Andres Freund)
  • Ini mengakibatkan file sementara menghabiskan ruang disk yang berlebihan.
  • Mengurangi pekerjaan yang diperlukan untuk membuat foto selama pembuatan slot logika-decoding (Andres Freund, Petr Jelinek)
  • Algoritma sebelumnya sangat mahal pada server dengan banyak transaksi terbuka.
  • Perbaiki kondisi balapan yang dapat menunda pembuatan slot logika-decoding (Andres Freund, Petr Jelinek)
  • Kurangi overhead dalam memproses kejadian pembatalan syscache (Tom Lane)
  • Ini sangat membantu untuk penguraian kode yang logis, yang sering memicu pembatalan cache.
  • Hapus heuristik yang salah yang digunakan dalam beberapa kasus untuk memperkirakan selektivitas gabungan berdasarkan keberadaan batasan foreign-key (David Rowley)
  • Dalam beberapa kasus di mana kendala kunci asing multi-kolom ada tetapi tidak benar-benar cocok dengan struktur gabungan kueri, perencana menggunakan estimasi heuristik yang ternyata tidak berfungsi dengan baik sama sekali. Kembalikan kasus tersebut ke cara mereka diperkirakan sebelum 9.6.
  • Memperbaiki kasus di mana INSERT atau UPDATE menetapkan lebih dari satu elemen kolom yang memiliki tipe domain-over-array (Tom Lane)
  • Memungkinkan fungsi-fungsi window untuk digunakan dalam sub-SELECT yang berada dalam argumen fungsi agregat (Tom Lane)
  • Pastikan bahwa klausa PERIKSA PERIKSA pandangan diberlakukan dengan benar saat tabel yang mendasari adalah tabel asing (Etsuro Fujita)
  • Sebelumnya, pembaruan mungkin didorong sepenuhnya ke server asing, tetapi kebutuhan untuk memverifikasi kondisi tampilan tidak terjawab jika demikian.
  • Memindahkan jenis larik yang diautogenerasi dari jalan selama ALTER ... RENAME (Vik Fearing)
  • Sebelumnya, kami akan mengganti nama jenis array autogenerated yang bertolak belakang selama CREATE; perbaikan ini memperluas perilaku itu untuk mengganti nama operasi.
  • Perbaiki pointer yang menggantung di ALTER TABLE ketika ada komentar tentang kendala yang termasuk dalam tabel (David Rowley)
  • Menerapkan kembali komentar ke kendala yang direkonstruksi dapat gagal dengan pesan kesalahan yang aneh, atau bahkan mogok.
  • Pastikan bahwa ALTER USER ... SET menerima semua varian sintaks yang ALTER ROLE ... SET melakukan (Peter Eisentraut)
  • Biarkan kendala PERIKSA tabel asing menjadi awalnya TIDAK VALID (Amit Langote)
  • BUAT TABLE diam-diam menjatuhkan penentu TIDAK VALID untuk kendala PERIKSA, beralasan bahwa tabel harus kosong sehingga kendala dapat segera divalidasi. Tapi ini salah untuk CREATE FOREIGN TABLE, di mana tidak ada alasan untuk menganggap bahwa tabel yang mendasari kosong, dan bahkan jika itu bukan urusan kita untuk memutuskan bahwa kendala dapat dianggap valid. Lewati "pengoptimalan" ini untuk tabel asing.
  • Memperbarui info dependensi dengan benar saat mengubah argumen jenis data I / O atau jenis kembalinya dari buram ke jenis yang benar (Heikki Linnakangas)
  • CREATE TYPE memperbarui fungsi I / O yang dideklarasikan dalam gaya yang sudah lama usang ini, tetapi lupa mencatat ketergantungan pada jenis, memungkinkan TYPE DROP berikutnya meninggalkan definisi fungsi yang rusak di belakang.
  • Izinkan paralelisme dalam rencana kueri ketika COPY menyalin dari hasil kueri (Andres Freund)
  • Kurangi penggunaan memori ketika ANALYZE memproses kolom tsvector (Heikki Linnakangas)
  • Perbaiki ketepatan yang tidak perlu dan pembulatan sembrono saat mengalikan atau membagi nilai uang dengan bilangan bulat atau pelampung (Tom Lane)
  • Kencangkan pemeriksaan untuk spasi dalam fungsi yang mem-parsing pengidentifikasi, seperti regprocedurein () (Tom Lane)
  • Bergantung pada lokal yang berlaku, fungsi-fungsi ini dapat salah menafsirkan fragmen karakter multibyte sebagai spasi putih.
  • Gunakan simbol #define yang relevan dari Perl saat mengompilasi PL / Perl (Ashutosh Sharma, Tom Lane)
  • Ini menghindari masalah portabilitas, biasanya bermanifestasi sebagai ketidaksesuaian "jabat tangan" selama beban pustaka, saat bekerja dengan versi Perl terbaru.
  • Dalam libpq, setel ulang status autentikasi GSS / SASL dan SSPI dengan benar setelah upaya koneksi gagal (Michael Paquier)
  • Kegagalan untuk melakukan ini berarti bahwa ketika mundur dari SSL ke koneksi non-SSL, kegagalan GSS / SASL dalam upaya SSL akan selalu menyebabkan upaya non-SSL gagal. SSPI tidak gagal, tetapi bocor memori.
  • Dalam psql, memperbaiki kegagalan ketika COPY FROM STDIN diakhiri dengan keyboard EOF signal dan kemudian COPY FROM STDIN lainnya dicoba (Thomas Munro)
  • Perilaku buruk ini diamati pada platform BSD yang diturunkan (termasuk macOS), tetapi tidak pada sebagian besar lainnya.
  • Perbaiki pg_dump dan pg_restore untuk memancarkan perintah REFRESH MATERIALIZED VIEW terakhir (Tom Lane)
  • Ini mencegah kesalahan saat membuang / memulihkan saat tampilan terwujud merujuk ke tabel yang dimiliki oleh pengguna yang berbeda.
  • Tingkatkan pelaporan pg_dump / pg_restore tentang kondisi kesalahan yang berasal dari zlib (Vladimir Kunschikov, Alvaro Herrera)
  • Perbaiki pg_dump dengan opsi --clean untuk menghentikan pemicu peristiwa seperti yang diharapkan (Tom Lane)
  • Sekarang juga secara benar menetapkan kepemilikan pemicu peristiwa; sebelumnya, mereka dipulihkan sebagai dimiliki oleh superuser yang menjalankan skrip pemulihan.
  • Perbaiki pg_dump dengan opsi --clean agar tidak gagal ketika skema publik tidak ada (Stephen Frost)
  • Perbaiki pg_dump untuk tidak mengeluarkan SQL yang tidak valid untuk kelas operator kosong (Daniel Gustafsson)
  • Perbaiki keluaran pg_dump ke stdout pada Windows (Kuntal Ghosh)
  • Pembuangan teks biasa yang dikompresi yang ditulis ke stdout akan berisi data yang rusak karena kegagalan menempatkan deskriptor file ke dalam mode biner.
  • Perbaiki pg_get_ruledef () untuk mencetak hasil yang benar untuk aturan ON SELECT dari tampilan yang namanya telah diubah namanya (Tom Lane)
  • Dalam beberapa kasus sudut, pg_dump mengandalkan pg_get_ruledef () untuk membuang tampilan, sehingga kesalahan ini dapat menyebabkan kegagalan dump / reload.
  • Memperbaiki pembuangan gabungan luar dengan kendala kosong, seperti hasil dari ALAT KIRI ALAMI tanpa kolom umum (Tom Lane)
  • Perbaiki penuangan ekspresi fungsi dalam klausa FROM dalam kasus-kasus di mana ekspresi tidak menurun menjadi sesuatu yang tampak seperti panggilan fungsi (Tom Lane)
  • Perbaiki keluaran pg_basebackup ke stdout pada Windows (Haribabu Kommi)
  • Cadangan yang ditulis ke stdout akan berisi data yang rusak karena kegagalan menempatkan deskriptor file ke mode biner.
  • Perbaiki pg_rewind untuk menangani file dengan benar melebihi 2GB (Kuntal Ghosh, Michael Paquier)
  • Biasanya file seperti itu tidak akan muncul di direktori data PostgreSQL, tetapi bisa ada dalam beberapa kasus.
  • Perbaiki pg_upgrade untuk memastikan bahwa catatan WAL akhir tidak memiliki wal_level = minimum (Bruce Momjian)
  • Kondisi ini dapat mencegah server siaga yang ditingkatkan untuk terhubung kembali.
  • Perbaiki perhitungan pg_xlogdump tentang WAL record length (Andres Freund)
  • Di postgres_fdw, buat kembali koneksi ke server jauh setelah ALTER SERVER atau perintah ALTER USER MAPPING (Kyotaro Horiguchi)
  • Ini memastikan bahwa perubahan opsi yang memengaruhi parameter koneksi akan segera diterapkan.
  • Dalam postgres_fdw, izinkan pembatalan perintah kontrol transaksi jarak jauh (Robert Haas, Rafia Sabih)
  • Perubahan ini memungkinkan kami dengan cepat melarikan diri dari menunggu server jarak jauh yang tidak responsif dalam banyak kasus daripada sebelumnya.
  • Tingkatkan MAX_SYSCACHE_CALLBACKS untuk menyediakan lebih banyak ruang untuk ekstensi (Tom Lane)
  • Selalu gunakan -fPIC, bukan -fpic, ketika membangun pustaka bersama dengan gcc (Tom Lane)
  • Ini mendukung pustaka ekstensi yang lebih besar pada platform yang membuat perbedaan.
  • Di MSVC build, menangani kasus di mana pustaka openssl tidak berada dalam subdirektori VC (Andrew Dunstan)
  • Pada MSVC build, tambahkan path include yang tepat untuk file header libxml2 (Andrew Dunstan)
  • Ini memperbaiki kebutuhan sebelumnya untuk memindahkan berbagai hal di instalasi Windows standar libxml2.
  • Di MSVC build, kenali pustaka Tcl yang bernama tcl86.lib (Noah Misch)
  • Dalam MSVC build, hormati pengaturan PROVE_FLAGS pada baris perintah vcregress.pl (Andrew Dunstan)

Software yang serupa

Berkeley DB
Berkeley DB

27 Apr 17

DAMP
DAMP

2 Jun 15

progress_sa
progress_sa

20 Feb 15

Komentar untuk PostgreSQL

Komentar tidak ditemukan
Tambahkan komentar
Aktifkan gambar!