Skip to main content
VillageSQL 带有内置扩展,并支持由 VillageSQL 团队构建和维护的官方扩展。使用 INSTALL EXTENSION 安装其中任何一个。

内置扩展

从源代码构建时,仅包含 vsql_complexvsql_simple。以下官方扩展在单独的存储库中维护。

vsql_complex

状态: VillageSQL 内置 存储库: villagesql-server/villagesql/examples/vsql-complex 用于电气工程、信号处理和科学计算的具有完整算术支持的复数数据类型。 特性:
  • COMPLEX 列类型,用于存储复数(a + bi)
  • 字符串字面量格式:'(real,imaginary)'(例如,'(3.0,4.0)'
  • 算术运算:加、减、乘、除
  • 实用程序:complex_real()complex_imag()complex_abs()complex_conjugate()
  • 二进制存储:16 字节(2 个双精度浮点数)
安装:
示例:

核心扩展

以下扩展在单独的存储库中维护,必须单独构建和安装。每个扩展都提供自己的安装说明和文档。

vsql_ai

存储库: villagesql/vsql-ai 基于 AI 的 SQL 函数。用于 SQL 查询的 AI 提示和嵌入函数。支持 Anthropic Claude、Google Gemini、OpenAI 和本地 Ollama。

vsql_crypto

存储库: villagesql/vsql-crypto 密码学函数。使用 OpenSSL 进行哈希(MD5、SHA-1、SHA-256、SHA-512 等)、HMAC、AES 加密、密码哈希和安全随机数据生成。

vsql_cube

存储库: villagesql/vsql-cube N 维盒子和点类型。存储和查询最多 100 维的几何盒子和点,具有构造函数、访问器、谓词、距离和几何函数。需要 VillageSQL 0.0.4。

vsql_http

存储库: villagesql/vsql-http HTTP 客户端函数。从 SQL 查询中发出 HTTP 请求——GET、POST、PUT、DELETE、PATCH——具有 JSON 响应,以及 URL 编码和解码。

vsql_network_address

存储库: villagesql/vsql-network-address 网络地址类型。IPv4、IPv6 和 MAC 地址数据类型,具有验证、比较和网络操作。

vsql_uuid

存储库: villagesql/vsql-uuid UUID 数据类型和函数。在 SQL 中本地生成和使用 UUID——v1、v3、v4、v5、v6 和 v7——具有本地 16 字节 UUID 类型、时间戳提取和比较。

vsql_boolean

存储库: villagesql/vsql-boolean 真正的布尔类型。提供真正的 STRICTBOOL 列类型,支持标准真值(true/falseyes/noon/off1/0)、1 字节存储以及正确的导出/恢复语义。包含聚合函数 boolean_sum(),以 INT 返回组内 TRUE 值的数量;以及 boolean_avg(),以 REAL 返回 TRUE 值的比例(真值数量 ÷ 非空数量)。两者都会忽略 NULL,且 boolean_avg() 对空组返回 NULL

vsql_rest

存储库: villagesql/vsql-rest REST API 服务器。无需编写代码即可将数据库表公开为实时 HTTP/HTTPS 端点。使用 SET GLOBAL 进行配置,通过 URL 过滤器查询表,并经由 /rpc/ 调用存储函数。 此为预览功能,需要服务器以 --vsql_allow_preview_extensions=ON 启动。

vsql_trgm

存储库: villagesql/vsql-trgm 基于三元字符的文本相似度搜索。PostgreSQL pg_trgm 的移植版本。计算字符串之间的相似度得分、在列中查找近似匹配项、测量词级相似度——全部在 SQL 中完成。需要 VillageSQL 0.0.4。

vsql_fuzzystrmatch

存储库: villagesql/vsql-fuzzystrmatch 模糊字符串匹配函数。PostgreSQL fuzzystrmatch 的移植版本。提供 Soundex 语音编码、Levenshtein 编辑距离(可配置开销与提前退出阈值)、Metaphone 和 Double Metaphone,可用于姓名匹配、拼写纠正和语音去重。需要 VillageSQL 0.0.4。

vsql_currency

存储库: villagesql/vsql-currency ISO 4217 货币代码类型。currency 列类型以单个字节存储 164 种货币代码中的任意一种,输入不区分大小写,输出为规范的大写形式,支持按字母顺序排序和索引。adjust/pg-currency 的 Rust 移植版本。

vsql_oauth2

存储库: villagesql/vsql-oauth2 OAuth2/OIDC JWT 身份验证。使用 IDENTIFIED WITH vsql_oauth2 创建的账户通过提供 JWT 而非密码进行身份验证。该扩展使用配置的 RS256/ES256 公钥验证签名,检查 exp(配置后还会检查 iss/aud),然后将声明映射到 VillageSQL 账户。此为预览功能,需要服务器以 --vsql_allow_preview_extensions=ON 启动。

vsql_stat_ch

存储库: villagesql/vsql-stat-ch 发送到 ClickHouse 的逐语句遥测数据。为每条执行完成的语句捕获一个事件,并通过 ClickHouse 原生协议(端口 9000)或 HTTP(端口 8123)批量发送。传输方式可在服务器运行期间切换。此为预览功能,需要服务器以 --vsql_allow_preview_extensions=ON 启动。

vsql_mcp

存储库: villagesql/vsql-mcp Model Context Protocol 服务器。通过 MCP Streamable HTTP 将数据库作为工具接口暴露给 AI 代理,监听器运行在服务器进程内部。代理可以列出模式、描述表并执行只读查询;写入在您启用之前保持关闭。工具查询通过专用数据库账户执行,并可选配表允许列表、行数上限和每次调用的超时。此为预览功能,需要服务器以 --vsql_allow_preview_extensions=ON 启动。

社区扩展

社区扩展由第三方使用 VillageSQL 扩展框架 (VEF) 构建。它们不由 VillageSQL 团队维护。

vsql_statistics

存储库: ronaldbradford/vsql-statistics 维护者: Ronald Bradford 用于数据分析的统计聚合函数。IQR、四分位数、中位数和 Tukey 栅栏异常值检测——STATS_IQR。需要 VillageSQL 0.0.4。

prometheus_exporter

存储库: ProxySQL/vsql-prometheus-exporter 维护者: ProxySQL 嵌入式 Prometheus 指标导出器。在 Prometheus 暴露格式的 HTTP /metrics 端点处公开 MySQL 服务器指标——全局状态、全局变量、InnoDB 指标和复制状态。

vsql_luhn

存储库: intojhanurag/vsql-luhn 维护者: intojhanurag Luhn 算法验证器和校验位生成器。使用 luhn_valid() 验证信用卡号、IMEI 码、加拿大 SIN 及其他行业标识符,并使用 luhn_checkdigit() 生成正确的校验位。

vsql_nanoid

存储库: intojhanurag/vsql-nanoid 维护者: intojhanurag 用于生成简短、URL 安全的唯一标识符的 NanoID 生成器。nanoid() 返回 21 个字符的 ID;nanoid_with(size[, alphabet]) 可自定义长度和字符集。使用密码学安全的随机源。

vsql_slugify

存储库: intojhanurag/vsql-slugify 维护者: intojhanurag 从任意文本生成 URL 安全的 slug——折叠重音、转换为小写、将非字母数字字符合并为单个分隔符,并去除首尾分隔符。

vsql_pgjwt

存储库: intojhanurag/vsql-pgjwt 维护者: intojhanurag 直接在 SQL 中签名、验证和解码 JSON Web Token。支持 HMAC(HS256、HS384、HS512)和 RSA(RS256)算法。

vsql_address_standardizer

存储库: jobala/vsql-address-standardizer 维护者: Japheth Obala 将自由格式的美国邮政地址解析为门牌号、街道、后缀、城市、州和邮政编码等组成部分。此扩展的灵感来自 PostgreSQL 的 contrib address_standardizer