<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="/andrew/templates/default/atom.css" type="text/css" ?>

<feed version="0.3" 
   xmlns="http://purl.org/atom/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/">
    <link href="http://people.planetpostgresql.org/andrew/rss.php?version=atom0.3" rel="service.feed" title="Andrew's PostgreSQL blog" type="application/x.atom+xml" />
    <link href="http://people.planetpostgresql.org/andrew/"                        rel="alternate"    title="Andrew's PostgreSQL blog" type="text/html" />
    <link href="http://people.planetpostgresql.org/andrew/rss.php?version=2.0"     rel="alternate"    title="Andrew's PostgreSQL blog" type="application/rss+xml" />
    <title mode="escaped" type="text/html">Andrew's PostgreSQL blog</title>
    <tagline mode="escaped" type="text/html">My little place on the web...</tagline>
    <id>http://people.planetpostgresql.org/andrew/</id>
    <modified>2010-08-23T21:06:42Z</modified>
    <generator url="http://www.s9y.org/" version="1.4.1">Serendipity 1.4.1 - http://www.s9y.org/</generator>
    <dc:language>en</dc:language>
    <info mode="xml" type="text/html">
        <div xmlns="http://www.w3.org/1999/xhtml">You are viewing an ATOM formatted XML site feed. Usually this file is inteded to be viewed in an aggregator or syndication software. If you want to know more about ATOM, please visist <a href="http://atomenabled.org/">Atomenabled.org</a></div>
    </info>

    <entry>
        <link href="http://people.planetpostgresql.org/andrew/index.php?/archives/101-Adding-enums.html" rel="alternate" title="Adding enums" type="text/html" />
        <author>
            <name>Andrew Dunstan</name>
                    </author>
    
        <issued>2010-08-23T21:06:42Z</issued>
        <created>2010-08-23T21:06:42Z</created>
        <modified>2010-08-23T21:06:42Z</modified>
        <wfw:comment>http://people.planetpostgresql.org/andrew/wfwcomment.php?cid=101</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://people.planetpostgresql.org/andrew/rss.php?version=atom0.3&amp;type=comments&amp;cid=101</wfw:commentRss>
    
        <id>http://people.planetpostgresql.org/andrew/index.php?/archives/101-guid.html</id>
        <title mode="escaped" type="text/html">Adding enums</title>
        <content type="application/xhtml+xml" xml:base="http://people.planetpostgresql.org/andrew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                While on a 15 hour plane trip from LA to Sydney the other day I broke the back of making enums extensible, thus proving that there is some good to be had from both long plane flights and tiny netbooks.<br />
<br />
I posted a work in progress patch on the -hackers list yesterday. In it current form, it will allow you to do these things:<br />
<ul><br />
<li>ALTER TYPE myenum ADD 'newlabel';</li><br />
<li>ALTER TYPE myenum ADD 'newlabel' BEFORE 'existinglabel';</li><br />
<li>ALTER TYPE myenum ADD 'newlabel' AFTER 'existinglabel';</li><br />
</ul><br />
The last one is not strictly necessary, and there is some opinion both for and against having it.<br />
<br />
If labels are added at the end of the list (the first form does this) then, unless there is Oid wraparound, the enum Oids are in sorted order, which makes sorting and comparison operations very fast, as now. Labels added earlier in the list will sort and compare correctly, but not quite as fast.<br />
<br />
Note that I have not provided for dropping existing labels, nor for changing the sort order of existing labels. The reason is that this would involve rewriting tables and indexes, where the current proposal will not require any such thing. 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://people.planetpostgresql.org/andrew/index.php?/archives/100-Is-Google-a-big-enough-Billy-Goat-Gruff.html" rel="alternate" title="Is Google a big enough Billy Goat Gruff?" type="text/html" />
        <author>
            <name>Andrew Dunstan</name>
                    </author>
    
        <issued>2010-08-14T13:40:08Z</issued>
        <created>2010-08-14T13:40:08Z</created>
        <modified>2010-08-17T20:51:03Z</modified>
        <wfw:comment>http://people.planetpostgresql.org/andrew/wfwcomment.php?cid=100</wfw:comment>
        <slash:comments>12</slash:comments>
        <wfw:commentRss>http://people.planetpostgresql.org/andrew/rss.php?version=atom0.3&amp;type=comments&amp;cid=100</wfw:commentRss>
    
        <id>http://people.planetpostgresql.org/andrew/index.php?/archives/100-guid.html</id>
        <title mode="escaped" type="text/html">Is Google a big enough Billy Goat Gruff?</title>
        <content type="application/xhtml+xml" xml:base="http://people.planetpostgresql.org/andrew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                So, now it looks like Oracle's <a href="http://arstechnica.com/tech-policy/news/2010/08/oracle-sues-google-over-use-of-java-in-android-sdk.ars">new business model</a> for actually making money out of their investment in Sun is to become a patent troll. They seem to be going out of their way to make themselves pariahs in the Open Source world, as hated as SCO. Personally, I was always sceptical of their ability or intention to act well. They are simply not an organization that is geared to operating in this milieu. And there are plenty of people who should be at least a bit scared by this development, as Steven J Vaughan-Nichols <a href="http://blogs.computerworld.com/16736/oracle_vs_google_over_java_in_android_is_only_the_start">points out</a>.<br />
<br />
I spent a year or two writing Java, and I get a bit impatient with people who like to rag on it. Their information is often out of date and ill-informed, in my experience. But anyone who now bases a major application, especially one which they sell, on Java would need to be very careful about how they proceed. And that involves a world of trouble and disputation. Surely it would be much simpler for any new project simply to say "OK, we'll use other technology, where there is less risk of running foul of patent lawsuits." That would be my reaction. <br />
<br />
Incidentally, this is similar to the reasoning that led me to get involved with Postgres years ago. The company I was working for looked at shipping MySQL as a reference database with their product, and we were not interested in paying for a commercial license. Some people said we could, some said we couldn't. Our take was that we didn't want the hassle. Unless it was beyond dispute, we'd look elsewhere, and the next place we looked, naturally, was Postgres. By the time we decided against using Postgres, because there was then no Windows port, it was too late - I was hooked <img src="http://people.planetpostgresql.org/andrew/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /> 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://people.planetpostgresql.org/andrew/index.php?/archives/99-BuildFarm-Client-release-4.1-Announcement.html" rel="alternate" title="BuildFarm Client release 4.1 Announcement" type="text/html" />
        <author>
            <name>Andrew Dunstan</name>
                    </author>
    
        <issued>2010-08-09T22:39:57Z</issued>
        <created>2010-08-09T22:39:57Z</created>
        <modified>2010-08-10T11:41:17Z</modified>
        <wfw:comment>http://people.planetpostgresql.org/andrew/wfwcomment.php?cid=99</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://people.planetpostgresql.org/andrew/rss.php?version=atom0.3&amp;type=comments&amp;cid=99</wfw:commentRss>
    
        <id>http://people.planetpostgresql.org/andrew/index.php?/archives/99-guid.html</id>
        <title mode="escaped" type="text/html">BuildFarm Client release 4.1 Announcement</title>
        <content type="application/xhtml+xml" xml:base="http://people.planetpostgresql.org/andrew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                There is a new release of the buildfarm client. There are no new features, but some cleanup and bug fixes.<br />
<br />
The code can be downloaded from <a href="http://pgfoundry.org/frs/download.php/2776/build-farm-4_1.tgz">pgFoundry</a><br />
<br />
Here are the release notes / change logs:<br />
<ul><li>Use git clean to remove build products left by vpath builds, following a suggestion from Robert Haas.</li><li>provide for "default" entry in force_every setting</li><li>Accomodate oddities in at least some versions of File::Copy</li><li>If the web transaction fails, put back the old timestamps so the next run works on the same basis</li><li>provide enough log to avoid server failure if we get an SCM error (bug found following report from Greg Sabino Mullane)</li><li>work with older versions of git (bug found following report from Greg Sabino Mullane)</li></ul><br />
 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://people.planetpostgresql.org/andrew/index.php?/archives/98-Planning-for-when-the-git-repo-goes-live.html" rel="alternate" title="Planning for when the git repo goes live" type="text/html" />
        <author>
            <name>Andrew Dunstan</name>
                    </author>
    
        <issued>2010-08-08T18:39:35Z</issued>
        <created>2010-08-08T18:39:35Z</created>
        <modified>2010-08-08T18:39:35Z</modified>
        <wfw:comment>http://people.planetpostgresql.org/andrew/wfwcomment.php?cid=98</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://people.planetpostgresql.org/andrew/rss.php?version=atom0.3&amp;type=comments&amp;cid=98</wfw:commentRss>
    
        <id>http://people.planetpostgresql.org/andrew/index.php?/archives/98-guid.html</id>
        <title mode="escaped" type="text/html">Planning for when the git repo goes live</title>
        <content type="application/xhtml+xml" xml:base="http://people.planetpostgresql.org/andrew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                The cutover is due to happen soon,<br />
<br />
Currently I have the following setup:<br />
<ul><br />
<li>On Fedora 6: a CVS mirror and a buildfarm animal, dungbeetle that uses it. This machine will retire some time in the next few months, and will probably be replaced by a machine running CentOS 6 when it is released.</li><br />
<li>On Fedora 11, a mirror of my git repo that reflects the CVS state on github, and a buildfarm member quoll, that uses it. This is also where the github repo gets built.</li><br />
<li>On Windows NT, another mirror of my github repo, and three buildfarm members, dawn_bat, red_bat and brown_bat, that use it</li><br />
</ul><br />
When CVS goes quiet, I will need to do the following:<br />
<ul><br />
<li>On all these machines, create mirrors of the new community repo, and cron jobs to keep them updated. The good news is that git is a whole lot more efficient about this than CVS is, so runs of "git fetch" won't place much stress on either then client or the server.</li> <br />
<li>Blow away all the per-branch repositories for all the buildfarm members, and change the config settings for 'scm', 'scmrepo' and 'scm_url'. The repo will point to the machine-local mirror. On dungbeetle, that means also removing the legacy 'cvsmethod' and 'cvsrepo' config settings.</li> <br />
</ul><br />
I'll probably be doing this while I'm a long way from home, but with luck all will run smoothly.<br />
<br />
When everything is settled down I will turn off my CVS mirrors. <br />
<br />
<br />
 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://people.planetpostgresql.org/andrew/index.php?/archives/97-Not-impressed.html" rel="alternate" title="Not impressed" type="text/html" />
        <author>
            <name>Andrew Dunstan</name>
                    </author>
    
        <issued>2010-08-02T23:20:37Z</issued>
        <created>2010-08-02T23:20:37Z</created>
        <modified>2010-08-08T14:13:14Z</modified>
        <wfw:comment>http://people.planetpostgresql.org/andrew/wfwcomment.php?cid=97</wfw:comment>
        <slash:comments>4</slash:comments>
        <wfw:commentRss>http://people.planetpostgresql.org/andrew/rss.php?version=atom0.3&amp;type=comments&amp;cid=97</wfw:commentRss>
    
        <id>http://people.planetpostgresql.org/andrew/index.php?/archives/97-guid.html</id>
        <title mode="escaped" type="text/html">Not impressed</title>
        <content type="application/xhtml+xml" xml:base="http://people.planetpostgresql.org/andrew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Last Friday the CEO of Continuent sent out an apology for spamming the PostgreSQL community. Leaving aside the fact that the apology was issued on the postgresql-www mailing list, which is hardly the right forum, his apology left quite a number of questions unanswered. Many of those questions were subsequently asked explicitly by <a href="http://archives.postgresql.org/pgsql-www/2010-07/msg00085.php">Robert Haas</a>. So far there has been no response.<br />
