Skip to main content
VillageSQL ships with built-in extensions and supports official extensions built and maintained by the VillageSQL team. Install any of them with INSTALL EXTENSION.

Built-in Extensions

When building from source, only vsql_complex and vsql_simple are included. To get the full set of bundled extensions, use the install script.

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:
  • COMPLEX column 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)
Installation:
INSTALL EXTENSION vsql_complex;
Example:
CREATE TABLE signals (
    id INT PRIMARY KEY,
    impedance COMPLEX,
    frequency_response COMPLEX
);

INSERT INTO signals VALUES
    (1, '(50.0,0.0)', '(0.95,0.31)');

SELECT
    complex_abs(impedance) as magnitude,
    complex_add(impedance, frequency_response) as total
FROM signals;

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. Supports Anthropic Claude, 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 proper STRICTBOOL 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 with SET GLOBAL, query tables using URL filters, and call stored functions via /rpc/.

vsql_trgm

Repository: villagesql/vsql-trgm Trigram-based text similarity search. Port of PostgreSQL’s pg_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’s fuzzystrmatch. 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.

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, STATS_Q1, STATS_Q3, STATS_MEDIAN, STATS_IQR_LOWER_FENCE, STATS_IQR_UPPER_FENCE. 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 with luhn_valid(), and generate correct check digits with luhn_checkdigit().