Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Extensies en modules in PostgreSQL zijn krachtige hulpprogramma's die u kunt gebruiken om de functionaliteit van het databasesysteem uit te breiden. Ze variëren van eenvoudige SQL-objecten tot complexe binaire bibliotheken en bieden extra functies en mogelijkheden die niet beschikbaar zijn in de postgreSQL-kerndistributie.
Uitbreidingen
Als u een extensie wilt definiëren, hebt u ten minste één scriptbestand nodig dat de SQL-opdrachten bevat om de objecten te maken die worden gedistribueerd door de extensie en één besturingselementbestand dat een basiseigenschappen van de extensie zelf aangeeft.
Wanneer u extensies in een database maakt, installeert of laadt, implementeren ze een set bundelobjecten die de functionaliteit van de engine willen uitbreiden. Deze objecten kunnen functies, operators, rollen, gegevenstypen, toegangsmethoden en andere databaseobjecttypen zijn.
Wanneer u extensies uit een database dropt, deïnstalleert of ontlaadt, worden alle objecten verwijderd die door de extensie zijn aangemaakt. Een uitzondering hierop is wanneer er andere objecten in de database zijn met afhankelijkheden van een van de objecten die door de extensie zijn gedefinieerd.
U kunt de implementatie schrijven van de functionaliteit die wordt geleverd door deze objecten die worden gedistribueerd door de extensie in SQL of PL/pgSQL. Maar u kunt het ook implementeren in een afzonderlijk bestand met een gedeelde bibliotheek (binair), wat het resultaat is van het compileren van de broncode (meestal geschreven in C of Rust) waarmee de functionaliteit wordt geïmplementeerd.
In PostgreSQL beheert u extensies via de CREATE EXTENSION, ALTER EXTENSIONen DROP EXTENSIONCOMMENT ON EXTENSION opdrachten.
-
CREATE EXTENSIONmaakt, installeert of laadt een extensie in de database waarin u de opdracht uitvoert. -
ALTER EXTENSIONwerkt de extensie bij naar een nieuwere versie. -
DROP EXTENSIONverwijdert, deïnstalleert of laadt een uitbreiding uit de database waarin u de opdracht uitvoert. -
COMMENT ON EXTENSIONslaat een opmerking op over de extensie als een databaseobject.
Wanneer de server wordt gestart, wordt een geheugengebied gedefinieerd waartoe alle back-endprocessen toegang hebben, om eventuele workloads gezamenlijk uit te voeren. In postgreSQL-jargon wordt dat geheugengebied aangeduid als gedeeld geheugen.
Sommige extensies die functionaliteit implementeren met behulp van gedeelde bibliotheken, moeten toegang hebben tot dat gedeelde geheugengebied vanuit de code die in deze bibliotheken is gebouwd. Deze extensies hebben nog een vereiste, namelijk dat hun gedeelde bibliotheekbestanden moeten worden geladen door het hoofdengineproces, zodra de server wordt gestart. Volg voor deze bibliotheken de instructies in de laadbibliotheken.
Modules
Hoewel ze niet worden beschouwd als extensies omdat ze geen besturingselementbestand en een scriptbestand hebben om gebundelde SQL-objecten in een database te implementeren, implementeert een andere vorm van uitbreidbaarheid in PostgreSQL functionaliteit in zelfstandige gedeelde binaire bibliotheekbestanden.
U kunt deze bestanden laden in het geheugen wanneer de server wordt gestart. Ze kunnen code implementeren die doorgaans afwijkt van het natuurlijke uitvoeringspad van PostgreSQL om de standaardwerking van de database-engine te wijzigen. Dergelijke gedragswijzigingen zijn normaal gesproken gericht op het versterken van een beperkte functionaliteit van de motor.
Azure Database for PostgreSQL ondersteunt de volgende modules:
- auto_explain
- pg_failover_slots
- pg_partman_bgw
- wal2json