برنامه نویسی

چگونه در 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);

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا