Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Ekstensi dan modul di PostgreSQL adalah alat canggih yang memungkinkan pengguna memperluas fungsionalitas sistem database. Mereka dapat berkisar dari objek SQL sederhana hingga pustaka biner yang kompleks, menyediakan fitur dan kemampuan tambahan yang tidak tersedia dalam distribusi PostgreSQL inti.
Ekstensi
Untuk menentukan ekstensi, setidaknya diperlukan satu file skrip yang berisi perintah SQL untuk membuat objek yang didistribusikan oleh ekstensi, dan satu file kontrol yang menentukan beberapa properti dasar ekstensi itu sendiri.
Saat ekstensi dibuat, diinstal, atau dimuat dalam database, ekstensi tersebut menyebarkan sekumpulan objek bundel yang bertujuan untuk memperluas fungsionalitas mesin. Objek tersebut dapat berupa fungsi, operator, peran, jenis data, metode akses, dan jenis objek database lainnya.
Saat ekstensi dihilangkan, dihapus instalannya, atau dibongkar dari database, semua objek yang dibuat oleh ekstensi akan dihapus. Pengecualian untuk kasus tersebut adalah ketika ada objek lain dalam database dengan dependensi pada salah satu objek yang ditentukan oleh ekstensi.
Implementasi fungsionalitas yang disediakan oleh objek yang didistribusikan oleh ekstensi dapat ditulis dalam SQL atau PL/pgSQL. Tetapi juga dapat diimplementasikan dalam file pustaka bersama (biner) terpisah, yang merupakan hasil dari mengkompilasi kode sumber (biasanya ditulis dalam C atau Rust) yang mengimplementasikan fungsionalitas.
Di PostgreSQL, ekstensi dikelola melalui CREATE EXTENSIONperintah , , ALTER EXTENSIONDROP EXTENSION, dan COMMENT ON EXTENSION .
-
CREATE EXTENSIONmembuat, menginstal, atau memuat ekstensi ke dalam database tempat perintah dijalankan. -
ALTER EXTENSIONmemperbarui ekstensi ke versi yang lebih baru. -
DROP EXTENSIONmenjatuhkan, menghapus instalasi, atau membongkar ekstensi dari database tempat perintah dijalankan. -
COMMENT ON EXTENSIONmenyimpan komentar tentang ekstensi sebagai objek database.
Ketika server dimulai, server mendefinisikan area memori yang dapat diakses oleh semua proses backend, untuk menjalankan beban kerja apa pun secara kooperatif. Dalam jargon PostgreSQL, area memori tersebut disebut sebagai memori bersama.
Beberapa ekstensi yang menerapkan fungsionalitas menggunakan pustaka bersama perlu mengakses area memori bersama tersebut dari kode yang dibangun dalam pustaka-pustaka tersebut. Ekstensi tersebut memiliki satu persyaratan lagi, yaitu file pustaka bersama mereka harus dimuat oleh proses mesin utama, segera setelah server dimulai. Untuk pustaka tersebut, Anda perlu mengikuti instruksi di pustaka beban.
Modul
Meskipun tidak dianggap sebagai ekstensi seperti itu, karena mereka tidak memiliki file kontrol dan file skrip untuk menyebarkan objek SQL yang dibundel dalam database, bentuk ekstensibilitas lain di PostgreSQL terdiri dari penerapan fungsionalitas dalam file pustaka biner bersama mandiri.
File-file ini juga dapat dimuat dalam memori ketika server dimulai dan dapat menerapkan kode yang, biasanya, memutar jalur eksekusi alami PostgreSQL untuk mengubah fungsi default mesin. Perubahan perilaku tersebut biasanya bertujuan untuk memperkuat beberapa fungsionalitas mesin yang terbatas.
Azure Database for PostgreSQL mendukung modul berikut:
- auto_explain
- pg_failover_slots
- pg_partman_bgw
- wal2json