Typed overlay over SQL now supports DuckDB
Beam over DuckDB unites type safety with OLAP, but only solves Haskell teams' analytics problem.
pgrx for MySQL, but requires using a fork instead of vanilla MySQL.
MySQL developers who need custom functions without C++
pgrx · MySQL UDFs · PostgreSQL extensions
Until now, all extension development was done in C++ but we know LOTS of PostgreSQL extension is done in Rust via pgrx etc.
We built a Rust SDK that allows you to natively extend MySQL with custom types and functions and a subset of the PostgreSQL extension hooks.
Steps:
cargo install cargo-vsql cargo install cargo-generate cargo generate --git https://github.com/villagesql/vsql-extension-template-rust
The actual code looks like:
use villagesql::{InValue, VdfReturn};
fn my_func(args: &[InValue]) -> VdfReturn { match args.first() { Some(InValue::String(s)) => VdfReturn::string(s.to_uppercase()), Some(InValue::Null) | None => VdfReturn::null(), _ => VdfReturn::error("my_func: expected a STRING argument"), } }
villagesql::extension! { funcs: [ villagesql::func!(my_func, "my_func", [villagesql::Type::String] -> villagesql::Type::String), ] }
Feedback welcome!
Beam over DuckDB unites type safety with OLAP, but only solves Haskell teams' analytics problem.
Zero-install Postgres diagnostics, but pg_stat_statements and pgAdmin already exist.
gRPC calls from SQL without codegen—pg_http users finally have a typed alternative.
Deno runtime inside Postgres brings npm imports and sandboxing to stored procedures.
Local-first natural language SQL beats cloud alternatives, but text-to-SQL is a crowded space.
Keeps the abandoned migra tool alive, but Atlas and Flyway already own this space.