PostgreSQL pgvector, a guide for DBA – Part 2: Indexes (update march 2026) 01.03.2026 by Adrien Obernesser Introduction In Part 1 of this series, we covered what pgvector is, how embeddings work, and how to store them in PostgreSQL. We ended with a working similarity search — but on a sequential scan. That works fine for(…)
PostgreSQL RAG Series – Embedding Versioning LAB 22.02.2026 by Adrien Obernesser Introduction This is Part 2 of the embedding versionin, in Part 1, I covered the theory: why event-driven embedding refresh matters, the three levels of architecture (triggers, logical replication, Flink CDC), and how to detect and(…)
PostgreSQL RAG Series – Embedding Versioning with pgvector: Why Event-Driven Architecture Is a Precondition to AI data workflows 22.02.2026 by Adrien Obernesser Introduction “Make it simple.” This is a principle I keep repeating, and I’ll repeat it again here. Because when it comes to keeping your RAG system’s embeddings fresh, the industry has somehow made it complicated. External orchestrators, custom Python cron(…)
PostgreSQL RAG, MCP, Skills — Three Paradigms for LLMs Talking to Your Database, and Why Governance Changes Everything 15.02.2026 by Adrien Obernesser Introduction Throughout my RAG series, I’ve explored how to build retrieval-augmented generation systems with PostgreSQL and pgvector — from Naive RAG through Hybrid Search, Adaptive RAG, Agentic RAG, and Embedding Versioning (not yet released)(…)
Oracle, PostgreSQL Oracle to PostgreSQL Migration with Flink CDC 30.11.2025 by Adrien Obernesser Introduction When wanting to migrate from the big red to PostgreSQL, most of the time you can afford the downtime of the export/import process and starting from something fresh. It is simple and reliable. Ora2pg being one of the go-to(…)
PostgreSQL RAG Series – Agentic RAG 26.10.2025 by Adrien Obernesser Introduction In earlier parts, we moved from Naive RAG (vector search) to Hybrid RAG (dense + sparse) to Adaptive RAG (query classification and dynamic weighting). Each step improved what we retrieve. Agentic RAG goes further: the LLM decides if and(…)
PostgreSQL pgconf.eu 2025 – RECAP 26.10.2025 by Adrien Obernesser I was fortunate to be able to attend at the pgconf.eu 2025. This year event was happening in RIGA and joined together once again key members of the community, contributors, committers, sponsors and users from across the world. I(…)
PostgreSQL RAG Series – Adaptive RAG, understanding Confidence, Precision & nDCG 12.10.2025 by Adrien Obernesser Introduction In this RAG series we tried so far to introduce new concepts of the RAG workflow each time. This new article is going to introduce also new key concepts at the heart of Retrieval. Adaptive RAG will allow us(…)
PostgreSQL RAG Series – Hybrid Search with Re-ranking 05.10.2025 by Adrien Obernesser Introduction In the first part of this RAG series, we established the fundamentals of Naive RAG with dense vector embeddings on PostgreSQL using pgvector. That foundation works well for conceptual queries, but production systems quickly reveal a limitation: pure(…)
PostgreSQL RAG Series – Naive RAG 28.09.2025 by Adrien Obernesser Introduction Since my last series on pgvector I had quite a fun time to work on RAG workflows on pgvector and learned some valuable lessons and decided to share some of it in a blog post series on the matter.