INSTALL EXTENSION.
Built-in Extensions
vsql_complex
Status: Built-in with VillageSQL Repository: villagesql-server/villagesql/examples/vsql-complex Complex number data type with full arithmetic support for electrical engineering, signal processing, and scientific computing. Features:COMPLEXcolumn type for storing complex numbers (a + bi)- String literal format:
'(real,imaginary)'(e.g.,'(3.0,4.0)') - Arithmetic: add, subtract, multiply, divide
- Utilities:
complex_real(),complex_imag(),complex_abs(),complex_conjugate() - Binary storage: 16 bytes (2 doubles)
Core Extensions
The following extensions are maintained in separate repositories and must be built and installed separately. Each provides its own installation instructions and documentation.vsql_ai
Repository: villagesql/vsql-ai AI-powered SQL functions. AI prompting and embedding functions for SQL queries.ai_prompt() supports Anthropic Claude, Google Gemini, OpenAI, and local Ollama; ai_embedding() supports Google Gemini, OpenAI, and local Ollama.
vsql_crypto
Repository: villagesql/vsql-crypto Cryptographic functions. Hashing (MD5, SHA-1, SHA-256, SHA-512, and more), HMAC, AES encryption, password hashing, and secure random data generation using OpenSSL.vsql_cube
Repository: villagesql/vsql-cube N-dimensional box and point type. Store and query geometric boxes and points across up to 100 dimensions, with constructor, accessor, predicate, distance, and geometry functions. Requires VillageSQL 0.0.4.vsql_http
Repository: villagesql/vsql-http HTTP client functions. Make HTTP requests from SQL queries — GET, POST, PUT, DELETE, PATCH — with JSON responses, plus URL encoding and decoding.vsql_network_address
Repository: villagesql/vsql-network-address Network address types. IPv4, IPv6, and MAC address data types with validation, comparison, and network operations.vsql_uuid
Repository: villagesql/vsql-uuid UUID data type and functions. Generate and work with UUIDs natively in SQL — v1, v3, v4, v5, v6, and v7 — with a native 16-byte UUID type, timestamp extraction, and comparison.vsql_boolean
Repository: villagesql/vsql-boolean Real boolean type. A properSTRICTBOOL column type with standard truth values (true/false, yes/no, on/off, 1/0), 1-byte storage, and correct dump/restore semantics. Includes the aggregates boolean_sum(), which returns the count of TRUE values in a group as an INT, and boolean_avg(), which returns the fraction of TRUE values (true count ÷ non-null count) as a REAL. Both ignore NULLs; boolean_avg() returns NULL for an empty group.
vsql_rest
Repository: villagesql/vsql-rest REST API server. Expose database tables as live HTTP/HTTPS endpoints — no code required. Configure withSET GLOBAL, query tables using URL filters, and call stored functions via /rpc/. Preview capability: requires a server started with --vsql_allow_preview_extensions=ON.
vsql_trgm
Repository: villagesql/vsql-trgm Trigram-based text similarity search. Port of PostgreSQL’spg_trgm. Compute similarity scores between strings, find near-matches in a column, and measure word-level similarity — all from SQL. Requires VillageSQL 0.0.4.
vsql_fuzzystrmatch
Repository: villagesql/vsql-fuzzystrmatch Fuzzy string matching functions. Port of PostgreSQL’sfuzzystrmatch. Soundex phonetic codes, Levenshtein edit distance (with configurable costs and early-exit threshold), Metaphone, and Double Metaphone — for name matching, spelling correction, and phonetic deduplication. Requires VillageSQL 0.0.4.
vsql_currency
Repository: villagesql/vsql-currency ISO 4217 currency code type. Acurrency column type holding any of 164 currency codes in a single byte, with case-insensitive input, canonical uppercase output, alphabetical ordering, and index support. Rust port of adjust/pg-currency.
vsql_oauth2
Repository: villagesql/vsql-oauth2 OAuth2/OIDC JWT authentication. An account created withIDENTIFIED WITH vsql_oauth2 authenticates by presenting a JWT instead of a password. The extension verifies the signature against a configured RS256/ES256 public key, checks exp — and iss/aud when configured — then maps a claim to a VillageSQL account. Preview capability: requires a server started with --vsql_allow_preview_extensions=ON.
vsql_stat_ch
Repository: villagesql/vsql-stat-ch Per-statement telemetry to ClickHouse. Captures one event per finished statement and ships batches over ClickHouse’s native protocol (port 9000) or HTTP (port 8123), switchable while the server is running. Preview capability: requires a server started with--vsql_allow_preview_extensions=ON.
Community Extensions
Community extensions are built by third parties using the VillageSQL Extension Framework (VEF). They are not maintained by the VillageSQL team.vsql_statistics
Repository: ronaldbradford/vsql-statistics Maintainer: Ronald Bradford Statistical aggregate functions for data analysis. IQR, quartiles, median, and Tukey fence outlier detection.STATS_IQR returns them as fields of a JSON object ($.q1, $.q3, $.median, $.lower_fence, $.upper_fence); read them with JSON_EXTRACT(). Requires VillageSQL 0.0.4.
prometheus_exporter
Repository: ProxySQL/vsql-prometheus-exporter Maintainer: ProxySQL Embedded Prometheus metrics exporter. Exposes MySQL server metrics at an HTTP/metrics endpoint in Prometheus exposition format — global status, global variables, InnoDB metrics, and replication status.
vsql_luhn
Repository: intojhanurag/vsql-luhn Maintainer: intojhanurag Luhn algorithm validator and check-digit generator. Validate credit card numbers, IMEI codes, Canadian SINs, and other industry identifiers withluhn_valid(), and generate correct check digits with luhn_checkdigit().
vsql_nanoid
Repository: intojhanurag/vsql-nanoid Maintainer: intojhanurag NanoID generator for short, URL-safe unique identifiers.nanoid() returns a 21-character ID; nanoid_with(size[, alphabet]) customizes the length and character set. Uses a cryptographically secure random source.

