rssed

a collection of dev rss feeds - blogroll

Add a new feed

+

322 feeds


Dimitri Fontaine

Posts

SQL Improvements in PostgreSQL 11–18: A Personal Selection 🔗

Seven major versions of PostgreSQL shipped between 2018 and 2025, one per year without exception, and each with a changelog of 150 to 200 user-visible [...]

pgcopydb v0.18 🔗

Hot off the press: pgcopydb v0.18 is out! It’s the biggest release the project has had — 88 commits since v0.17, which shipped in August 2024. I took [...]

About Dimitri Fontaine 🔗

Dimitri, picture by Oleg Bartunov I am a PostgreSQL developer, author, and open-source builder based near Paris. Most of what I have done professional [...]

Postgres HA: roles are dynamic 🔗

High-Availability comes with some impact on your architecture choices, in particular when applied to RDBMS such as Postgres. One such impact is the id [...]

An introduction to the pg_auto_failover project 🔗

We just released pg_auto_failover version 1.6.3 on GitHub, and the binary packages should be already available at the usual PGDG and CitusData places, [...]

PostgreSQL as a Microservice 🔗

The MACI French podcast honoured me with an invitation to a guest appearance on their weekly schedule. As you can imagine, we talked about many things [...]

Message à caractère informatique #46: Faire Le Tri Dans Ses Relations 🔗

In this PodCast Episode we talk about newsworthy items selected by the MACI team, and then about some of my work such as my book The Art of PostgreSQL [...]

2020: Online Conferences 🔗

Among a lot of other changes, the year 2020 brings Online Conferences to us. In the Postgres community too we now record our talks at home and send a [...]

Postgres Thursday s01e04: Dimitri Fontaine. The Art of PostgreSQL; pg_auto_failover 🔗

In this interview we dive in my book The Art of PostgreSQL and then in the High Availability and automated failover solution that I work on, pg_auto_f [...]

List PostgreSQL tables using extensions 🔗

Postgres has extensions, and that’s awesome! Of course as the author of CREATE EXTENSION I’m a little biased… just remember that the ability to extend [...]

Postgres Open 🔗

As a developer using PostgreSQL one of the most important tasks you have to deal with is modeling the database schema for your application. In order t [...]

Postgres Connection Strings and psql 🔗

PostgreSQL connection strings embedded in your application can take two different forms: the key-value notation or the postgresql:// URI scheme. When [...]

The Art Of PostgreSQL 🔗

I did it again! Today I am releasing the new edition of my book, with a new title: “The Art of PostgreSQL”. I’m very happy (and quite excited) to decl [...]

The Art of PostgreSQL 🔗

PostgreSQL is the World’s Most Advanced Open Source Relational Database and by the end of this talk you will understand what that means for you, an ap [...]

FOSDEM 2019: Data Modeling, Normalization, and Denormalisation 🔗

As a developer using PostgreSQL one of the most important tasks you have to deal with is modeling the database schema for your application. In order t [...]

Architectures PostgreSQL 🔗

Le domaine des bases de données se transforme depuis quelques années, avec en particulier de nouvelles offres autour des notions de NoSQL… Au point qu [...]

Preventing SQL Injections 🔗

An SQL Injection is a security breach, one made famous by the Exploits of a Mom xkcd comic episode in which we read about little Bobby Tables: Post [...]

PostgreSQL Conference Europe, 2018 🔗

As a developer using PostgreSQL one of the most important tasks you have to deal with is modeling the database schema for your application. In order t [...]

PyConFr 2018 🔗

Python is often used to maintain application backends. When the backend should implement user oriented workflows, it may rely on a RDBMS component to [...]

Geolocation with PostgreSQL 🔗

We have loaded Open Street Map points of interests in the article The Most Popular Pub Names — which compares PostgreSQL with MongoDB for simple geogr [...]

PostgreSQL Concurrency: an Article Series 🔗

PostgreSQL is a relational database management system. It’s even the world’s most advanced open source one of them. As such, as its core, Postgres sol [...]

Scheduled Data Processing: How to use cron? 🔗

A previous article in the PostgreSQL Concurrency series covered how to manage concurrent retweets in an efficient way: in Computing and Caching, we le [...]

Batch Updates and Concurrency 🔗

This article fits in the PostgreSQL Concurrency series, where we installed a tweeter like application schema and had all the characters from Shakespea [...]

PostgreSQL LISTEN/NOTIFY 🔗

This article fits in the PostgreSQL Concurrency series, where we installed a tweeter like application schema and had all the characters from Shakespea [...]

PostgreSQL Event Based Processing 🔗

In the previous article of the series Modeling for Concurrency, we saw how to model your application for highly concurrent activity. It was a follow-u [...]

Computing and Caching 🔗

Let’s continue to dive in PostgreSQL Concurrency. In the previous article of the series, Modeling for Concurrency, we saw how to model your applicatio [...]

Modeling for Concurrency 🔗

Let’s continue to dive in PostgreSQL Concurrency. Last week’s article PostgreSQL Concurrency: Isolation and Locking was a primer on PostgreSQL isolati [...]

PostgreSQL Concurrency: Isolation and Locking 🔗

PostgreSQL is a relational database management system. It’s even the world’s most advanced open source one of them. As such, as its core, Postgres sol [...]

PostgreSQL Concurrency: Data Modification Language 🔗

PostgreSQL is a relational database management system. It’s even the world’s most advanced open source one of them. As such, as its core, Postgres sol [...]

PostgreSQL Data Types 🔗

Today it’s time to conclude our series of PostgreSQL Data Types articles with a recap. The series cover lots of core PostgreSQL data types and shows h [...]

PostgreSQL at Chti'JUG 🔗

Le domaine des bases de données se transforme depuis quelques années, avec en particulier de nouvelles offres autour des notions de NoSQL… Au point qu [...]

PostgreSQL Data Types: Point 🔗

Continuing our series of PostgreSQL Data Types today we’re going to introduce the PostgreSQL Point type. In order to put the Point datatype in a conte [...]

PostgreSQL Data Types: ENUM 🔗

Continuing our series of PostgreSQL Data Types today we’re going to introduce the PostgreSQL ENUM type. This data type has been added to PostgreSQL in [...]

PostgreSQL Data Types: JSON 🔗

Continuing our series of PostgreSQL Data Types today we’re going to introduce the PostgreSQL JSON type. PostgreSQL has built-in support for JSON with [...]

PostgreSQL Data Types: XML 🔗

Continuing our series of PostgreSQL Data Types today we’re going to introduce the PostgreSQL XML type. The SQL standard includes a SQL/XML which intro [...]

PostgreSQL Data Types: Arrays 🔗

Continuing our series of PostgreSQL Data Types today we’re going to introduce the PostgreSQL array data types. Arrays can be used to denormalize data [...]

PostgreSQL Data Types: Ranges 🔗

Continuing our series of PostgreSQL Data Types today we’re going to introduce the PostgreSQL ranges data type. Range types are a unique feature of Pos [...]

PostgreSQL Data Types: Network Addresses 🔗

Continuing our series of PostgreSQL Data Types today we’re going to introduce network address types. PostgreSQL includes support for both cidr, inet, [...]

PostgreSQL Data Types: Date and Time Processing 🔗

Continuing our series of PostgreSQL Data Types today we’re going to introduce date and time based processing functions. Once the application’s data, o [...]

PostgreSQL Data Types: Text Processing 🔗

Continuing our series of PostgreSQL Data Types today we’re going to introduce some of the PostgreSQL text processing functions. There’s a very rich se [...]