<br />
Also, it doesn't explain why I was spammed today, three days after the apology was issued.<br />
<br />
Right now I'm thinking of putting Continuent on my automatic delete list. <br />
<br />
I'm certainly not impressed by their technical expertise if they can't even get this right. 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://people.planetpostgresql.org/andrew/index.php?/archives/96-We-make-the-big-time!.html" rel="alternate" title="We make the big time!" type="text/html" />
        <author>
            <name>Andrew Dunstan</name>
                    </author>
    
        <issued>2010-07-29T17:16:02Z</issued>
        <created>2010-07-29T17:16:02Z</created>
        <modified>2010-07-30T15:27:21Z</modified>
        <wfw:comment>http://people.planetpostgresql.org/andrew/wfwcomment.php?cid=96</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://people.planetpostgresql.org/andrew/rss.php?version=atom0.3&amp;type=comments&amp;cid=96</wfw:commentRss>
    
        <id>http://people.planetpostgresql.org/andrew/index.php?/archives/96-guid.html</id>
        <title mode="escaped" type="text/html">We make the big time!</title>
        <content type="application/xhtml+xml" xml:base="http://people.planetpostgresql.org/andrew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Australian IT News has <a href="http://www.itnews.com.au/News/221051,oracle-shuts-down-open-source-test-servers.aspx">picked up</a> on my recent post about Oracle shutting down their buildfarm servers. It's good publicity for PostgreSQL but I doubt it will shame them into continuing to support us.<br />
<br />
Meanwhile, EnterpriseDB through Dave Page have added some more Solaris members. Thanks, guys. 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://people.planetpostgresql.org/andrew/index.php?/archives/95-Welcome-to-the-machine.html" rel="alternate" title="Welcome to the machine" type="text/html" />
        <author>
            <name>Andrew Dunstan</name>
                    </author>
    
        <issued>2010-07-28T12:36:55Z</issued>
        <created>2010-07-28T12:36:55Z</created>
        <modified>2010-07-28T23:21:58Z</modified>
        <wfw:comment>http://people.planetpostgresql.org/andrew/wfwcomment.php?cid=95</wfw:comment>
        <slash:comments>8</slash:comments>
        <wfw:commentRss>http://people.planetpostgresql.org/andrew/rss.php?version=atom0.3&amp;type=comments&amp;cid=95</wfw:commentRss>
    
        <id>http://people.planetpostgresql.org/andrew/index.php?/archives/95-guid.html</id>
        <title mode="escaped" type="text/html">Welcome to the machine</title>
        <content type="application/xhtml+xml" xml:base="http://people.planetpostgresql.org/andrew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                I don't really have a good title for this post, so I just thought I'd title it with one of my favourite Pink Floyd songs.<br />
