• PostgreSQL 15 statistics

    I have been gathering some statistics about each major PostgreSQL release. Here is the update for this year:

  • PostgreSQL system catalogs schema diagrams

    Some time ago, someone asked on a PostgreSQL mailing list whether there was a diagram of the PostgreSQL system catalogs. There wasn’t at the time. Something like that used to be included in the PostgreSQL documentation, but it was never updated, and so it was eventually removed.

  • ICU features in PostgreSQL 15

    One of the new features in PostgreSQL 15 is that you can use ICU collations on a database and instance level.

  • git diff and git log and dots

    A little while ago, we had a few PostgreSQL hackers in a room and someone oversaw me typing something like

  • git rebase and ORIG_HEAD

    I seem to be doing this a lot:

  • Using GNU GLOBAL with PostgreSQL

    When you are coding in a source tree as big as PostgreSQL’s, you will at some point want to look into some kind of source code indexing. It’s often convenient not to bother, since git grep is actually superfast. But when you want to find where a function is defined among all the call sites, some more intelligence is useful.

  • Some git log tweaks

    Here are some tweaks to git log that I have found useful. It might depend on the workflow of individual projects how applicable this is.

  • Check your pg_dump compression levels

    I was idly wondering what was taking pg_dump so long and noticed that it always seemed to be pegged at 100% CPU usage on the client. That was surprising because naively one might think that the bottleneck are the server’s or the client’s disk or the network. Profiling quickly revealed that the compression library zlib was taking most of the run time on the client. And indeed, turning compression off caused pg_dump to fly without getting anywhere near 100% CPU.

  • Have problems with PostgreSQL? Try using Hive!

    So I had this PostgreSQL database that was getting a bit too big, and since it was really only for analytics, I figured it would be a good fit for putting in Hadoop+Hive instead.

  • Storing URIs in PostgreSQL

    About two months ago, this happened:

  • Retrieving PgBouncer statistics via dblink

    PgBouncer has a virtual database called pgbouncer. If you connect to that you can run special SQL-like commands, for example

  • The history of replication in PostgreSQL

    2001: PostgreSQL 7.1: write-ahead log

  • Listing screen sessions on login

    There is a lot of helpful information about screen out there, but I haven’t found anything about this. I don’t want to “forget” any screen sessions, so I’d like to be notified when I log into a box and there are screens running for me. Obviously, there is screen -ls, but it needs to be wrapped in a bit logic so that it doesn’t annoy when there is no screen running or even installed.

  • Directing output to multiple files with zsh

    Normally, this doesn’t work as one might naively expect:

  • ccache and clang, part 3

    In part 1 and part 2 I investigated how to use ccache with clang. That was more than three years ago.

  • Checking whitespace with Git

    Whitespace matters.

  • First post

    This is my new blog. My old blog was here, but it was time to move on.

subscribe via RSS