PostgreSQL Data Types: Text Encoding 🔗

Continuing our series of PostgreSQL Data Types today we’re going to introduce the PostgreSQL text data type. The first notion to understand when proce [...]

PostgreSQL Data Types: an intro 🔗

Today, we’re going to begin a dive into the PostgreSQL Data Types. As my colleague Will Leinweber said recently in his talk Constraints: a Developer’s [...]

Object Relational Database Management System 🔗

PostgreSQL is the world’s most advanced open source database, and per the PostgreSQL Wikipedia page it is an object-relational database management sys [...]

Nordic pgDay 2018 🔗

As a developer using PostgreSQL one of the most important tasks you have to deal with is modeling the database schema for your application. In order t [...]

Database Normalization and Primary Keys 🔗

In our previous article we saw three classic Database Modelization Anti-Patterns. The article also contains a reference to a Primary Key section of my [...]

Database Modelization Anti-Patterns 🔗

Next week we see two awesome PostgreSQL conferences in Europe, back to back, with a day in between just so that people may attend both! In chronologic [...]

Sustainable Open Source Development 🔗

Current trend in software deployments is to rely on open source software for entire production stacks. You can find open source software in the core t [...]

Find the number of the longest continuously rising days for a stock 🔗

Today I want to react to an article that claims that Relational Algebra Is the Root of SQL Problems in which the author hand-waves the following posit [...]

Exporting a Hierarchy in JSON: with recursive queries 🔗

In another article here, entitled on JSON and SQL, we saw in great details how to import a data set only available as a giant JSON file. Then we norma [...]

A Year in Review: Most Read Articles in 2017 🔗

It seems to be usual nowadays to review the previous year, and readers apparently like Top-N Lists — that’s you now, so let’s hope that my understandi [...]

Working at Citus Data 🔗

You might have read it in the news already in Citus’ blog post by Sumedh Pathak: PostgreSQL Expert Dimitri Fontaine joins Citus Data. I am very happy [...]

Migrating to PostgreSQL, the White Paper 🔗

After having been involved in many migration projects over the last 10 years, I decided to publish the following White Paper in order to share my lear [...]

Submit a Talk to pgDay Paris Today! 🔗

pgDay Paris 4th edition happens March 15, 2018! And the Call for Papers is still open, as it closes with the year: the submission deadline is December [...]

Setting up psql, the PostgreSQL CLI 🔗

PostgreSQL ships with an interactive console with the command line tool named psql. It can be used both for scripting and interactive usage and is mor [...]

Mastering PostgreSQL: a reader's interview 🔗

Florent Fourcot has read Mastering PostgreSQL in Application Development and has seen tremendous inprovements in his production setup from reading the [...]

Mastering PostgreSQL: more about the docker image 🔗

The Enterprise Edition of Mastering PostgreSQL in Application Development ships with a docker image that hosts both a PostgreSQL server instance with [...]

Queen, Princesses, and Workers 🔗

The PostgreSQL community made the explicit choice some times ago that they would not use the infamous master and slave terminology. Instead, the docum [...]

Scaling Python released 🔗

Today I am very pleased to announce the release of the book Scaling Python from my good friend Julien Danjou! As Julien says, Python applications can [...]

Simple Data Modeling with a Test Data Set 🔗