<br />
A few years ago, the author of Rails somewhat famously <a href="http://web.archive.org/web/20060418215514/http://www.loudthinking.com/arc/000516.html">opined</a> thus:<br />
<blockquote>Active Record is opinionated software, just like the rest of Rails. This is a matter of opinion, not constraints. And the opinion goes as follows: I don't want my database to be clever! Keep those crayons firmly in place, please.<br />
<br />
Unlike Christopher, I consider stored procedures and constraints vile and reckless destroyers of coherence. No, Mr. Database, you can not have my business logic. Your procedural ambitions will bear no fruit and you'll have to pry that logic from my dead, cold object-oriented hands.</blockquote><br />
I was reminded for the umpteenth time yesterday just how really, really silly this is. The only part of it that is spot on is the first clause,  and I suspect that's because he didn't know that the actual meaning of the word <a href="http://www.merriam-webster.com/dictionary/opinionated">opinionated</a> is "unduly adhering to one's own opinion or to preconceived notions". Calling someone opinionated is not a compliment - it's an insult.<br />
<br />
Here's what happened. Like a great many times before, a client sent me some stuff that was running very slowly and asked me how to speed it up. It was a piece of client side code that made some calls to the database to retrieve data and perform some checks on it and report on those by stashing the exception cases in a table to be later reviewed by the Data Quality team. It's a classic piece of business logic, and according to the dictum above does not belong inside the database. I rewrote it as a PL/pgSQL stored procedure. I didn't change the logic in any significant way. I simple stopped all that data being shipped out to a client to perform checks on it. The result was a reduction in execution time from the client's reported 6 minutes to 3 seconds.<br />
<br />
This repeats a pattern I have seen hundreds or thousands of times. So here's my alternative dictum:<br />
<blockquote>Let the database be good at what it's good at, including smart processing of bulk data. If you're lucky enough to be using PostgreSQL, you can implement the business logic in your favourite OO language (e.g. Ruby). Avoid shipping data to an external client program just to process and ship stuff back to the database. Only fetch data from the database if you need it to display or send to another system.</blockquote>Or keep doing what you're doing, so people will continue to pay people like me to fix it <img src="http://people.planetpostgresql.org/andrew/templates/default/img/emoticons/wink.png" alt=";-)" style="display: inline; vertical-align: bottom;" class="emoticon" /> 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://people.planetpostgresql.org/andrew/index.php?/archives/94-Buildfarm-plans.html" rel="alternate" title="Buildfarm plans" type="text/html" />
        <author>
            <name>Andrew Dunstan</name>
                    </author>
    
        <issued>2010-07-24T17:02:02Z</issued>
        <created>2010-07-24T17:02:02Z</created>
        <modified>2010-07-24T17:02:02Z</modified>
        <wfw:comment>http://people.planetpostgresql.org/andrew/wfwcomment.php?cid=94</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://people.planetpostgresql.org/andrew/rss.php?version=atom0.3&amp;type=comments&amp;cid=94</wfw:commentRss>
    
        <id>http://people.planetpostgresql.org/andrew/index.php?/archives/94-guid.html</id>
        <title mode="escaped" type="text/html">Buildfarm plans</title>
        <content type="application/xhtml+xml" xml:base="http://people.planetpostgresql.org/andrew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                This weekend there will be a full pg_dump backup of the buildfarm database. After that I'm going to purge old log data (anything older than six months). Then we we're going to move it to PostgreSQL 8.4 as soon as possible - within a week I hope.<br />
<br />
After that I hope to be able to implement Full Text Search on the logs. <br />
<br />
The upgrade will involve some downtime, naturally. Buildfarm owners will be advised beforehand. But it shouldn't take too long to restore the 10Gb or less of data I am expecting.<br />
<br />
I'm also planning for migrating my buildfarm animals to the new git repo when it comes online. I'll actually be travelling at that time, so I hope I can get it done without too much difficulty remotely. The one animal I have left building from CVS I will point at the git-cvs mirror. The remainder I will point directly at the public git repo initially. Later on I'll set up a local clone of the public repo and have them all pull from that. I hope that we don't have too many buildfarm members go quiet when CVS gets frozen. 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://people.planetpostgresql.org/andrew/index.php?/archives/93-Something-new-every-day.html" rel="alternate" title="Something new every day" type="text/html" />
        <author>
            <name>Andrew Dunstan</name>
                    </author>
    
        <issued>2010-07-22T22:22:08Z</issued>
        <created>2010-07-22T22:22:08Z</created>
        <modified>2010-07-22T22:22:08Z</modified>
        <wfw:comment>http://people.planetpostgresql.org/andrew/wfwcomment.php?cid=93</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://people.planetpostgresql.org/andrew/rss.php?version=atom0.3&amp;type=comments&amp;cid=93</wfw:commentRss>
    
        <id>http://people.planetpostgresql.org/andrew/index.php?/archives/93-guid.html</id>
        <title mode="escaped" type="text/html">Something new every day</title>
        <content type="application/xhtml+xml" xml:base="http://people.planetpostgresql.org/andrew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                At least one of my lessons from today is that the <a href="http://jdbc.postgresql.org/">PostgreSQL JDBC driver </a> now has <a href="http://jdbc.postgresql.org/documentation/publicapi/index.html?org/postgresql/copy/package-summary.html">support for COPY</a>. I wonder how I missed that. 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://people.planetpostgresql.org/andrew/index.php?/archives/92-Nice-guys..html" rel="alternate" title="Nice guys." type="text/html" />
        <author>
            <name>Andrew Dunstan</name>
                    </author>
    
        <issued>2010-07-19T23:05:11Z</issued>
        <created>2010-07-19T23:05:11Z</created>
        <modified>2010-07-20T00:07:03Z</modified>
        <wfw:comment>http://people.planetpostgresql.org/andrew/wfwcomment.php?cid=92</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://people.planetpostgresql.org/andrew/rss.php?version=atom0.3&amp;type=comments&amp;cid=92</wfw:commentRss>
    
        <id>http://people.planetpostgresql.org/andrew/index.php?/archives/92-guid.html</id>
        <title mode="escaped" type="text/html">Nice guys.</title>
        <content type="application/xhtml+xml" xml:base="http://people.planetpostgresql.org/andrew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Three weeks ago, Oracle/Sun turned off five of the seven buildfarm members they had been running. Two weeks ago they turned off the other two. So they really do know how to play nicely in the open source community.<br />
