pgcon midtime report

So it's been a couple of days since I arrived for pgcon in Ottawa, so it's obviously time to blog. At least Devrim keeps telling me to...

Trip in was not too bad, though 4 hours at Heathrow airport is not exactly fun. Got here Monday evening, tried to coordinate with the EnterpriseDB UK team who arrived an hour or so after me. After much problems (ahem, phones that don't work abroad and such - hello Dave), we did manage to hook up and had a dinner and some beers in the evening. Plus, of course, PostgreSQL chatting!

Tuesday was mostly spent walking around the city and playing tourist along with Dave. Simon and Heikki hadn't done their homework properly, so they had to update talks and finish off patches. In the afternoon we headed over to the Royal Oak pub where the registration was, and spent the rest of the day chatting with the other pg people who had arrived.

Since I didn't go to any tutorials, the conference itself started for me on Wednesday, with Bruces keynote. Somehow I managed to get mentioned in that one again, I just don't know how that keeps happening... An interesting look back at some of the things that brought us to where we are now, and a good way to kick off the conference.

Next talk for me was PostgreSQL-IE, which is a system for doing context based image search in PostgreSQL, and looks really really interesting. Currently used in the medical field by them, but it seems like it could be used for several other things as well with fairly small changes.

After that, Robert Treat did a good overview on partitioning. I haven't really looked into the partitioning stuff as much as I've wanted, so this was a really good way to get started on that.

After lunch, I went to a presentation on migrating from SQL Server (primarily) to PostgreSQL. But I'll have to admit I spent a lot of that time working on my own slides, so I can't really comment on the talk.

Denis gave a talk on why the EnterpriseDB team picked PostgreSQL as the foundation for building the EnterpriseDB product and company. Most if the reasons were the ones you'd already have guessed, but he brought some nice details about the decision process.

Getting to the last actual talk, there was that weird PostgreSQL-on-Windows guy giving his talk. I think it was fairly well received, even though Dave had to point out I forgot to say that he had actually fixed the installer so that it'll work on Windows Vista out of the box on 8.3. Oops, sorry about that Dave! We'll see what the eval forms tell me for a more objective view on how well it went.

The final part on the actual conference was the BOF. The discussion we had first turned out into pretty much a repeat of things that were already said on the mailinglists, so I'm not sure it was very productive. We did end it up with a keysigning event, which worked better.

After that it was off to the EnterpriseDB sponsored drinks and dinner party. We got there hours after the other guys (who skipped the BOFs), but we got there before the food was served, so the damage wasn't that big. Food and beer and good discussions were had. When the place closed we moved on to the bar that's in the hotel where the EDB guys stayed for another beer, but we didn't end up staying there very long.

Just in for the start of the last day now, also worrying about the fact that my airline for my trip home have gone on strike, so I have no way to get home right now. But I'm sure it'll work out some way, so I'll just focus on the conference for now.

pgcon, pgday and blogging

I just got booked for going to pgday in Prato, Italy. Looks like it's going to be a great gathering of the European people in the PostgreSQL community. Really looking forward to meeting those from the EU group that I haven't already had a chance to meet. I haven't decided if I'm going to submit a talk yet though, but it seems I have a few more weeks to decide.

Closer in time, we're rapidly coming up on pgcon next week. I really need to polish my slides soon. But I guess that's what long flights are for after all... Between these two events, there isn't that much of the PostgreSQL community that I won't get to meet over the next couple of months. Great times ahead!

Oh, and what has happened to The post-rate has really dropped drastically (and yes, I realize I'm definitely part to blame for this). There are as usual interesting exceptions, but it seems the number of posts have gone down. People, get back to blogging interesting stuff!

Testing the new installer

Dave has put up a snapshot of the new 8.3 installer on the pgFoundry page. This contains a whole lot of things for Windows users to test:

  • Several new features and fixes for the installer, such as autodetection of locales and better handling of existing data directories.
  • 8.3 development snapshot built with MSVC instead of mingw
  • New pginstaller built with MSVC instead of mingw
  • New stackbuilder system for handling add-ons
  • New versions of most bundled apps and drivers

So if you're a windows user, and want to test things, please download this file and let us know (through the mailinglists!) how it works out for you.

NOTE! This is a pre-beta development snapshot of both the server and the installer. DO NOT USE IN PRODUCTION!

msvc builds on the buildfarm

Thanks to Dave, we now have a couple of machines on the buildfarm that build with msvc - a definite requirement for using the msvc build for the main binary distribution of 8.3. Today had my first msvc-specific patch that the buildfarm found for us - a trivial overlook, but the buildfarm certainly helped. And even the Unix folks seem to like it - diversity is good for portability.

Pginstaller with msbuild

As of yesterday, msys/mingw is no longer used to build the CVS tip of pginstaller. Instead, it builds completely using the tools of Visual Studio 2005. This includes both the actual installer, and the custom actions written in C. There is no change to the actual installer, it's still built using WiX based on the same files, and the DLLs are built from the same source code (except for a few compatibility fixes).

The build system for the pginstaller is fairly complex. Or at least, it's fairly weird. Mainly because of the need to deal with the translations, which are applied by first generating complete installers in different languages (which in turn is done by rewriting the whole source code and replacing translatable strings) and then doing a "binary diff" between them, which is finally embedded in the main installer.

The drug of choice for this rewrite is msbuild. While primarily geared for building managed code (that's Microsoft-speak for .Net code), it can be a pretty good Makefile replacement. While it can't do everything that your typical unix makefile can do (given that it can't run arbitrary commands), it has some good features for dealing with just the situation we have with our language code. Check it out - it's all in the pginstaller cvs. It's always a matter of taste which is cleaner - I personally find the msbuild code a bit more readable.

The best news is definitely that there is no need for a msys/mingw installation to build it anymore. And if it's used to create an installer for the msvc build of the backend, there's no need for msys/mingw at all anymore.

Remembering the download mirror

As a final step to my updates to the download code on, I've added code so the server remember which mirror was last used to download. When you download a second file, this mirror will be automatically picked for your download, saving you a whole click. Enjoy!

Support for http downloads

I've just committed code to the website that finally allows http downloads. This has been a much requested feature for quite a long time, mainly from those users that are behind firewalls that don't work well with ftp. Most often a http download of a single file will also be faster than ftp download of the same file, since there are less roundtrips. Though for large files that difference shouldn't be noticeable.

The mirror checking script will poll the same mirrors we already have and figure out which ones support http download as well as ftp. Therefor, all mirrors listed will always support ftp, but some (currently about a third of them) will also support ftp. There will be no http-only mirrors.

Messing with the website

I finally got around to committing the code that I've been sitting on for the website. Hopefully, it shouldn't have much visible results for the end user (it's designed to look just the same), but it fixes several of the issues that used to be in the code:

  • Instead of including pages all over the place, each page is now it's own class, which is auto-loaded. It consists of a couple of virtual methods, that make it possible to actually use return in the code, instead of having to build insane if-else-ladders

  • Uses proper exception handling to deal with errors. So now we actually output http error codes when things break, instead of outputing a status code of ok with a text of "error: this or that". This is very important given that the mirror script will now not overwrite the entire site with empty pages in case things break - instead, it'll just leave the last working version alone.

  • Language code for translating news, events, quotes etc is fixed and appears to actually work now. It's a much-talked-about feature that it seems pretty much nobody has been using. But at least it's not broken anymore.

  • Loads and loads of code cleanup and minor bug fixes.

Given that it's a huge commit, I'm sure I managed to break something. If you spot something that's obviously broken and that used to be ok, please drop me a line so I can fix it.

Linuxforum roundup

So I'm back home from Linuxforum in Copenhagen. As usual, a very good conference, with many interesting talks. And we were well isolated from the riots that took place in parts of the city - barely noticed them. If you have a chance to go next year, you definitely should! It's not even expensive...

Noticeably absent from the whole thing, both talk and booth-wise, was MySQL. I have no idea why. Nice to see that Ingres had a talk, now that they're open sourced - and a very interesting one regarding open vs closed source in enterprise environments.

My talk was Saturday afternoon, and went pretty well I think. The room was more or less full - which was a good thing given that it meant a lot of people were interested, and a bad thing because there was pretty much zero ventilation in the room. My chairman almost fell asleep, but at least I didn't notice anybody else doing so.

The questions aside from the actual talk were mostly the usual one. One interesting thing to notice is that both me and the Ingres guy got a question about CONNECT BY. And neither of our databases have it (yet). It's possible they were from the same guy though - I didn't get a look at him during the Ingres talk.

Anyway, a big thanks to the coord team for having me over again this year - I had a great experience! And thanks to the other speakers with whom I spent a lot of time. Hope to see you all again next year!

Thank you JPUG!

The JPUG conference yesterday here in Tokyo went really well, I think. As I've come to expect, a well arranged conference, and a lot of interested people there to listen.

For me the day started when I realized I had not finished my slides(!) The slides themselves were finished, but I had some highlighting to do (on the screen shot slides), and I had to polish a few minor things. So the time after breakfast was well spent on that. Around 11:30, Ishikawa-san came to pick me up at the hotel and we went to the SGI conference room where the talks were.

The conference itself started with Hiroshi-san doing a presentation on npgsql. He also showed a video of Francisco giving a welcome speak (originally Fransisco was supposed to be at the conference, but he was unfortunately not able to make it). Some minor technical issues, such as the video playback hanging and repeating one word over and over again, but still nice... Can't say much for Hiroshis talk, given that I didn't understand a word (other than the code slides), but as usual he was very persuasive...

After that, it was my turn. It was a pretty big crowd, about 100 people according to the numbers I heard (see picture, as seen from where I was standing). I think the talk went pretty well, and people did seem interested. I had a translator who translated everything I said into Japanese. I'm was quite impressed by her - she knew nothing about PostgreSQL (or really about technology in general), just the language. But the way she was able to remember a set of three to four sentences and then translate it all, with just a few very quick notes, was very impressive. And from what I heard, the translation was good - can't verify that myself, of course. Last time I spoke here (with Dave and Andreas) we were talking from transcripts that were translated beforehand. This time, the translation was live.

Once my talk was over, I had an interview with a reporter from Nikkei Business Publications about PostgreSQL on Windows in particular and some general things about PostgreSQL. Hopefully, it will turn into a nice article.

The rest of the day was spent with talks by Enomoto Atsushi (from Ximian/Novell) about ADO.NET in Mono, and by Jun Kuwamura about using PostgreSQL for LDAP on Windows. (picture as seen from my position in the back of the room, during the LDAP talk. I confess to checking my email during the talk) Again, I can't really speak for the contents of the talk, as I didn't understand much. But there were pretty screen shots...

Once we packed up after the conference, we went for a JPUG dinner at a place called something-or-other Beer Station. In English! I understood what it said on the door. And given that it said Beer station, what could I do but approve... We had a nice dinner, and many interesting people from JPUG to talk to. It's very interesting to hear about PostgreSQL usage here in Japan - in some ways, it's way ahead of Europe. Also had the chance to do some more specific troubleshooting with a couple of guys who had specific problems. After that we were off to a sake-bar in the evening for some further drink and food. Good times were had by all...

Finally, no post about this conference and the surrounding activities would be complete without a picture of the guys who made it happen, so here it goes. There were a lot of people involved in making this a great conference for the people visiting, and a great trip in general for me, but these were AFAIK the main guys arranging it - Hiroshi Saito and Toshiyuki Ishikawa. So to you, and to all the others who helped out with it, a very big thank you! I've had a great time so far, and I'd certainly love to come back another time

With that, i have a meetup with Michael Glaesemann tonight, and then it's off to the airport tomorrow for one of those lovely way-too-long flights back home. I hope there are no unnecessary delays this time...


I speak at and organize conferences around Open Source in general and PostgreSQL in particular.


Mar 2-5, 2017
Pasadena, California, USA
Open Source Infrastructure @ SCALE
Mar 2, 2017
Pasadena, California, USA
Confoo Montreal 2017
Mar 8-10, 2017
Montreal, Canada
Nordic PGDay 2017
Mar 21, 2017
Stockholm, Sweden 2017
Mar 23, 2017
Paris, France
PGCon 2017
May 23-26, 2017
Ottawa, Canada


FOSDEM + PGDay 2017
Feb 2-4, 2017
Brussels, Belgium
PGConf.Asia 2016
Dec 2-3, 2016
Tokyo, Japan
Berlin PUG
Nov 17, 2016
Berlin, Germany
PGConf.EU 2016
Nov 1-4, 2016
Tallinn, Estonia
Stockholm PUG 2016/5
Oct 25, 2016
Stockholm, Sweden
More past conferences