In How to Write SQL we saw how to write SQL queries as separate .sql files, and we learnt about using query parameters with the psql syntax for that ( [...]

The Mode Ordered-Set Aggregate Function 🔗

In our article Exploring a Data Set in SQL we discovered a data set related to music: the Chinook sample database. Our discovery led us to find albums [...]

What's in a name: “Mastering” 🔗

Now that my book Mastering PostgreSQL in Application Development is released (and selling well, thanks guys!), I’ve had some questions about the title [...]

Mastering PostgreSQL in Application Development launches! 🔗

Today is the day my book Mastering PostgreSQL in Application Development launches! I’m all excited that everybody interested is now able to actually r [...]

PostgreSQL Conference Europe 2017 🔗

pgloader, your migration companion Migrating data from another RDBMS to PostgreSQL should be really easy. After all it’s all relations and tables an [...]

Set Returning Functions and PostgreSQL 10 🔗

PostgreSQL 10 is now available for everyone to use, and hinted by David Fetter I had to review my previous article on Json and SQL to adapt to Set Ret [...]

on Json and SQL 🔗

PostgreSQL has had proper json support for a while now. The unique extensibility approach of the PostgreSQL system allows it to enable native SQL frie [...]

Mastering PostgreSQL in Application Development 🔗

Mastering PostgreSQL in Application Development is the full title of the book I am currently writing. Running the PostgreSQL is YeSQL series of blog p [...]

Regular Expressions and Grouping Sets 🔗

There’s a very rich set of PostgreSQL functions to process text, you can find them all at the String Functions and Operators documentation chapter, wi [...]

SQL Regression Tests 🔗

In a previous article here we saw How to Write SQL in your application code. The main idea in that article is to maintain your queries in separate SQL [...]

from MySQL to PostgreSQL 🔗

Today pgloader v3.4.1 is released and available! This new release comes with 110 commits as show in github compare view. This release of pgloader is f [...]

Playing with Unicode 🔗

The reason why I like Unicode a lot is because it allows me to code in text based environments and still have nice output. Today, we’re going to play [...]

PostgreSQL and the calendar 🔗

The modern calendar is a trap for the young engineer’s mind. We deal with the calendar on a daily basis and until exposed to its insanity it’s rather [...]

SQL and Business Logic 🔗

Business logic is supposed to be the part of the application where you deal with customer or user facing decisions and computations. It is often argue [...]

Exploring a Data Set in SQL 🔗

Sometimes you need to dive in an existing data set that you know very little about. Let’s say we’ve been lucky to have had a high level description of [...]

How to Write SQL 🔗

Kris Jenkins cooked up a very nice way to embed SQL in your code: YeSQL for Clojure. The main idea is that you should be writing your SQL queries in . [...]

Find The Missing Integer 🔗

A recent interview question that I had to review was spelled like this: Find missing int element into array 1..100 Of course at first read I got it wr [...]

Mastering PostgreSQL in Application Development 🔗

I am writing a book to share my knowledge about how to best use PostgreSQL as an application developer. If you’ve evered ask yourself how much should [...]

PGConf US 2016 🔗

PostgreSQL Conference US took place in New York City and I had the pleasure to be a speaker there. I presented there a talk about why You’d Better Hav [...]

PostgreSQL Conference US, 2016 🔗

You’d better have tested backups explains why you must implement an automated recovery solution rather than merely backup scripts. Noboday cares about [...]

All Your Base Conference 2015 🔗

I had the pleasure to be invited to speak at All Your Base Conference 2015 about PostgreSQL (of course). The conference gathers together lots of user [...]

All Your Base Conference 2015 🔗

The database landscape has changed a lot in the recent years. The NoSQL movement has taken the world by storm and you may wonder if there is still roo [...]

PostgreSQL au JUG de Montpellier 🔗

J’ai eu le plaisir de présenter PostgreSQL au Java User Group de Montpellier le 20 mai dernier dans le cadre d’une soirée PostgreSQL is YeSQL. L’accue [...]

PostgreSQL at Montpellier's JUG 🔗

PostgreSQL Extensions is a tutorial that shows how to solve some real use cases with a practical use of Extension. The PostgreSQL is YeSQL! presentati [...]

Quicklisp and debian 🔗

Common Lisp users are very happy to use Quicklisp when it comes to downloading and maintaining dependencies between their own code and the librairies [...]

pgDay Paris 🔗

Le 21 avril prochain se tient le premier pgDay Paris: une conférence PostgreSQL d’une journée complète. Il s’agit de 8 conférences sur votre base de d [...]

Nordic PostgreSQL Day 2015 🔗

The PostgreSQL for Developers talk begins with a simple use case for developers to solve entirely in SQL. Discover SQL window functions if you don’t k [...]

a pgDay in Paris! 🔗

I was lucky to participate as a speaker to the Nordic PostgreSQL Day 2015 and it’s been another awesome edition of the conference. Really smooth, ever [...]

Back From FOSDEM 2015 🔗

The FOSDEM 2015 edition has been awesome this year, the usual mix of meeting with old friends, talking about interesting topics, seeing tremendous act [...]

PostgreSQL FOSDEM 2015 🔗

Backups are not interesting. Don’t make backups. Instead, set-up an all automatic data restoring facility, that you can use in nightly scripts or inte [...]

My First Slashdot Effect 🔗

Thanks to the Postgres Weekly issue #89 and a post to Hacker News front page (see Pgloader: A High-speed PostgreSQL Swiss Army Knife, Written in Lisp [...]

New release: pgloader 3.2 🔗

PostgreSQL comes with an awesome bulk copy protocol and tooling best known as the COPY and \copy commands. Being a transactional system, PostgreSQL CO [...]

PostgreSQL Conference Europe 2014 🔗

You’d better have tested backups explains why you must implement an automated recovery solution rather than merely backup scripts. Noboday cares about [...]

Meetup PostgreSQL à Paris 🔗

Mercredi 8 octobre se tiendra le prochain Meetup PostgreSQL à Paris dans les locaux de Mozilla Europe, dont la capacité est de 90 personnes ! Venez no [...]

Postgres Open 2014, Chicago 🔗

A ligthning talk about pgcharts, a tool to turn your SQL queries into charts, and share the result. The PostgreSQL for Developers talk begins with a s [...]

PHP Tour, La Video 🔗

En juin dernier se tenait le PHP Tour 2014 à Lyon, où j’ai eu le plaisir de présenter une conférence sur PostgreSQL en 2014. [...]

Going to Chicago, Postgres Open 🔗

Next month, Postgres Open 2014 is happening in Chicago, and I’ll have the pleasure to host a tutorial about PostgreSQL Extensions Writing & Using Post [...]

Turn your PostgreSQL queries into Charts 🔗

Earlier this year we did compare compare Aggregating NBA data, PostgreSQL vs MongoDB then talked about PostgreSQL, Aggregates and histograms where we [...]

CHAR(14) 🔗

A lightning talk about pgLoader and the wide range of input formats it accepts, from CSV to advanced database migration from MS SQL or MySQL to Postgr [...]

PHP Tour 2014 🔗

En début de semaine se tenait le PHP Tour 2014 à Lyon, et j’ai eu le privilège d’y être invité afin de présenter comment Utiliser PostgreSQL en 2014. [...]

PHP Tour Lyon 2014 🔗

Une présentation des particularités de PostgreSQL, et pourquoi ce système de gestion de bases de données relationnelles reste d’actualité quand on fai [...]

Conférences Françaises 🔗

Ce mois-ci est particulièrement actif en terme de conférences françaises, puisqu’après un détour à Toulon pour les PGDay.fr nous avons un Meetup à Par [...]

PGDay FR 2014 🔗

Une présentation de pgloader, utilitaire de chargement de données qui prend égalemment en charge des migrations complètes depuis MySQL ou encore MS SQ [...]

Why is pgloader so much faster? 🔗

pgloader loads data into PostgreSQL. The new version is stable enough nowadays that it’s soon to be released, the last piece of the 3.1.0 puzzle being [...]

7th European Lisp Symposium 🔗

A lightning talk about pgloader and why I chose to rewrite it enterily, switching from Python to Common Lisp. TL;DR — I wanted a Modern Programming La [...]

New York! 🔗

A couple of week ago I had the chance to participate into the PGConf NYC 2014 Conference, one of the biggest conferences about PostgreSQL worldwide. I [...]

Meetup PostgreSQL à Paris 🔗

Hier soir se déroulait le troisième Meetup PostgreSQL à Paris, et je crois pouvoir dire que tous les participants étaient ravis de cette édition. Malh [...]

PGConf NYC 2014 🔗

The PostgreSQL for Developers talk begins with a simple use case for developers to solve entirely in SQL. Discover SQL window functions if you don’t k [...]

Nordic PostgreSQL Day 2014 🔗

Last week some PostgreSQL users, contributors and advocates have organized a really great conference in Stockholm, Sweden, where I had the please to g [...]

Nordic PostgreSQL Day 2014 🔗

PostgreSQL is YeSQL! is a presentation that targets developers and show some advanced SQL everybody should be familiar with… but usually aren’t. [...]

PostgreSQL, Aggregates and Histograms 🔗

In our previous article Aggregating NBA data, PostgreSQL vs MongoDB we spent time comparing the pretty new MongoDB Aggregation Framework with the deca [...]

Aggregating NBA data, PostgreSQL vs MongoDB 🔗

When reading the article Crunching 30 Years of NBA Data with MongoDB Aggregation I coulnd’t help but think that we’ve been enjoying aggregates in SQL [...]

PostgreSQL FOSDEM Conference 🔗

Back from the FODESM 2014 Conference, here’s the slides I’ve been using for the Advanced Extension Use Cases talk I gave, based on the ongoing work to [...]

PostgreSQL FOSDEM 2014 🔗

This talk is about Advanced Uses Cases for PostgreSQL Extensions. It shows how to use extensions to solve practical problems such as geolocation or te [...]

FOSDEM 2014 🔗

This year again the PostgreSQL community is organising a FOSDEM PGDay rigth before the main event. Have a look at the PostgreSQL FOSDEM Schedule, it’s [...]

PostgreSQL User Group Paris 🔗

Notre première rencontre des utilisateurs Parisiens de PostgreSQL avait eu lieue le 28 novembre 2013 et a fait l’objet d’un billet de présentation ici [...]

El-Get is now Rolling Releases 🔗

The code of El-Get has been pretty stable for a long time now. About the whole set of patches against the 4.x series has been about bug fixing corner [...]

Groupe d'Utilisateurs PostgreSQL à Paris 🔗

Comme annoncé dans un mail sur la liste de diffusion pgsql-fr-generale j’ai le plaisir de démarrer un groupe de rencontres PostgreSQL à Paris ! Les dé [...]

Import fixed width data with pgloader 🔗

A long time ago we talked about how to Import fixed width data with pgloader, following up on other stories still online at Postgres OnLine Journal an [...]

Migrating Sakila from MySQL to PostgreSQL 🔗

As presented at the PostgreSQL Conference Europe the new version of pgloader is now able to fully migrate a MySQL database, including discovering the [...]

Back From Dublin 🔗

Last week I had the pleasure to present two talks at the awesome PostgreSQL Conference Europe. The first one was actually a tutorial about Writing & u [...]

PostgreSQL Conference Europe 2013 🔗

The first talk covers migrating from MySQL to PostgreSQL in a single command line thanks to pgloader, your migration companion. The second talk is a 3 [...]

Denormalizing Tags 🔗

In our Tour of Extensions today’s article is about advanced tag indexing. We have a great data collection to play with and our goal today is to be abl [...]

An Interview about MariaDB and PostgreSQL 🔗

At the Open World Forum two weeks ago I had the pleasure to meet with Colin Charles. We had a nice talk about the current state of both MariaDB and Po [...]

PostgreSQL Autonomous Transaction 🔗

PostgreSQL is an all round impressive Relational DataBase Management System which implements the SQL standard (see the very useful reference page Comp [...]

Open World Forum Conference 🔗

Last Friday I had the chance to be speaking at the Open World Forum in the NewSQL track, where we had lots of interest and excitement around the NoSQL [...]

Open World Forum 2013 🔗

Une présentation qui montre que PostgreSQL est déjà web-scale, avec un rappel de l’histoire du projet et quelques exemples pratiques montrant des cas [...]

A Worthwile Micro Optimisation 🔗

In our previous article about Loading Geolocation Data, we did load some data into PostgreSQL and saw the quite noticable impact of a user transformat [...]

Loading Geolocation Data 🔗

As I’ve been mentionning in the past already, I’m currently rewriting pgloader from scratch in Common Lisp. In terms of technical debt that’s akin to [...]

Open World Forum 2013 🔗

Have you heard about the Open World Forum conference that takes place in Paris, October 3-5, 2013? I’ll be presenting a talk about PostgreSQL in the t [...]

PostgreSQL data recovery 🔗

The following story is only interesting to read if you like it when bad things happen, or if you don’t have a trustworthy backup policy in place. By t [...]

Using trigrams against typos 🔗

In our ongoing Tour of Extensions we played with earth distance in How far is the nearest pub? then with hstore in a series about trigger, first to ge [...]

Auditing Changes with Hstore 🔗

In a previous article about Trigger Parameters we have been using the extension hstore in order to compute some extra field in our records, where the [...]

Trigger Parameters 🔗

Sometimes you want to compute values automatically at INSERT time, like for example a duration column out of a start and an end column, both timestamp [...]

Understanding Window Functions 🔗

There was SQL before window functions and SQL after window functions: that’s how powerful this tool is. Being that of a deal breaker unfortunately mea [...]

Migrating from MySQL to PostgreSQL 🔗

About the only time when I will accept to work with MySQL is when you need help to migrate away from it because you decided to move to PostgreSQL inst [...]

How far is the nearest pub? 🔗

In our recent article about The Most Popular Pub Names we did have a look at how to find the pubs nearby, but didn’t compute the distance in between t [...]

The Most Popular Pub Names 🔗

In his article titled The Most Popular Pub Names Ross Lawley did show us how to perform some quite interesting geographic queries against MongoDB, usi [...]

OSCON, Portland, and PDXPUG 🔗

After spending an awesome week in San Francisco, CA I’m lucky enough to be spending another week in the USA, in Portand, OR. The main excuse for showi [...]

OSCON 🔗

The migration of a complex system and architecture from MySQL and Java to PostgreSQL and PHP, with plenty details about the context and the trade-offs [...]

PDXPUG 🔗

The PostgreSQL for Developers talk begins with a simple use case for developers to solve entirely in SQL. Discover SQL window functions if you don’t k [...]

Talking at the SFPUG 🔗

Those days feel really lucky to me. I’m currently visiting friends and customers in San Francisco, and really enjoying my trip here! Of course Josh Be [...]

SFPUG Meeting 🔗

A presentation of Skytools version 3, the replication toolset from Skype that includes Londiste and PGQ. [...]

Back from CHAR(13) 🔗

Last week was held the CHAR(13) conference in a great venue in the UK countryside. Not only did we discover UK under good weather conditions and some [...]

Emacs Muse meets Common Lisp 🔗

This blog of mine is written in the very good Emacs Muse format, that I find much more friendly to writing articles than both org-mode and markdown-mo [...]

Archiving data as fast as possible 🔗

In a recent article here we’ve been talking about how do do Batch Updates in a very efficient way, using the Writable CTE features available in Postgr [...]

Simple Case for Pivoting in SQL 🔗

In a recent article Craig Kerstiens from Heroku did demo the really useful crosstab extension. That function allows you to pivot a table so that you c [...]

Conferences Report 🔗

Recently I’ve been to some more conferences and didn’t take the time to blog about them, even though I really did have great fun over there. So I felt [...]

Make the Most ouf of SQL 🔗

Tonight I had the pleasure to present a talk at the Dublin PostgreSQL User Group using remote technologies. The talk is about how to make the most ouf [...]

PGDay France 🔗

Une conférence qui s’attache aux usages de PostgreSQL avec de très gros volumes de données, intitulée Vers le PetaByte avec PostgreSQL. [...]

from Parsing to Compiling 🔗

Last week came with two bank holidays in a row, and I took the opportunity to design a command language for pgloader. While doing that, I unexpectedly [...]

Nearest Big City 🔗

In this article, we want to find the town with the greatest number of inhabitants near a given location. A very localized example We first need to fin [...]

Emacs Conference 🔗

Yes it did happen, for real, in London: the Emacs Conference. It was easter week-end. Yet the conference managed to have more than 60 people meet toge [...]

El-Get 🔗

An history of el-get, the Emacs library that helps you to manage the external elisp bits and pieces upon which you depend! [...]

The Need For Speed 🔗

Hier se tenait la cinquième édition de la conférence organisée par dalibo, où des intervenants extérieurs sont régulièrement invités. Le thème hier ét [...]

dalibo session #5 🔗

Une présentation en français qui traite des performances avec PostgreSQL, er rappelle la loi d’Amdahl dans le contexte des performances de requêtes SQ [...]

Bulk Replication 🔗

In the previous article here we talked about how to properly update more than one row at a time, under the title Batch Update. We did consider perform [...]

Batch Update 🔗

Performance consulting involves some tricks that you have to teach over and over again. One of them is that SQL tends to be so much better at dealing [...]

Emacs Conference 🔗

The Emacs Conference is happening, it’s real, and it will take place at the end of this month in London. Check it out, and register at Emacs Conferenc [...]

HyperLogLog Unions 🔗

In the article from yesterday we talked about PostgreSQL HyperLogLog with some details. The real magic of that extension has been skimmed over though, [...]

PostgreSQL HyperLogLog 🔗

If you’ve been following along at home the newer statistics developments, you might have heard about this new State of The Art Cardinality Estimation [...]

Playing with pgloader 🔗

While making progress with both Event Triggers and Extension Templates, I needed to make a little break. My current keeping sane mental exercise seems [...]

Marking whole word 🔗

I’ve discovered recently another Emacs facility that I since then use several times a day, and I wonder how I did without it before: C-M-SPC runs the [...]

Live Upgrading PGQ 🔗

Some skytools related new today, it’s been a while. For those who where at my FOSDEM’s talk about Implementing High Availability you might have heard [...]

Another Great FOSDEM 🔗

This year’s FOSDEM has been a great edition, in particular the FOSDEM PGDAY 2013 was a great way to begin a 3 days marathon of talking about PostgreSQ [...]

FOSDEM 🔗

The first talk is a presentation of PostgreSQL High-Availability solutions, with different Architectures presented in their context. All the Architect [...]

A Sunday at FOSDEM 🔗

The previous article FOSDEM 2013 said to be careful with the PostgreSQL devroom schedule because one of my talks there might get swapped with a slot o [...]

FOSDEM 2013 🔗

This year again I’m going to FOSDEM, and to the extra special PostgreSQL FOSDEM day. It will be the first time that I’m going to be at the event for t [...]

pgloader: what's next? 🔗

pgloader is a tool to help loading data into PostgreSQL, adding some error management to the COPY command. COPY is the fast way of loading data into P [...]

Automated Setup for pgloader 🔗

Another day, another migration from MySQL to PostgreSQL… or at least that’s how it feels sometimes. This time again I’ve been using some quite old scr [...]

Lost in scope 🔗

Thanks to Mickael on twitter I got to read an article about loosing scope with some common programming languages. As the blog article Lost in scope re [...]

Extensions Templates 🔗

In a recent article titled Inline Extensions we detailed the problem of how to distribute an extension’s package to a remote server without having acc [...]

Inline Extensions 🔗

We’ve been having the CREATE EXTENSION feature in PostgreSQL for a couple of releases now, so let’s talk about how to go from here. The first goal of [...]

M-x ack 🔗

I’ve been asked about how to integrate the ack tool (you know, the one that is better than grep) into Emacs today. Again. And I just realized that I d [...]

CL Happy Numbers 🔗

A while ago I stumbled upon Happy Numbers as explained in programming praxis, and offered an implementation of them in SQL and in Emacs Lisp. Yeah, I [...]

About Vimgolf 🔗

Following some tweet I found myself desultory watching an episode of the awesome VimGolf in Emacs video series by Tim Visher. Those series are about p [...]

Editing SQL 🔗

It’s hard to read my blog yet not know I’m using Emacs. It really is a great tool and has a lot to compare to PostgreSQL in terms of extensibility, do [...]

Concurrent Hello 🔗

Thanks to Mickael on twitter I ran into that article about implementing a very basic Hello World! program as a way to get into a new concurrent langua [...]

PostgreSQL for developers 🔗

As Guillaume says, we’ve been enjoying a great evening conference in Lyon 2 days ago, presenting PostgreSQL to developers. He did the first hour prese [...]

Présentation de PostgreSQL 🔗

The PostgreSQL for Developers talk begins with a simple use case for developers to solve entirely in SQL. Discover SQL window functions if you don’t k [...]

Another awesome conf 🔗

Last week was PostgreSQL Conference Europe 2012 in Prague, and it’s been awesome. Many thanks to the organisers who did manage to host a very smooth c [...]

PostgreSQL Conference Europe 2012 🔗

The first talk is about a PostgreSQL Migration (from MySQL) of the Fotolog web site with 32 millions of users, 1 billion photos and 10 billion comment [...]

Prefixes and Ranges 🔗

It’s been a long time since I last had some time to spend on the prefix PostgreSQL extension and its prefix_range data type. With PostgreSQL 9.2 out, [...]

Reset Counter 🔗

I’ve been given a nice puzzle that I think is a good blog article opportunity, as it involves some thinking and window functions. [...]

Postgres Open, 2012 🔗

The talk is about a PostgreSQL Migration (from MySQL) of the Fotolog web site with 32 millions of users, 1 billion photos and 10 billion comments on t [...]

PostgreSQL 9.3 🔗

PostgreSQL 9.2 is released! It’s an awesome new release that I urge you to consider trying and adopting, an upgrade from even 9.1 should be very well [...]

El-Get 4.1 is out 🔗

Please welcome the new stable version of El-Get, the much awaited version 4.1 has now been branched for your pleasure. It’s packed with lots of featur [...]

Fast and stupid? 🔗

I stumbled onto an interesting article about performance when using python, called Python performance the easy(ish) way, where the author tries to get [...]

Autumn 2012 Conferences 🔗

The PostgreSQL community host a number of conferences all over the year, and the next ones I’m lucky enough to get to are approaching fast now. First, [...]

Solving Every Sudoku Puzzle 🔗

Peter Norvig published a while ago a very nice article titled Solving Every Sudoku Puzzle wherein he presents a programmatic approach to solving that [...]

PGDay France 2012 🔗

The french PostgreSQL Conference, pgday.fr, was yesterday in Lyon. We had a very good time and a great schedule with a single track packed with 7 talk [...]

PGDay France 🔗

Présentation des différentes options afin d’implémenter Disponibilité et Durabilité avec PostgreSQL. Les différentes Architectures possibles en 2012 e [...]

M-x recompile 🔗

A friend of mine just asked me for advice to tweak some Emacs features, and I think that’s really typical of using Emacs: rather than getting used to [...]

Back From PgCon 🔗

Last week was the annual PostgreSQL Hackers gathering in Canada, thanks to the awesome pgcon conference. This year’s issue has been packed with good t [...]

PGCON 🔗

The talk is about a PostgreSQL Migration (from MySQL) of a the Fotolog web site with 32 millions of users, 1 billion photos and 10 billion comments on [...]

Clean PGQ Subconsumers 🔗

Now that you’re all using the wonders of Cooperative Consumers to help you efficiently and reliably implement your business constraints and offload th [...]

PGQ Coop Consumers 🔗

While working a new PostgreSQL architecture for an high scale project that used to be in the top 10 of internet popular web sites (in terms of visitor [...]

Extension White Listing 🔗

PostgreSQL 9.1 includes proper extension support, as you might well know if you ever read this very blog here. Some hosting facilities are playing wit [...]

Battle Language à la Marmite 🔗

J’ai eu la chance hier soir de participer à la Battle Language à la Marmite, où j’avais proposé de parler de Emacs Lisp, proposition qui s’est transfo [...]

pgbouncer munin plugin 🔗

It seems that if you search for a munin plugin for pgbouncer it’s easy enough to reach an old page of mine with an old version of my plugin, and a bro [...]

Extensions en simple SQL 🔗

La conférence européenne à Amsterdam était un très bon évènement de la communauté, avec une organisation impeccable dans un hôtel accueillant. J’ai eu [...]

Back From Amsterdam 🔗

Another great conference took place last week, PostgreSQL Conference Europe 2011 was in Amsterdam and plenty of us PostgreSQL geeks were too. I attend [...]

PostgreSQL Conference Europe 🔗

Extensions are good for Business Logic addresses how to package and deploy your own PostgreSQL Extension to production, and implement business logic i [...]

Implementing backups 🔗

I’ve been asked about my opinion on backup strategy and best practices, and it so happens that I have some kind of an opinion on the matter. I tend to [...]

Extensions, applications 🔗

La conférence PostgreSQL annuelle en Europe a lieu la semaine prochaine à Amsterdam, et j’espère que vous avez déjà vos billets, car cette édition s’a [...]

Scaling Stored Procedures 🔗

In the news recently stored procedures where used as an excuse for moving away logic from the database layer to application layer, and to migrate away [...]

See you in Amsterdam 🔗

The next PostgreSQL conference is approaching very fast now, I hope you have your ticket already: it’s a very promissing event! If you want some help [...]

PostgreSQL à Amsterdam 🔗

Dans moins d’un mois se tient la conférence européenne PostgreSQL, pgconf.eu. Il s’agit de quatre jours consacrés à votre SGBD préféré, où vous pourre [...]

Skytools3: walmgr 🔗

Let’s begin the Skytools 3 documentation effort, which is long overdue. The code is waiting for you over at github, and is stable and working. Why is [...]

el-get-3.1 🔗

The el-get project releases its new stable version, 3.1. This new release fixes bugs, add a host of new recipes (we have 420 of them and counting) and [...]

PostgreSQL 9.1 🔗

PostgreSQL 9.1 est dans les bacs ! Vous n’avez pas encore cette nouvelle version en production ? Pas encore évalué pourquoi vous devriez envisager de [...]

Éviter les injections SQL 🔗

Nous avons parlé la dernière fois les règles d' échappement de chaînes avec PostgreSQL, et mentionné qu’utiliser ces techniques afin de protéger les d [...]

PostgreSQL and debian 🔗

After talking about it for a very long time, work finally did begin! I’m talking about the apt.postgresql.org build system that will allow us, in the [...]

pg_restore -L & pg_staging 🔗

On the PostgreSQL Hackers mailing lists, Andrew Dunstan just proposed some new options for pg_dump and pg_restore to ease our lives. One of the answer [...]

Skytools, version 3 🔗

You can find skytools3 in debian experimental already, it’s in release candidate status. What’s missing is the documentation, so here’s an idea: I’m g [...]

pgfincore in debian 🔗

As of pretty recently, pgfincore is now in debian, as you can see on its postgresql-9.0-pgfincore page. The reason why it entered the debian archives [...]

Échappement de chaînes 🔗

Parmis les nouveautés de la prochaine version de PostgreSQL, la fameuse 9.1, il faut signaler le changement de valeur par défaut de la variable standa [...]

el-get-list-packages 🔗

From the first days of el-get is was quite clear for me that we would reach a point where users would want a nice listing including descriptions of th [...]

Tutoriel pgloader 🔗

En reprenant le contenu des articles de la série sur pgloader, j’ai pris le temps de compiler un tutoriel complet, en anglais. Si j’en crois les quelq [...]

pgloader tutorial 🔗

To finish up the pgloader series, I’ve compiled all the information into a single page, the long awaited pgloader tutorial. That should help lots of u [...]

Champs statiques & pgloader 🔗

Dans la série de nos articles sur pgloader, l’article du jour décrit comment insérer des valeurs constantes (absentes du fichier de données) pendant l [...]

pgloader constant cols 🔗

The previous articles in the pgloader series detailed How To Use PgLoader then How to Setup pgloader, then what to expect from a parallel pgloader set [...]

Emacs Startup 🔗

Using Emacs we get to manage a larger and larger setup file (either ~/.emacs or ~/.emacs.d/init.el), sometime with lots of dependencies, and some sub- [...]

pgloader reformating 🔗

Back to our series about pgloader. The previous articles detailed How To Use PgLoader then How to Setup pgloader, then what to expect from a parallel [...]

Reformater avec pgloader 🔗

Dans la série de nos articles sur pgloader, le dernier venu détaille comment utiliser la fonction de reformatage de cet outil. Dans le cadre d’utilisa [...]

See Tsung in action 🔗

Tsung is an open-source multi-protocol distributed load testing tool and a mature project. It’s been available for about 10 years and is built with th [...]

Parallel pgloader 🔗

This article continues the series that began with How To Use PgLoader then detailed How to Setup pgloader. We have some more fine points to talk about [...]

pgloader en parallèle 🔗

Dans la série des articles sur pgloader, nous détaillons cette fois la configuration du paraléllisme de chargement des données. Une fois de plus, je v [...]

Configurer pgloader 🔗

Je viens de publier un billet en anglais intitulé How to Setup pgloader, qui complète l’écriture en cours d’un tutoriel pgloader plus complet. Une foi [...]

How to Setup pgloader 🔗

In a previous article we detailed how to use pgloader, let’s now see how to write the pgloader.conf that instructs pgloader about what to do. [...]

Emacs ANSI colors 🔗

Emacs comes with a pretty good implementation of a terminal emulator, M-x term. Well not that good actually, but given what I use it for, it’s just wh [...]

Next month partitions 🔗

When you do partition your tables monthly, then comes the question of when to create next partitions. I tend to create them just the week before next [...]

Comment Utiliser pgloader 🔗

C’est une question qui revient régulièrement, et à laquelle je pensais avoir apporté une réponse satisfaisante avec les exemples pgloader. Ce document [...]

How To Use PgLoader 🔗

This question about pgloader usage coms in quite frequently, and I think the examples README goes a long way in answering it. It’s not exactly a tutor [...]

Emacs Cheat Sheet 🔗

I stumbled upon the following cheat sheet for Emacs yesterday, and it’s worth sharing. I already learnt or discovered again some nice default chords, [...]

Skytools3 : les slides 🔗

La conférence CHAR(11) étant maintenant terminée, il est d’usage de publier les slides utilisés. J’ai présenté Skytools 3.0 dont la prochaine version [...]

Skytools3 talk Slides 🔗

In case you’re wondering, here are the slides from the CHAR(11) talk I gave, about Skytools 3.0, soon to be released. That means as soon as I have eno [...]

Elisp Breadcrumbs 🔗

A breadcrumb is a navigation aid. I just added one to this website, so that it gets easier to browse from any article to its local and parents indexes [...]

De retour de CHAR(11) 🔗

Quelle meilleure occupation dans le train du retour de CHAR(11) que de se faire reporteur pour l’occasion ? En réalité, dormir serait une idée tant le [...]

Back From CHAR(11) 🔗

CHAR(11) finished somewhen in the night leading to today, if you consider the social events to be part of it, which I definitely do. This conference h [...]

CHAR 11 🔗

A presentation of Skytools 3, the third major version of the replication and load-balancing solution from Skype. This covers both Londiste and PGQ. [...]

Muse setup revised 🔗

Most of you are probably reading my posts directly in their RSS reader tools (mine is gnus thanks to the Gwene service), so you probably missed it, bu [...]

Prêt pour CHAR(11) ? 🔗

La semaine prochaine déjà se tient CHAR(11), la conférence spécialisée sur le Clustering, la Haute Disponibilité et la Réplication avec PostgreSQL. C’ [...]

Multi-Version support for Extensions 🔗

We still have this problem to solve with extensions and their packaging. How to best organize things so that your extension is compatible with before [...]

Don't be afraid of 'cl 🔗

In this blog article, you’re shown a quite long function that loop through your buffers to find out if any of them is associated with a file whose ful [...]

Back from Ottawa, preparing for Cambridge 🔗

While Magnus is all about PG Conf EU already, you have to realize we’re just landed back from PG Con in Ottawa. My next stop in the annual conferences [...]

el-get 2.2 🔗

We’ve spotted a little too late for our own taste a discrepancy in the source tree: a work in progress patch landed in git just before to release el-g [...]

el-get 2.1 🔗

Current el-get status is stable, ready for daily use and packed with extra features that make life easier. There are some more things we could do, as [...]

PGCON 🔗

A talk about the then ongoing effort to implement support for Extensions in PostgreSQL. My patch was committed in 9.1 and is the basis for the create [...]

Preparing for PGCON 🔗

It’s this time of the year again, the main international PostgreSQL Conference is next week in Ottawa, Canada. If previous years are any indication, t [...]

Mailq modeline display 🔗

If you’ve not been following along, you might have missed it: it appears to me that even today, in 2011, mail systems work much better when setup the [...]

Tables and Views dependencies 🔗

Let’s say you need to ALTER TABLE foo ALTER COLUMN bar TYPE bigint;, and PostgreSQL is helpfully telling you that no you can’t because such and such v [...]

Extension module_pathname and .sql.in 🔗

While currently too busy at work to deliver much Open Source contributions, let’s debunk an old habit of PostgreSQL extension authors. It’s all down t [...]

Emacs and PostgreSQL, PL line numbering 🔗

A while ago I’ve been fixing and publishing pgsql-linum-format separately. That allows to number PL/whatever code lines when editing from Emacs, and i [...]

Emacs Kicker 🔗

Following up on the very popular emacs-starter-kit, I’m now proposing the emacs-kicker. It’s about the .emacs file you’ve seen in older posts here, wh [...]

Some notes about Skytools3 🔗

I’ve been working on skytools3 packaging lately. I’ve been pushing quite a lot of work into it, in order to have exactly what I needed out of the box, [...]

towards pg_staging 1.0 🔗

If you don’t remember about what pg_staging is all about, it’s a central console from where to control all your PostgreSQL databases. Typically you us [...]

Extensions in 9.1 🔗

If you’ve not been following closely you might have missed out on extensions integration. Well, Tom spent some time on the patches I’ve been preparing [...]

desktop-mode and readahead 🔗

I’m using Desktop Save Mode so that Emacs knows to open again all the buffers I’ve been using. That goes quite well with how often I start Emacs, that [...]

Back from FOSDEM 🔗

This year we were in the main building of the conference, and apparently the booth went very well, solding lots of PostgreSQL merchandise etc. I had t [...]

FOSDEM 🔗

The tale of the development of the Extension support for PostgreSQL, by the patch series author, yours truly. [...]

Going to FOSDEM 🔗

A quick blog entry to say that yes: And I will even do my Extension’s talk which had a success at pgday.eu. The talk will be updated to include the la [...]

Starting afresh with el-get 🔗

It so happens that a colleague of mine wanted to start using Emacs but couldn’t get to it. He insists on having proper color themes in all application [...]

el-get 1.1, with 174 recipes 🔗

Yes, you read it well, el-get currently features 174 recipes, and is now reaching the 1.1 release. The reason for this release is mainly that I have t [...]

PostgreSQL Conference Europe 🔗

A talk about the then ongoing effort to implement support for Extensions in PostgreSQL. My patch was committed in 9.1 and is the basis for the create [...]

Dynamic Triggers in PLpgSQL 🔗

You certainly know that implementing dynamic triggers in PLpgSQL is impossible. But I had a very bad night, being up from as soon as 3:30 am today, so [...]

pg_basebackup 🔗

Hannu just gave me a good idea in this email on -hackers, proposing that pg_basebackup should get the xlog files again and again in a loop for the who [...]

Introducing Extensions 🔗

After reading Simon’s blog post, I can’t help but try to give some details about what it is exactly that I’m working on. As he said, there are several [...]

Extensions: writing a patch for PostgreSQL 🔗

These days, thanks to my community oriented job, I’m working full time on a PostgreSQL patch to terminate basic support for extending SQL. First thing [...]

Date puzzle for starters 🔗

The PostgreSQL IRC channel is a good place to be, for all the very good help you can get there, because people are always wanting to remain helpful, b [...]

Resuming work on Extensions, first little step 🔗

Yeah I’m back on working on my part of the extension thing in PostgreSQL. First step is a little one, but as it has public consequences, I figured I’d [...]

el-get reaches 1.0 🔗

It’s been a week since the last commits in the el-get repository, and those were all about fixing and adding recipes, and about notifications. Nothing [...]

Regexp performances and Finite Automata 🔗

The major reason why I dislike perl so much, and ruby too, and the thing I’d want different in the Emacs Lisp API so far is how they set developers mi [...]

Postfix sender_dependent_relayhost_maps 🔗

The previous article about M-x mailq has raised several mails asking me details about the Postfix setup I’m talking about. The problem we’re trying to [...]

Scratch that itch: M-x mailq 🔗

Nowadays, most people would think that email is something simple, you just setup your preferred client (that’s called a MUA) with some information suc [...]

switch-window reaches 0.8 🔗

I wanted to play with the idea of using the whole keyboard for my switch-window utility, but wondered how to get those keys in the right order and all [...]

Window Functions example remix 🔗

The drawback of hosting a static only website is, obviously, the lack of comments. What happens actually, though, is that I receive very few comments [...]

Window Functions example 🔗

So, when 8.4 came out there was all those comments about how getting window functions was an awesome addition. Now, it seems that a lot of people seek [...]

Synchronous Replication 🔗

Although the new asynchronous replication facility that ships with 9.0 ain’t released to the wide public yet, our hackers hero are already working on [...]

Want to share your recipes? 🔗

Yes, that’s another el-get related entry. It seems to take a lot of my attention these days. After having setup the git repository so that you can upd [...]

Happy Numbers 🔗

After discovering the excellent Gwene service, which allows you to subscribe to newsgroups to read RSS content ( blogs, planets, commits, etc), I came [...]

welcome el-get scratch installer 🔗

A very good remark from some users: installing and managing el-get should be simpler. They wanted both an easy install of the thing, and a way to be a [...]

Playing with bit strings 🔗

The idea of the day ain’t directly from me, I’m just helping with a very thin subpart of the problem. The problem, I can’t say much about, let’s just [...]

el-get news 🔗

I’ve been receiving some requests for el-get, some of them even included a patch. So now there’s support for bzr, CSV and http-tar, augmenting the exi [...]

el-get and dim-switch-window status update 🔗

Thanks to you readers of Planet Emacsen taking the time to try those pieces of emacs lisp found in my blog, and also the time to comment on them, some [...]

Editing constants in constraints 🔗

We’re using constants in some constraints here, for example in cases where several servers are replicating to the same federating one: each origin ser [...]

debian packaging PostgreSQL extensions 🔗

In trying to help an extension debian packaging effort, I’ve once again proposed to handle it. That’s because I now begin to know how to do it, as you [...]

Querying the Catalog to plan an upgrade 🔗

Some user on IRC was reading the releases notes in order to plan for a minor upgrade of his 8.3.3 installation, and was puzzled about potential needs [...]

el-get 🔗

I’ve been using emacs for a long time, and a long time it took me to consider learning Emacs Lisp. Before that, I didn’t trust my level of understandi [...]

Database Virtual Machines 🔗

Today I’m being told once again about SQLite as an embedded database software. That one ain’t a database server but a software library that you can us [...]

Partitioning: relation size per “group” 🔗

This time, we are trying to figure out where is the bulk of the data on disk. The trick is that we’re using DDL partitioning, but we want a “nice” vie [...]

dim-switch-window.el: fixes 🔗

Thanks to amazing readers of planet emacsen, two annoyances of switch-window.el have already been fixed! The first is that handling of C-g isn’t exact [...]

dim-switch-window.el 🔗

So it’s Sunday and I’m thinking I’ll get into el-get sometime later. Now is the time to present dim-switch-window.el which implements a visual C-x o. [...]

ClusterSSH gets dsh support 🔗

If you don’t know about ClusterSSH, it’s a project that builds on M-x term and ssh to offer a nice and simple way to open remote terminals. It’s avail [...]

Emacs and PostgreSQL 🔗

Those are my two all times favorite Open Source Software. Or Free Software in the GNU sense of the world, as both the BSD and the GPL are labeled free [...]

Background writers 🔗

There’s currently a thread on hackers about bg worker: overview and a series of 6 patches. Thanks a lot Markus! This is all about generalizing a conce [...]

Logs analysis 🔗

Nowadays to analyze logs and provide insights, the more common tool to use is pgfouine, which does an excellent job. But there has been some improveme [...]

Using indexes as column store? 🔗

There’s a big trend nowadays about using column storage as opposed to what PostgreSQL is doing, which would be row storage. The difference is that if [...]

MVCC in the Cloud 🔗

At CHAR(10) Markus had a talk about Using MVCC for Clustered Database Systems and explained how Postgres-R does it. The scope of his project is to mai [...]

Back from CHAR(10) 🔗

It surely does not feel like a full month and some more went by since we were enjoying PGCon 2010, but in fact it was already the time for CHAR(10). T [...]

Back from PgCon2010 🔗

This year’s edition has been the best pgcon ever for me. Granted, it’s only my third time, but still :) As Josh said the “Hall Track” in particular wa [...]

PGCON 🔗

2 years of londiste is a talk that summarize what we’ve found in this project after having been using it for 2 years in production. From the community [...]

Import fixed width data with pgloader 🔗

So, following previous blog entries about importing fixed width data, from Postgres Online Journal and David (perl) Fetter, I couldn’t resist followin [...]

pgloader activity report 🔗

Yes. This pgloader project is still maintained and somewhat active. Development happens when I receive a complaint, either about a bug in existing cod [...]

Finding orphaned sequences 🔗

This time we’re having a database where sequences were used, but not systematically as a default value of a given column. It’s mainly an historic bad [...]

Emacs Muse hacking 🔗

Now you know what piece of software is used to publish this blog. I really like it, the major mode makes it a great experience to be using this tool, [...]

Getting out of SQL_ASCII, part 2 🔗

So, if you followed the previous blog entry, now you have a new database containing all the static tables encoded in UTF-8 rather than SQL_ASCII. Beca [...]

Getting out of SQL_ASCII, part 1 🔗

It happens that you have to manage databases designed by your predecessor, and it even happens that the team used to not have a DBA. Those histerical [...]

Resetting sequences. All of them, please! 🔗

So, after restoring a production dump with intermediate filtering, none of our sequences were set to the right value. I could have tried to review the [...]

pg_staging's bird view 🔗

One of the most important feedback I got about the presentation of pgstaging were the lack of pictures, something like a bird-view of how you operate [...]

PGday.eu feedback 🔗

At pgday there was this form you could fill to give speakers some feedback about their talks. And that’s a really nice way as a speaker to know what t [...]

prefix 1.1.0 🔗

So I had two bug reports about prefix in less than a week. It means several things, one of them is that my code is getting used in the wild, which is [...]

Yet Another PostgreSQL tool hits debian 🔗

So there it is, this newer contribution of mine that I presented at PGDay is now in debian NEW queue. pg_staging will empower you with respect to what [...]

PGDay.eu, Paris: it was awesome! 🔗

moment. Lots of attendees, lots of quality talks ( slides are online), good food, great party: all the ingredients were there! It also was for me the [...]

PostgreSQL Conference Europe 🔗

2 years of londiste is a talk that summarize what we’ve found in this project after having been using it for 2 years in production. From the community [...]

Emacs Muse based publishing 🔗

As you might have noticed, this little blog of mine is not compromising much and entirely maintained from Emacs. Until today, I had to resort to term [...]

prefix 1.0.0 🔗

So there it is, at long last, the final 1.0.0 release of prefix! It’s on its way into the debian repository (targetting sid, in testing in 10 days) an [...]

Emacs is Twinkling here 🔗

So you have a rolodex like database in your Emacs, or you have this phone number in a mail and you want to call it. It happens you have VoIP setup and [...]

Escreen integration 🔗

After having used elscreen for a long time, I’m now a very happy user of escreen, which feels much better integrated and allows to have one ring of re [...]

Follow-up on dim:mailrc-add-entry 🔗

The function didn’t allow for using more than one mailrc file, which isn’t a good idea, so I’ve just added that. Oh and for gnus integration what I ne [...]

Improving ~/.mailrc usage 🔗

So I’ve been adviced to use ~/.mailrc for keeping a basic address book in Emacs, for use within gnus for example. I had to resort to the manual to fin [...]

hstore-new & preprepare reach debian too 🔗

It seems like debian developers are back from annual conference and holiday, so they have had a look at the NEW queue and processed the packages in th [...]

Some emacs nifties 🔗

First, here’s a way to insert at current position the last message printed into the minibuffer… well not exactly, in *Messages* buffer in fact. I was [...]

prefix 1.0~rc2 in debian testing 🔗

At long last, here it is. With binary versions both for postgresal-8.3 and postgresal-8.4! Unfortunately my other packaging efforts are still waiting [...]

prefix 1.0~rc2-1 🔗

I’ve been having problem with building both postgresql-8.3-prefix and postgresql-8.4-prefix debian packages from the same source package, and fixing t [...]

prefix extension reaches 1.0 (rc1) 🔗

At long last, after millions and millions of queries just here at work and some more in other places, the prefix project is reaching 1.0 milestone. Th [...]

PgCon 2009 🔗

I can’t really compare PgCon 2009 with previous years versions, last time I enjoyed the event it was in 2006, in Toronto. But still I found the experi [...]

PGCON 🔗

A Lightning Talk about PGQ, the Skytools solution for managing queues in PostgreSQL. [...]

Prepared Statements and pgbouncer 🔗

On the performance mailing list, a recent thread drew my attention. It devired to be about using a connection pool software and prepared statements in [...]

Skytools 3.0 reaches alpha1 🔗

It’s time for Skytools news again! First, we did improve documentation of current stable branch with hosting high level presentations and tutorials on [...]

Prefix GiST index now in 8.1 🔗

The prefix project is about matching a literal against prefixes in your table, the typical example being a telecom routing table. Thanks to the excell [...]

Importing XML content from file 🔗

The problem was raised this week on IRC and this time again I felt it would be a good occasion for a blog entry: how to load an XML file content into [...]

Asko Oja talks about Skype architecture 🔗

In this russian page you’ll see a nice presentation of Skype databases architectures by Asko Oja himself. It’s the talk at Russian PostgreSQL Communit [...]

Skytools ticker daemon and londiste 🔗

One of the difficulties in getting to understand and configure londiste reside in the relation between the ticker and the replication. This question w [...]

Comparing Londiste and Slony 🔗

In the page about Skytools I’ve encouraged people to ask some more questions in order for me to be able to try and answer them. That just happened, as [...]

Controling HOT usage in 8.3 🔗

As it happens, I’ve got some environments where I want to make sure HOT ( aka Heap Only Tuples) is in use. Because we’re doing so much updates a secon [...]

Londiste Trick 🔗

So, you’re using londiste and the ticker has not been running all night long, due to some restart glitch in your procedures, and the on call admin did [...]

Useful emacs trick 🔗

Watch Kevin Kelly’s Talk here, it’s about trying to predict what the Internet will look like 5 thousands days from now. [...]

emacs-snapshot 🔗

If you want to live on the bleeding edge, it’s easy enough to get a non existing release of GNU Emacs under debian sid, thanks to http://emacs.oreboke [...]

new site, using new software 🔗

Oh and check out the skytools page too. Emacs Muse is so great a project that instead of just working on how to publish a website with this tool, I fo [...]

Emacs Muse powered blog 🔗

So finaly a blogging software for geeks exists? The problem with communication is that you think it happened. [...]

Fake entry 🔗

This is a test of a fake entry to see how muse will manage this. With some SQL inside: SELECT * FROM planet.postgresql.org WHERE author = "dim"; [...]

PostgreSQL Conference Europe 🔗

My first PostgreSQL Conference ever, and I was a speaker… thanks to this very welcoming community! The first presentation is a Lightning Talk about PG [...]

January 1, 2001 12:00 AM

On JSON and SQL See the articles: http://tapoueh.org/blog/2017/09/on-json-and-sql/ http://tapoueh.org/blog/2017/10/set-returning-fonctions-and-postgre [...]

Projects 🔗

Open-source tools I build and maintain — mostly about getting data in and out of PostgreSQL and keeping it highly available. The full graveyard lives [...]