چگونه در PostgreSQL افزونه ایجاد کنیم؟

ایجاد یک پسوند کاملاً جدید برای PostgreSQL شامل چندین مرحله است.
در اینجا ما یک پسوند پایه ایجاد خواهیم کرد که تابع SQL را برای محاسبه فاکتوریل یک عدد صحیح اضافه می کند. این مثال با استفاده از زبان رویه ای PL/pgSQL نوشته شده است.
پسوند فاکتوریل را ایجاد کنید
1 سپتامبر:
پوشه factorial_extension را در آن ایجاد کنید share
دایرکتوری در پوشه نصب postgres.
ساختار پوشه را تنظیم کنید. این پوشه حاوی فایل است factorial_extension.control
و factorial_extension--1.0.sql
factorial_extension/
|
+-- factorial_extension.control
|
+-- factorial_extension--1.0.sql
2 سپتامبر:
فایل کنترل را بنویسید. فایل کنترلی برای یک برنامه افزودنی، همچنین به عنوان فایل .control شناخته می شود، یک فایل فراداده است که اطلاعاتی را در مورد پسوند ارائه می دهد. این شامل جزئیاتی مانند نام، نسخه، نویسنده، مسیر ماژول، وابستگی ها و سایر ویژگی های مهم برنامه افزودنی است.
# factorial_extension.control
comment="Extension to calculate factorial"
default_version = '1.0'
module_pathname="$libdir/factorial_extension"
relocatable = false
مرحله 3:
اسکریپت SQL را بنویسید (factorial_extension–1.0.sql):
-- factorial_extension--1.0.sql
-- Create a new schema for the extension
CREATE SCHEMA factorial_extension;
-- Create the factorial function
CREATE OR REPLACE FUNCTION factorial_extension.factorial(n INTEGER)
RETURNS BIGINT AS $$
DECLARE
result BIGINT := 1;
BEGIN
IF n < 0 THEN
RAISE EXCEPTION 'Factorial is not defined for negative numbers';
ELSIF n > 1 THEN
FOR i IN 2..n LOOP
result := result * i;
END LOOP;
END IF;
RETURN result;
END;
$$ LANGUAGE plpgsql;
-- Grant execute permission to public (change to appropriate roles if needed)
GRANT EXECUTE ON FUNCTION factorial_extension.factorial(INTEGER) TO PUBLIC;
Extension را اجرا کنید
مرحله 1: سرور PostgreSQL را راه اندازی یا راه اندازی مجدد کنید
گام 2: به پایگاه داده ای که می خواهید افزونه را نصب کنید وصل شوید
مرحله 3: برای نصب افزونه دستور زیر را اجرا کنید.
CREATE EXTENSION factorial_extension;
از افزونه استفاده کنید
SELECT factorial_extension.factorial(5);