NavigationContentFooter
Jump toSuggest an edit

PostgreSQL extensions reference

Reviewed on 04 September 2024

The following pg_extensions are available with Scaleway Managed Databases for PostgreSQL:

ExtensionDescription
address_standardizerParses addresses into their constituent elements, typically used in the geocoding normalization process.
address_standardizer_data_usProvides a dataset example for the US Address Standardizer extension.
bloomImplements a Bloom filter-based index, ideal for situations where space efficiency is crucial.
btree_ginAdds support for indexing common data types using the GIN (Generalized Inverted Index) method.
btree_gistAdds support for indexing common data types using the GiST (Generalized Search Tree) method.
citextProvides a case-insensitive character string data type for easier text comparison.
cubeDefines a data type for representing multidimensional cubes, useful in mathematical and geometrical computations.
dblinkEnables connections to other PostgreSQL databases from within a database session, facilitating cross-database queries.
dict_intOffers a text search dictionary template optimized for integer values.
dict_xsynProvides a text search dictionary template for advanced synonym processing, improving search accuracy.
earthdistanceCalculates great-circle distances between points on Earth, useful in geographical applications.
fuzzystrmatchDetermines similarities and differences between strings, helpful for tasks like data deduplication.
hstoreStores sets of key-value pairs in a single value, enabling a flexible schema for semi-structured data.
intaggAggregates and enumerates integer values, though it is considered obsolete.
intarrayProvides functions, operators, and indexing support for one-dimensional arrays of integers, enhancing array processing.
isnSupports data types for international product numbering standards, such as ISBN and EAN.
ltreeDefines a data type for representing tree-like structures in a hierarchical manner, facilitating complex data modeling.
ogr_fdwAllows PostgreSQL to access vector data from various spatial formats using the GDAL/OGR library.
pg_buffercacheInspects the shared buffer cache to monitor and analyze the usage of cached data.
pg_cronSchedules jobs within PostgreSQL using a cron-like syntax, automating routine database tasks.
pg_freespacemapExamines the free space map (FSM) to monitor and manage available storage within the database.
pg_prewarmPreloads relation data into memory to reduce initial disk I/O latency and improve performance.
pg_stat_statementsTracks planning and execution statistics for all SQL statements, aiding in performance tuning.
pg_trgmMeasures text similarity and provides index searching based on trigrams, enhancing text search capabilities.
pg_visibilityInspects the visibility map (VM) and provides page-level visibility information, useful for debugging.
pgauditEnables detailed logging of session and object-level activities for audit purposes, using PostgreSQL’s standard logging facility.
pgcryptoProvides cryptographic functions for data encryption, decryption, and hashing, essential for secure data storage.
pgrowlocksDisplays information about row-level locking, helping in the diagnosis of concurrency issues.
pgstattupleReports detailed tuple-level statistics, useful for assessing table bloat and optimizing storage.
pgvectorSupports vector similarity search, often used for storing and searching embeddings in machine learning applications.
pgroutingExtends PostgreSQL and PostGIS with geospatial routing capabilities, enabling the calculation of shortest paths and other routing operations.
plpgsqlEnables the use of PL/pgSQL, a procedural language for PostgreSQL that allows complex control structures and query manipulation.
postgisAdds support for geographic objects, allowing location queries to be run in SQL, and is the foundation of geographic information system (GIS) functionality in PostgreSQL.
postgis_rasterImplements raster data support in PostGIS, enabling analysis and storage of raster images alongside vector data.
postgis_sfcgalAdds advanced 3D geometry functions to PostGIS, leveraging the SFCGAL library for complex spatial operations.
postgis_tiger_geocoderProvides geocoding and reverse geocoding capabilities based on the US Census TIGER data within PostGIS.
postgis_topologySupports topological data models in PostGIS, allowing for advanced spatial relationships and analyses.
postgres_fdwFacilitates the connection to and querying of external PostgreSQL servers using a foreign-data wrapper.
sslinfoProvides information about SSL certificates used by the PostgreSQL server, enhancing security management.
tablefuncOffers functions for manipulating entire tables, including crosstab operations for pivot tables.
timescaledbEnables efficient handling and analysis of time-series data, extending PostgreSQL with specialized time-series functions.
tsm_system_rowsImplements a TABLESAMPLE method that limits the number of rows returned, useful for sampling large datasets.
tsm_system_timeImplements a TABLESAMPLE method that limits rows based on a time duration, useful for time-based sampling.
unaccentProvides a text search dictionary that removes accents from characters, improving text search accuracy.
uuid-osspGenerates universally unique identifiers (UUIDs), essential for ensuring data uniqueness across distributed systems.

Extension best practices

  • When you use functions installed by postgres extensions, the best practice is to specify the namespace of the function if you do not modify the search_path. When functions come from extensions or are used in postgresql objects, it is necessary to specify the namespace of these functions independently of search_path management to avoid errors when restoring backups.
  • Some extensions, such as pg_audit, must be configured from the advanced settings tab in the console. Refer to the Setting up and using pgaudit documentation page for more information.

Extension usage example

For example, if the unaccent extension is installed in a public schema and the search_path is not set to public, you should run the following function instead of running SELECT unaccent('a'):

SELECT public.unaccent('a')

Likewise, when the view is restored from a database backup, you can use the following function to avoid an error:

CREATE VIEW myview AS SELECT public.unaccent(mycolumn) from mytable;
Docs APIScaleway consoleDedibox consoleScaleway LearningScaleway.comPricingBlogCarreer
© 2023-2024 – Scaleway