docker-compose/ext-src/README.md
This directory contains PostgreSQL extensions used primarily for:
Each extension directory follows a standard structure:
extension-name-src/ - Directory containing test files for the extension
test-upgrade.sh - Script for testing upgrade scenariosregular-test.sh - Script for testing with regular usersThis directory includes the following extensions:
hll-src - HyperLogLog, a fixed-size data structure for approximating cardinalityhypopg-src - Extension to create hypothetical indexesip4r-src - IPv4/v6 and subnet data typespg_cron-src - Run periodic jobs in PostgreSQLpg_graphql-src - GraphQL support for PostgreSQLpg_hint_plan-src - Execution plan hintspg_ivm-src - Incremental view maintenancepg_jsonschema-src - JSON Schema validationpg_repack-src - Reorganize tables with minimal lockspg_roaringbitmap-src - Roaring bitmap implementationpg_semver-src - Semantic version data typepg_session_jwt-src - JWT authentication for PostgreSQLpg_tiktoken-src - OpenAI Tiktoken tokenizerpg_uuidv7-src - UUIDv7 implementation for PostgreSQLpgjwt-src - JWT tokens for PostgreSQLpgrag-src - Retrieval Augmented Generation for PostgreSQLpgtap-src - Unit testing framework for PostgreSQLpgvector-src - Vector similarity searchpgx_ulid-src - ULID data typeplv8-src - JavaScript language for PostgreSQL stored procedurespostgresql-unit-src - SI units for PostgreSQLprefix-src - Prefix matching for stringsrag_bge_small_en_v15-src - BGE embedding model for RAGrag_jina_reranker_v1_tiny_en-src - Jina reranker model for RAGrum-src - RUM access method for text searchThe extensions in this directory are used by the test-upgrade.sh script to test upgrading extensions between different versions of Neon Compute nodes. The script:
For testing with regular users (particularly for cloud instances), each extension directory typically contains a regular-test.sh script that:
A note about pg_regress: Since pg_regress attempts to set lc_messages for the database by default, which is forbidden for regular users, we create databases manually and use the --use-existing option to bypass this limitation.
Two main workflows use these extensions:
These workflows are integrated into the build-and-test pipeline through shell scripts:
docker_compose_test.sh - Tests extensions in a Docker Compose environment
test_extensions_upgrade.sh - Tests extension upgrades between different Compute versions
To add a new extension for testing:
extension-name-src in this directoryregular-test.sh for testing with regular usersregular-test.sh doesn't exist, the system will look for neon-test.shmake installchecktest-upgrade.sh is only needed if you want to test upgrade scenariostest_extensions_upgrade.sh script if needed for upgrade testingIf you need to patch the extension sources:
test-upgrade.sh, neon-test.sh, regular-test.sh, or Makefile)