Aracılığıyla paylaş


Uzantılar ve modüller

PostgreSQL'deki uzantılar ve modüller, kullanıcıların veritabanı sisteminin işlevselliğini genişletmesine olanak sağlayan güçlü araçlardır. Bunlar basit SQL nesnelerinden karmaşık ikili kitaplıklara kadar değişebilir ve çekirdek PostgreSQL dağıtımında bulunmayan ek özellikler ve özellikler sağlar.

Uzantıları

Uzantı tanımlamak için, uzantı tarafından dağıtılan nesneleri oluşturmak için SQL komutlarını içeren en az bir betik dosyası ve uzantının birkaç temel özelliğini belirten bir denetim dosyası gerekir.

Uzantılar bir veritabanında oluşturulduğunda, yüklendiğinde veya yüklendiğinde, altyapının işlevselliğini genişletmeyi hedefleyen bir grup paket nesnesi dağıtırlar. Bu nesneler işlevler, işleçler, roller, veri türleri, erişim yöntemleri ve diğer veritabanı nesne türleri olabilir.

Uzantılar bir veritabanından bırakıldığında, kaldırıldığında veya yüklenmediğinde, uzantı tarafından oluşturulan tüm nesneler kaldırılır. Bu durumun bir istisnası, veritabanında uzantı tarafından tanımlanan nesnelerden herhangi birine bağımlılıkları olan başka nesneler olmasıdır.

Uzantı tarafından dağıtılan bu nesneler tarafından sağlanan işlevselliğin uygulanması SQL veya PL/pgSQL ile yazılabilir. Ancak, işlevi uygulayan kaynak kodu (genellikle C veya Rust ile yazılmış) derlemenin sonucu olan ayrı bir paylaşılan kitaplık (ikili) dosyasında da uygulanabilir.

PostgreSQL'de uzantılar , , CREATE EXTENSIONALTER EXTENSIONve DROP EXTENSION komutları aracılığıyla COMMENT ON EXTENSIONyönetilir.

  • CREATE EXTENSION komutun yürütüldiği veritabanına bir uzantı oluşturur, yükler veya yükler.
  • ALTER EXTENSION uzantıyı daha yeni bir sürüme güncelleştirir.
  • DROP EXTENSION komutun yürütüldiği veritabanından bir uzantıyı bırakır, kaldırır veya kaldırır.
  • COMMENT ON EXTENSION uzantı hakkında bir açıklamayı veritabanı nesnesi olarak depolar.

Sunucu başlatıldığında, tüm arka uç işlemlerinin tüm iş yüklerini birlikte çalıştırmak için erişebileceği bir bellek alanı tanımlar. PostgreSQL jargonunda, bu bellek alanı paylaşılan bellek olarak adlandırılır.

Paylaşılan kitaplıkları kullanarak işlevsellik uygulayan bazı uzantılar, bu kitaplıklardaki yerleşik koddan paylaşılan bellek alanına erişmesi gerekir. Bu uzantılar, paylaşılan kitaplık dosyalarının sunucu başlatılır başlatılmaz ana altyapı işlemi tarafından yüklenmesi gereken bir gereksinime daha sahiptir. Bu kitaplıklar için, yükleme kitaplıklarındaki yönergeleri izlemeniz gerekir.

Modül

Uzantılar bu şekilde kabul edilmese de, veritabanında paketlenmiş SQL nesnelerini dağıtmak için bir denetim dosyası ve betik dosyası olmadığından, PostgreSQL'deki başka bir genişletilebilirlik biçimi de tek başına paylaşılan ikili kitaplık dosyalarında işlevselliğin uygulanmasından oluşur.

Bu dosyalar, sunucu başlatıldığında da belleğe yüklenebilir ve genellikle, altyapının varsayılan çalışmasını değiştirmek için PostgreSQL'in doğal yürütme yolunu değiştiren kodu uygulayabilir. Bu tür davranış değişiklikleri normalde motorun bazı sınırlı işlevlerini yükseltmeyi hedefler.

PostgreSQL için Azure Veritabanı aşağıdaki modülleri destekler:

  • auto_explain
  • pg_failover_slots
  • pg_partman_bgw
  • wal2json