مشاركة عبر


الملحقات والوحدات النمطية

الملحقات والوحدات النمطية في PostgreSQL هي أدوات قوية تسمح للمستخدمين بتوسيع وظائف نظام قاعدة البيانات. يمكن أن تتراوح من عناصر SQL البسيطة إلى المكتبات الثنائية المعقدة، ما يوفر ميزات وقدرات إضافية غير متوفرة في توزيع PostgreSQL الأساسي.

ملحقات

لتحديد ملحق ، يلزم على الأقل ملف نصي واحد يحتوي على أوامر SQL لإنشاء الكائنات الموزعة بواسطة الامتداد ، وملف تحكم واحد يحدد بعض الخصائص الأساسية للامتداد نفسه.

عند إنشاء الملحقات أو تثبيتها أو تحميلها في قاعدة بيانات، فإنها تنشر مجموعة من عناصر المجموعة التي تهدف إلى توسيع وظائف المحرك. يمكن أن تكون هذه الكائنات دالات وعوامل تشغيل وأدوار وأنواع بيانات وأساليب وصول وأنواع عناصر قاعدة بيانات أخرى.

عند إسقاط الملحقات أو إلغاء تثبيتها أو إلغاء تحميلها من قاعدة بيانات، تتم إزالة كافة الكائنات التي تم إنشاؤها بواسطة الملحق. استثناء لتلك الحالة هو عندما تكون هناك كائنات أخرى في قاعدة البيانات مع تبعيات على أي من الكائنات المعرفة بواسطة الملحق.

يمكن كتابة تنفيذ الوظائف التي توفرها تلك الكائنات الموزعة بواسطة الملحق في SQL أو PL/pgSQL. ولكن يمكن أيضا تنفيذه في ملف مكتبة مشتركة منفصل (ثنائي)، وهو نتيجة تجميع التعليمات البرمجية المصدر (عادة ما تكون مكتوبة بلغة C أو Rust) التي تنفذ الوظيفة.

في PostgreSQL، تتم إدارة الملحقات من خلال CREATE EXTENSIONALTER EXTENSIONDROP EXTENSIONالأوامر و و.COMMENT ON EXTENSION

  • CREATE EXTENSION إنشاء ملحق أو تثبيته أو تحميله في قاعدة البيانات التي يتم تنفيذ الأمر فيها.
  • ALTER EXTENSION يحدث الملحق إلى إصدار أحدث.
  • DROP EXTENSION إسقاط ملحق من قاعدة البيانات التي يتم تنفيذ الأمر فيها أو إلغاء تثبيته أو إلغاء تحميله.
  • COMMENT ON EXTENSION يخزن تعليقا حول الملحق ككائن قاعدة بيانات.

عند بدء تشغيل الخادم ، فإنه يحدد منطقة الذاكرة التي يمكن لجميع عمليات الواجهة الخلفية الوصول إليها ، لتشغيل أي أحمال عمل بشكل تعاوني. في مصطلحات PostgreSQL، يشار إلى منطقة الذاكرة هذه باسم الذاكرة المشتركة.

بعض الملحقات التي تنفذ الوظائف باستخدام المكتبات المشتركة ، يتم الوصول إلى منطقة الذاكرة المشتركة هذه من التعليمات البرمجية المضمنة في تلك المكتبات. هذه الامتدادات لها مطلب آخر ، وهو أنه يجب تحميل ملفات المكتبة المشتركة الخاصة بهم بواسطة عملية المحرك الرئيسي ، بمجرد بدء تشغيل الخادم. بالنسبة لهذه المكتبات، تحتاج إلى اتباع الإرشادات الموجودة في مكتبات التحميل.

الوحدات النمطية

على الرغم من عدم اعتبارها امتدادات على هذا النحو ، نظرا لعدم وجود ملف تحكموملف نصي لنشر كائنات SQL المجمعة في قاعدة بيانات ، إلا أن شكلا آخر من أشكال القابلية للتوسعة في PostgreSQL يتكون من تنفيذ الوظائف في ملفات المكتبة الثنائية المشتركة المستقلة.

يمكن أيضا تحميل هذه الملفات في الذاكرة عند بدء تشغيل الخادم ويمكنها تنفيذ التعليمات البرمجية التي عادة ما تحول مسار التنفيذ الطبيعي ل PostgreSQL لتغيير الأداء الافتراضي للمحرك. عادة ما تهدف مثل هذه التعديلات السلوكية إلى تضخيم بعض الوظائف المحدودة للمحرك.

تدعم قاعدة بيانات Azure ل PostgreSQL الوحدات النمطية التالية:

  • auto_explain
  • pg_failover_slots
  • pg_partman_bgw
  • wal2json