Tillägg och moduler
Tillägg och moduler i PostgreSQL är kraftfulla verktyg som gör det möjligt för användare att utöka funktionerna i databassystemet. De kan variera från enkla SQL-objekt till komplexa binära bibliotek, vilket ger extra funktioner och funktioner som inte är tillgängliga i postgreSQL-kärndistributionen.
Tillägg
För att definiera ett tillägg krävs minst en skriptfil, som innehåller SQL-kommandona för att skapa de objekt som distribueras av tillägget och en kontrollfil, som anger några grundläggande egenskaper för själva tillägget.
När tillägg skapas, installeras eller läses in i en databas distribuerar de en uppsättning paketobjekt som syftar till att utöka motorns funktioner. Dessa objekt kan vara funktioner, operatorer, roller, datatyper, åtkomstmetoder och andra databasobjekttyper.
När tillägg tas bort, avinstalleras eller tas bort från en databas tas alla objekt som skapas av tillägget bort. Ett undantag i det fallet är när det finns andra objekt i databasen med beroenden för något av de objekt som definieras av tillägget.
Implementeringen av de funktioner som tillhandahålls av de objekt som distribueras av tillägget kan skrivas i SQL eller PL/pgSQL. Men det kan också implementeras i en separat delad biblioteksfil (binär fil), som är resultatet av kompileringen av källkoden (vanligtvis skriven i C eller Rust) som implementerar funktionerna.
I PostgreSQL hanteras tillägg via kommandona CREATE EXTENSION
, ALTER EXTENSION
, DROP EXTENSION
och COMMENT ON EXTENSION
.
-
CREATE EXTENSION
skapar, installerar eller läser in ett tillägg i databasen där kommandot körs. -
ALTER EXTENSION
uppdaterar tillägget till en nyare version. -
DROP EXTENSION
släpper, avinstallerar eller tar bort ett tillägg från databasen där kommandot körs. -
COMMENT ON EXTENSION
lagrar en kommentar om tillägget som ett databasobjekt.
När servern startas definierar den ett minnesområde som alla serverdelsprocesser kan komma åt för att tillsammans köra alla arbetsbelastningar. I PostgreSQL-jargong kallas det minnesområdet för delat minne.
Vissa tillägg som implementerar funktioner med hjälp av delade bibliotek kräver åtkomst till det delade minnet från koden som är inbyggd i dessa bibliotek. Dessa tillägg har ytterligare ett krav, vilket är att deras delade biblioteksfiler måste läsas in av huvudmotorprocessen så snart servern startar. För dessa bibliotek måste du följa anvisningarna i belastningsbibliotek.
Moduler
Även om de inte betraktas som tillägg som sådana, eftersom de inte har en kontrollfil och en skriptfil för att distribuera paketerade SQL-objekt i en databas, består en annan form av utökningsbarhet i PostgreSQL av implementeringsfunktioner i fristående delade biblioteksfiler.
Dessa filer kan också läsas in i minnet när servern startar, och de kan implementera kod som vanligtvis avleder den naturliga körningssökvägen för PostgreSQL och ändrar motorns standardfunktion. Sådana beteendeförändringar syftar normalt till att förstärka vissa begränsade funktioner i motorn.
Azure Database for PostgreSQL stöder följande moduler:
- auto_explain
- pg_failover_slots
- pg_partman_bgw
- wal2json