<br />
Luckily, there are other people who care about supporting PostgreSQL on Solaris / SPARC, and I'm happy that today we've registered two new buildfarm members for this platform. Thanks to Dave Page. 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://people.planetpostgresql.org/andrew/index.php?/archives/91-Branching-early,-a-good-move..html" rel="alternate" title="Branching early, a good move." type="text/html" />
        <author>
            <name>Andrew Dunstan</name>
                    </author>
    
        <issued>2010-07-15T15:33:34Z</issued>
        <created>2010-07-15T15:33:34Z</created>
        <modified>2010-07-15T22:03:14Z</modified>
        <wfw:comment>http://people.planetpostgresql.org/andrew/wfwcomment.php?cid=91</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://people.planetpostgresql.org/andrew/rss.php?version=atom0.3&amp;type=comments&amp;cid=91</wfw:commentRss>
    
        <id>http://people.planetpostgresql.org/andrew/index.php?/archives/91-guid.html</id>
        <title mode="escaped" type="text/html">Branching early, a good move.</title>
        <content type="application/xhtml+xml" xml:base="http://people.planetpostgresql.org/andrew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Some years ago I proposed that we should branch the source code tree much earlier than we have been doing. I didn't get much support at that time, but this year it was proposed again and we have in fact now done it, if not as early as I'd like, at least earlier than we have been in recent release cycles. <br />
<br />
Apart from anything else that means buildfarm owners need to add REL9_0_STABLE to the list of branches they are now building. A few people have done that, but we need to add to the list. I have changed two of my regular buildfarm members, and will get the rest done today. It's important to get this coverage as quickly as possible as we run up to the release date for 9.0. 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://people.planetpostgresql.org/andrew/index.php?/archives/90-Vale-Clarke-Gerber.html" rel="alternate" title="Vale Clarke Gerber" type="text/html" />
        <author>
            <name>Andrew Dunstan</name>
                    </author>
    
        <issued>2010-07-11T13:20:43Z</issued>
        <created>2010-07-11T13:20:43Z</created>
        <modified>2010-07-11T13:20:43Z</modified>
        <wfw:comment>http://people.planetpostgresql.org/andrew/wfwcomment.php?cid=90</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://people.planetpostgresql.org/andrew/rss.php?version=atom0.3&amp;type=comments&amp;cid=90</wfw:commentRss>
    
        <id>http://people.planetpostgresql.org/andrew/index.php?/archives/90-guid.html</id>
        <title mode="escaped" type="text/html">Vale Clarke Gerber</title>
        <content type="application/xhtml+xml" xml:base="http://people.planetpostgresql.org/andrew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                A couple of weeks ago, my old friend went into a supermarket in suburban Sydney, felt unwell, asked for an ambulance to be called, collapsed and died. He was a very sweet man, with a wicked sense of humor. He was a first class musician, with a wonderful voice, and also an excellent technologist - quite a renaissance man.<br />
