Thursday, 7 December 2006

Joining EnterpriseDB

Once again I've been neglecting my blog - this time it's been months and months since my last entry which looking back I see was a drunken rambling following a conversation with (and about) Jim Nasby in the company of Magnus and an assortment of people from EnterpriseDB. Which is quite a coincidence really as the point of this blog entry is to announce to anyone that's interested that after more than 11 years at Vale Housing, I'll be joining EnterpriseDB in January.

So, from the new year I'll be braving the A34 on a daily basis to work primarily from the EnterpriseDB Performance Center in Bicester, near Oxford. PostgreSQL regulars may already know that means I'll be sharing an office with well known PostgreSQL hackers Simon Riggs, Heikki Linnakangas and Greg Stark.

As for pgAdmin and my other community work, EnterpriseDB have kindly agreed to allow me time to continue contributing to all the PostgreSQL projects I work on so I expect to dedicate as much time to pgAdmin development and the Windows PostgreSQL distribution as I've been able to do at Vale.

Anyway, enough rambling - if you want to know more about EnterpriseDB, checkout the website, or (for reasons that I still find somewhat baffling), the marketing guys decided to mention me in a press release.

Sunday, 9 July 2006

Thought for the night...

It seems I have been remise in writing up my experiences in Toronto as a number of the other hackers have been doing during the PostgreSQL 10th Anniversary Summit. So, to that end and in my current slightly drunken state I offer you this thought for the night that arose fromm a conversation with Jim Nasby, Denis Lussier, Simon Riggs, Magnus Hagander and Greg Stark:

What's the use-case for a Jim Nasby?

And though I'll probably think "what the hell did I write that for?" in the morning, I'll just hit 'Publish' and tootle off to bed...

Wednesday, 5 July 2006

pgAdmin gets plastic surgery

Well, given the complete lack of activity on planetpostgresql/dpage you'd be forgiven for assuming I was dead or had been kidnapped by the Lizard Alliance to be used as a crash test dummy, but no, I've just been lazy and haven't written anything recently.

So, to put that to rights, here's a pgAdmin update. For the last few days I've been working on cosmetic and usability issues in the user interface, and consequently, 1.6.0 (when released) will sport a fancy new docking user interface on the main windows, allowing you to arrange elements as you like, detach panes, move toolbars around and display or hide individual elements. There are also popup docking hints to make it easy to re-dock elements exactly where you want them...

Other recent improvements include a host of tweaks to the Query Tool including regexp search and replace, error word highlighting and brace matching, as well as enhancements elsewhere such as the ability to display and set boolean columns to NULL in the Data Editor, an XML/XHTML reporting engine with a host of schema and data reporting options and initial support for the PostgreSQL 8.2-dev.

Anyhoo, that's enough for now. I'm leaving for the PostgreSQL Anniversary Conference early tomorrow morning so need to go and pack...

Wednesday, 15 March 2006

Random Ramblings

Some random noise for the old blog...

First off, an article by Jason Gilmore discusses 5 outdated reasons why people don't choose PostgreSQL. pgAdmin gets a mention under the No professional development and administration tools section. The article was picked up and discussed in depth on Slashdot.

Second, (in a shameless plug) a small site I've been developing in spare five minute sessions for my wife Jo went live the other is powered by PostgreSQL 8.1 (of course), running with Apache and PHP on FreeBSD. The more interesting part of the work was interfacing the site with Paypal who provide some great resources for developers, including an extremely useful sandbox version of their site for developers to test and experiment with.

'Nothing spectacular' I hear some of you cry - well, perhaps not. Certainly technically there's nothing particularly difficult in the site code, but coming from a decidedly non-commercial work environment as I do it made a very refreshing and welcome change to do something completely different. Now if only I could get my head round Google Adwords...


Tuesday, 7 March 2006

pgAdmin III v1.4.2 Released

The pgAdmin Development Team are pleased to announce the release of version 1.4.2 of pgAdmin, the Open Source administration and development platform for PostgreSQL 7.3 and above. pgAdmin can be run on Linux, FreeBSD, Mac OSX, Solaris and Windows. For more information, please see the website at:

pgAdmin can be downloaded free of charge from:

