Enjoyer of Go, Rust, Python, Databases & SQL
Latest
2025 Jan 14
[Note] Creating a DuckDB Table Function Extension
Alternatively: A DuckDB Table Function Extension Starter Code
2025 Jan 02
[Note] PostgreSQL to Iceberg Snapshot Sync (Using DuckDB)
Query PG using DuckDB, copy table data into iceberg
2024 Dec 28
[Note] Arrays, Constraints & Immutable Functions
Tightening what kinds of values array columns can hold using constraints and immutable functions
2024 Dec 24
2024 Dec 24
Multi-Tenancy Models in PostgreSQL
Overview of various approaches for multi-tenancy implementation in Postgres
2024 Dec 10
PostgreSQL: Managing Roles, Attributes and Privileges
Using roles for permissions and authorization for users and groups in PG
2024 Nov 29
Pairing up timeseries data when the timestamps don’t match exactly (in Pandas, Polars, DuckDB, Postgres & QuestDB)
2024 Nov 15
Archiving Time-Series Data from PostgreSQL into Parquet
Keeping your database lean
Featured
2024 Dec 24
2024 Oct 17
Graph Query Interfaces: A Comparison Between SQL and Cypher
Featuring DuckDB & KuzuDB
2024 Jun 04
Larger-Than-Memory Data Management
For when the database exceeds the main memory size
2024 Apr 04
DuckDB JIT Compiled UDFs with Numba
JIT compiling your vectorized UDFs with Numba. Plus pure SQL is plenty fast if you can figure out how to write it
2023 Aug 22
Best practices, Logging levels, structured logging, Logging & Telemetry (Metrics, Tracing), Audit logs
2023 Jul 08
Parquet + Zstd: Smaller faster data formats
Often, parquet files have to be compressed. For fast compression, use LZ4 or Snappy. For the highest data compression ratio, use brotli. For both, zstd
2020 Jan 06
Back To Basics: The foundation of Joins in SQL
Writing SQL joins without using joins at all. A quick history of Database Models, Schemas, Constraints, Cross-products and everything in between