<br />
He was also one of my earliest contacts with the world of computing. I remember him taking me into the data centre of the Sydney Stock Exchange where he did some contract work in the middle 1970s, and explaining to me some of the physics of things such as fast tape drives and punched cards that I could see being used. It was to be another ten years or so before I got seriously involved with computing, but perhaps Clarke whetted my appetite a little.<br />
<br />
Anyway, the world is a poorer and sadder place for his passing. 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://people.planetpostgresql.org/andrew/index.php?/archives/89-Another-blow-for-innovation.html" rel="alternate" title="Another blow for innovation" type="text/html" />
        <author>
            <name>Andrew Dunstan</name>
                    </author>
    
        <issued>2010-06-24T02:52:11Z</issued>
        <created>2010-06-24T02:52:11Z</created>
        <modified>2010-06-24T13:51:53Z</modified>
        <wfw:comment>http://people.planetpostgresql.org/andrew/wfwcomment.php?cid=89</wfw:comment>
        <slash:comments>3</slash:comments>
        <wfw:commentRss>http://people.planetpostgresql.org/andrew/rss.php?version=atom0.3&amp;type=comments&amp;cid=89</wfw:commentRss>
    
        <id>http://people.planetpostgresql.org/andrew/index.php?/archives/89-guid.html</id>
        <title mode="escaped" type="text/html">Another blow for innovation</title>
        <content type="application/xhtml+xml" xml:base="http://people.planetpostgresql.org/andrew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                So the company that's all about "freedom to innovate" has a version of their flagship product called "Windows 7 Starter Edition" that is so restricted that you can't even change the desktop background with it.  It's being sold on huge numbers of netbooks (see BestBuy's site, where they all seem to come with it.) For a version that's less braindead, you can pay another $70 or $100 on top of the $300 or so you paid for your netbook. Nice, eh? Members of my family, who mostly use nothing but Microsoft Operating Systems, and smile tolerantly at my use of Linux, are absolutely disgusted. Luckily for me, my netbook runs Linux (and because it doesn't have the usual restrictions Microsoft imposes on manufacturers, it has 2Gb of RAM rather than 1Gb, so I win both ways.) 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://people.planetpostgresql.org/andrew/index.php?/archives/88-Enums-needing-a-bit-of-love.html" rel="alternate" title="Enums needing a bit of love" type="text/html" />
        <author>
            <name>Andrew Dunstan</name>
                    </author>
    
        <issued>2010-06-22T14:45:05Z</issued>
        <created>2010-06-22T14:45:05Z</created>
        <modified>2010-06-26T23:26:55Z</modified>
        <wfw:comment>http://people.planetpostgresql.org/andrew/wfwcomment.php?cid=88</wfw:comment>
        <slash:comments>15</slash:comments>
        <wfw:commentRss>http://people.planetpostgresql.org/andrew/rss.php?version=atom0.3&amp;type=comments&amp;cid=88</wfw:commentRss>
    
        <id>http://people.planetpostgresql.org/andrew/index.php?/archives/88-guid.html</id>
        <title mode="escaped" type="text/html">Enums needing a bit of love</title>
        <content type="application/xhtml+xml" xml:base="http://people.planetpostgresql.org/andrew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                Some people don't seem to get enumeration types. They think of them as C programmers tend to - as symbolic names for integer values.<br />