This version is a bug fix release containing the following changes:

  • Fix a typo in the admin pack README [August Zajonc].
  • Fix serial column detection for 8.1 per Kris Jurka.
  • Mask the password when logging the connection string.
  • Properly escape single quotes in connection strings.
  • Re-arrange the Win32 dependencies so that iconv, libxml2 and wxwidgets are located in $PGADIR/../pgadmin3-deps/.
  • Properly enable the redo button in the Query Tool when appropriate, per PromoTrade.
  • Add missing files to the Unix tarball, per Andrus - xtra/wxbuild/*, src/utils/precomp.cpp, src/main/pgAdmin3.rc.
  • Read config files in the local encoding scheme.
  • Display the definition of set returning procedures correctly.
  • Fix drop procedure by including IN/OUT parameter flags in the name.
  • Fix role SQL - correctly define CREATEROLE/NOCREATEROLE per Andrus.
  • Honour the copy quoting setting properly in the SQL results pane.
  • Set the initial Unicode/Local charset options correctly in the Export dialogue.
  • Fix PK detection in EditGrid per Andrus Moor.
  • Fix Bitmap Index explain per Alexander Kirpa.
  • Use ELSIF not ELSEIF in pgagent.sql for compatibility with 7.x servers [Glen Sasek].
  • Exclude system schemas by name rather than OID, so that 'public' can be safely renamed.
  • fix slony node statistics.
  • Fix: Unsubscribe set on receiver.
  • Another wxComboBox(2.6.2) related fix.
Dave Page
pgAdmin Development Team

Tuesday, 28 February 2006

Speeding up the pgAdmin query tool

The pgAdmin query tool (see the bottom two screenshots here) has caused people to mistakenly think their PostgreSQL queries have been overly slow a number of times in the past. In actual fact, PostgreSQL is normally running just fine, as is the query. Some users have then pointed their finger at the network, questioning whether SSL might be to blame, or the TCP/IP stack or firewall on their client machine. Well, sometimes the network is the cause, but in a number of cases what the user is actually seeing is the machine's native listview control taking it's time leisurely rendering the results.

We've actually been aware of this for a long time, and have noted the problem a few times on various mailing lists. We've even gone some way to alleviating the problem by showing two query time - if you look in the bottom right hand corner of the query tool you'll see that timings look like:
51243ms + 65343ms.

This is telling you that the query was executed by PostgreSQL, and data transferred to the client in 51.243 seconds, and it was then rendered in the grid in 65.343 seconds.

Edward Di Geronimo Jr recently stepped up and started woring on improving this - specifically to reduce that second figure that tends to throw people, and to provide enhanced copy/paste capabilities. After just three revisions to his original patch it is now looking ready to apply and is showing rendering time consistently reduced by about 75%! In addition, you can now copy data from arbitrary cells, columns, rows or blocks of cells. Nice.

So how does it work? Well, the original code ran the query, and asynchronously populated a wxListView control in a background thread from the result set once the query completed.

The first change in the new code replaces the wxListView control with a wxGrid control. The wxGrid is known to be more light-weight than the wxListView, but is less feature-rich and refined. This meant that special handling was needed to work around quirks such as the control not properly receiving focus when column or row headers were clicked.

The other major change was to create a new, extremely lightweight class (sqlResultTable) to store the query result itself, rather than relying on the grid. The grid is then populated from the result table.

So, the upshot is that the query tool is much faster than it was, and more convenient to copy data from - look out for it in pgAdmin III v1.6!!

And before I forget, many thanks to Ed for his hard work.

Tuesday, 17 January 2006 gets a facelift

Well, I figured it was about time to update the old blog with a new entry for 2006 (Happy New Year btw). A short entry this time - I've just finished a major update of the pgAdmin website.

Nothing spectacular, just:

  • an update of the colour scheme to match the current version of pgAdmin
  • a re-write of the framework code and CSS
  • a whole heap of reorganising of content in order to split some of the excessively long pages down into multiple smaller ones.
  • the addition of the 1.4 and development documentation, updated hourly from SVN

Currently it's all in English, but in a week or so once all the typos have been spotted I'll pass it on to the translators.

Anyhoo, check it out at Enjoy.