<br />
But quiche eaters like me have quite a different point of view. Languages like Ada have had first class enumeration types for a long time (Ada is nearly 30 years old now). PostgreSQL's enum types are more of this kind, an ordered set of labels. Some people naïvely expect that underneath they will be stored as their ordinal position in the label set. In fact, for a technical reason, they are not. Rather, they are stored as globally (within the database) unique Oids. This is a bit counter-intuitive to some people, but really, it's just an implementation detail.<br />
<br />
The biggest thing that bugs people about PostgreSQL's enums is that you can't extend them, i.e. you can't add more labels to the list. There is a workaround involving creating a new type, but it involves rewriting the tables that use them, which is unpleasant. Recently I have given some thought to that. I came up with scheme for a new enum type that would have been extensible. But as often happens, Tom Lane came up with a better idea. I've been working on fleshing that out, especially testing the possible performance impact, and I hope we can have something in 9.1. Being able to add labels to an enum set without table rewriting would make them much more usable. 
            </div>
        </content>

        
    </entry>
    <entry>
        <link href="http://people.planetpostgresql.org/andrew/index.php?/archives/87-Field-Notes.html" rel="alternate" title="Field Notes" type="text/html" />
        <author>
            <name>Andrew Dunstan</name>
                    </author>
    
        <issued>2010-06-13T19:55:04Z</issued>
        <created>2010-06-13T19:55:04Z</created>
        <modified>2010-06-14T14:04:01Z</modified>
        <wfw:comment>http://people.planetpostgresql.org/andrew/wfwcomment.php?cid=87</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://people.planetpostgresql.org/andrew/rss.php?version=atom0.3&amp;type=comments&amp;cid=87</wfw:commentRss>
    
        <id>http://people.planetpostgresql.org/andrew/index.php?/archives/87-guid.html</id>
        <title mode="escaped" type="text/html">Field Notes</title>
        <content type="application/xhtml+xml" xml:base="http://people.planetpostgresql.org/andrew/">
            <div xmlns="http://www.w3.org/1999/xhtml">
                D.Richard Hipp is the creator of <a href="http://www.sqlite.org">SQLite</a>. I met him at the speakers' dinner at SELinuxfest, attended his session on Saturday, and had a couple of conversations with him as well. He has a very friendly attitude to Postgres. He told me that whenever people ask him why he doesn't put more server class features into his product, he tells them that creating such a product has already been done, and it's called Postgres. In fact, he originally worked from Postgres documentation when he was creating SQLite.<br />
<br />
Another thing he told me is that the large test suite he uses to test a number of databases besides his own crashes or gives incorrect results on every other database but one: Postgres.<br />
<br />
SQLite is what I advise people to use when they want a simple embedded database. It also works well in my experience for small web sites. And its 'zero admin' nature makes it a good initial prototyping tool, too. I don't see it competing in the same space as Postgres, which has a very much richer set of features, scales better, and can handle much larger volumes of data. So to me we are not really competitors - we are more complementary than competing. I recently set up a very low volume web site for a fami;y member's business. SQLite worked well with the web framework software I was using and I was quite happy to use it.<br />
<br />
Richard's talk was largely about the "new generation" databases. He doesn't like the term "NoSQL" much. He proposes instead that we call them "Postmodern Databases", in part because they have no notion of objective truth <img src="http://people.planetpostgresql.org/andrew/templates/default/img/emoticons/wink.png" alt=";-)" style="display: inline; vertical-align: bottom;" class="emoticon" /><br />
<br />
Baron Schwartz of <a href="http://www.percona.com">Percona</a> had a somewhat different perspective, but many of his conclusions seemed to tend in the same direction. People should not lightly abandon the single server model of processing, he advised, and I think he's right. <br />
<br />
I shuddered rather at Baron's description of MySQL's replication facilities, especially the lack of conflict detection and resolution. It reminded me a bit of <a href="http://www.esquire.com/features/ESQ1202-DEC_SEDARIS">David Sedaris' attitude to European style Christmases</a>: "It's nothing I'd want for myself."<br />
<br />
At the beginning of his session, he asked me if my presence indicated I was about to switch camps. I told him no, I was spying out the opposition <img src="http://people.planetpostgresql.org/andrew/templates/default/img/emoticons/smile.png" alt=":-)" style="display: inline; vertical-align: bottom;" class="emoticon" /> Of course, we are all friendly, and not at daggers drawn.<br />
 
            </div>
        </content>

        
    </entry>
</feed>