<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>Magnus Hagander's PostgreSQL blog</title>
    <link>http://blog.hagander.net/</link>
    <description></description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.5.4 - http://www.s9y.org/</generator>
    
    

<item>
    <title>Call for Papers - PostgreSQL Conference Europe 2012</title>
    <link>http://blog.hagander.net/archives/205-Call-for-Papers-PostgreSQL-Conference-Europe-2012.html</link>
            <category>PostgreSQL</category>
    
    <comments>http://blog.hagander.net/archives/205-Call-for-Papers-PostgreSQL-Conference-Europe-2012.html#comments</comments>
    <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=205</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.hagander.net/rss.php?version=2.0&amp;type=comments&amp;cid=205</wfw:commentRss>
    

    <author>nospam@example.com (Magnus Hagander)</author>
    <content:encoded>
    &lt;p&gt;The &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/2012.pgconf.eu/callforpapers/&#039;]);&quot;  href=&quot;http://2012.pgconf.eu/callforpapers/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;call for papers&lt;/a&gt; for PostgreSQL Conference Europe 2012 in Prague, the Czech Republic has now been posted. As usual, we are looking for talks on all topics related to PostgreSQL. At this point, we are looking for submissions for regular conference sessions - we will post a separate call for papers for lightning talks at a later time.&lt;/p&gt;

&lt;p&gt;We are also still looking for sponsors - please see &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/2012.pgconf.eu/becomesponsor/&#039;]);&quot;  href=&quot;http://2012.pgconf.eu/becomesponsor/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;our website&lt;/a&gt; for details about the sponsor benefits and the costs.&lt;/p&gt;

&lt;p&gt;Follow the news feed on our site, or our &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/twitter.com/pgconfeu&#039;]);&quot;  href=&quot;https://twitter.com/pgconfeu&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Twitter feed&lt;/a&gt;, for news updates!&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 15 May 2012 19:49:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hagander.net/archives/205-guid.html</guid>
    <category>conferences</category>
<category>pgconfeu</category>
<category>pgconfeusite2012</category>
<category>postgresql</category>

</item>
<item>
    <title>PGConf.EU 2012 - announcement and call for sponsors</title>
    <link>http://blog.hagander.net/archives/204-PGConf.EU-2012-announcement-and-call-for-sponsors.html</link>
            <category>PostgreSQL</category>
    
    <comments>http://blog.hagander.net/archives/204-PGConf.EU-2012-announcement-and-call-for-sponsors.html#comments</comments>
    <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=204</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.hagander.net/rss.php?version=2.0&amp;type=comments&amp;cid=204</wfw:commentRss>
    

    <author>nospam@example.com (Magnus Hagander)</author>
    <content:encoded>
    &lt;p&gt;It&#039;s time to mark your calendars - &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/2012.pgconf.eu/&#039;]);&quot;  href=&quot;http://2012.pgconf.eu/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;PostgreSQL Conference Europe 2012&lt;/a&gt; will be held at the Corinthia Hotel in Prague, the Czech Republic, on October 23-26 2012. As previous years there will be one day of professional training (Tuesday 23rd) and then three days of regular talks.&lt;/p&gt;

&lt;p&gt;At this point, we are also opening our sponsorship program. We are looking for sponsors at all levels, from Bronze to Platinum. Please see &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/2012.pgconf.eu/becomesponsor/&#039;]);&quot;  href=&quot;http://2012.pgconf.eu/becomesponsor/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;our website&lt;/a&gt; for details about the sponsor benefits and the costs.&lt;/p&gt;

&lt;p&gt;Follow the news feed on our site, or our &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/twitter.com/pgconfeu&#039;]);&quot;  href=&quot;https://twitter.com/pgconfeu&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Twitter feed&lt;/a&gt;, for further information as we finalize details.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 27 Mar 2012 14:59:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hagander.net/archives/204-guid.html</guid>
    <category>conferences</category>
<category>pgconfeu</category>
<category>pgconfeusite</category>
<category>pgconfeusite2012</category>
<category>pgeu</category>
<category>postgresql</category>

</item>
<item>
    <title>Finding gaps in partitioned sequences</title>
    <link>http://blog.hagander.net/archives/203-Finding-gaps-in-partitioned-sequences.html</link>
            <category>PostgreSQL</category>
    
    <comments>http://blog.hagander.net/archives/203-Finding-gaps-in-partitioned-sequences.html#comments</comments>
    <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=203</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://blog.hagander.net/rss.php?version=2.0&amp;type=comments&amp;cid=203</wfw:commentRss>
    

    <author>nospam@example.com (Magnus Hagander)</author>
    <content:encoded>
    &lt;p&gt;There are an almost unlimited number of articles on the web about how to find gaps in sequences in SQL. And it doesn&#039;t have to be very hard. Doing it in a &quot;partitioned sequence&quot; makes it a bit harder, but still not very hard. But when I turned to a window aggregate to do that, I was immediately told &quot;hey, that&#039;s a good example of a window aggregate to solve your daily chores, you should blog about that&quot;. So here we go - yet another example of finding a gap in a sequence using SQL.&lt;/p&gt;

&lt;p&gt;I have a database that is very simply structured - it&#039;s got a primary key made out of &lt;i&gt;(groupid, year, month, seq)&lt;/i&gt;, all integers. On top of that it has a couple of largish text fields and an fti field for full text search. (Initiated people will know right away which database this is). The sequence in the seq column resets to zero for each combination of &lt;i&gt;(groupid, year, month)&lt;/i&gt;. And I wanted to find out where there were gaps in it, and how big they were, to debug the tool that wrote the data into the database. This is really easy with a window aggregate:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;&lt;div class=&quot;geshi&quot; style=&quot;text-align: left&quot;&gt;&lt;br /&gt;&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;SELECT&lt;/span&gt; * &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;FROM&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160;&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;SELECT&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; groupid,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; year,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; month,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; seq, &lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; seq-lag&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;seq,&lt;span style=&quot;color: #cc66cc;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; OVER &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;PARTITION &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;BY&lt;/span&gt; groupid, year, month &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;ORDER&lt;/span&gt; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;BY&lt;/span&gt; seq&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;AS&lt;/span&gt; gap &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;FROM&lt;/span&gt; mytable&lt;br /&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;AS&lt;/span&gt; t&lt;br /&gt;&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;WHERE&lt;/span&gt; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;NOT&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;t.gap=&lt;span style=&quot;color: #cc66cc;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;ORDER&lt;/span&gt; &lt;span style=&quot;color: #993333; font-weight: bold;&quot;&gt;BY&lt;/span&gt; groupid, year, month, seq&lt;br /&gt;&amp;#160;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;One advantage to using a window aggregate for this is that we actually get the whole row back, and not just the primary key - so it&#039;s easy enough to include all the data you need to figure something out.&lt;/p&gt;

&lt;p&gt;What about performance? I don&#039;t really have a big database to test this on, so I can&#039;t say for sure. It&#039;s going to be a sequential scan, since I look at the &lt;i&gt;whole&lt;/i&gt; table,and not just parts of it. It takes about 4 seconds to run over a table of about a million rows, 2.7Gb, on a modest VM with no actual I/O capacity to speak of and a very limited amount of memory, returning about 100 rows. It&#039;s certainly by far fast enough for me in this case.&lt;/p&gt;

&lt;p&gt;And as a bonus, it found me two bugs in the loading script and at least one bug in somebody elses code that I&#039;m now waiting on to get fixed...&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Fri, 27 Jan 2012 16:53:52 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hagander.net/archives/203-guid.html</guid>
    <category>postgresql</category>
<category>sql</category>
<category>window aggregates</category>

</item>
<item>
    <title>www.postgresql.org - brand new, yet old and familiar</title>
    <link>http://blog.hagander.net/archives/202-www.postgresql.org-brand-new,-yet-old-and-familiar.html</link>
            <category>PostgreSQL</category>
    
    <comments>http://blog.hagander.net/archives/202-www.postgresql.org-brand-new,-yet-old-and-familiar.html#comments</comments>
    <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=202</wfw:comment>

    <slash:comments>6</slash:comments>
    <wfw:commentRss>http://blog.hagander.net/rss.php?version=2.0&amp;type=comments&amp;cid=202</wfw:commentRss>
    

    <author>nospam@example.com (Magnus Hagander)</author>
    <content:encoded>
    &lt;p&gt;Most of the visitors to &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/www.postgresql.org/&#039;]);&quot;  href=&quot;http://www.postgresql.org/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;www.postgresql.org&lt;/a&gt; probably never noticed that a couple of weeks back, the entire site was replaced with a new one. In fact, we didn&#039;t just change the website - just days before, we made large changes to our ftp network as well (more about that in another post, from me or others). So in fact, we &lt;strong&gt;hope&lt;/strong&gt; that most people didn&#039;t notice. The changes were mainly a technical refresh, and there hasn&#039;t been much change to the contents at all yet. We did sneak in a few content changes as well, that have been requested for a while, so I&#039;m going to start with listing those:&lt;/p&gt;


&lt;ul&gt;
    &lt;li&gt;The &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/www.postgresql.org/docs/devel/&#039;]);&quot;  href=&quot;http://www.postgresql.org/docs/devel/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;developer version of the documentation&lt;/a&gt; (updated serveral times per day from the tip of the HEAD branch that will eventually become the next version of PostgreSQL) now live on the main website, and will use the same stylesheets to look a lot nicer than before.&lt;/li&gt;
    &lt;li&gt;Anybody who submits content to our site (news, events, professional services, products, etc) will notice there is now a new concept of an &lt;i&gt;Organisation&lt;/i&gt;. This means that it will finally be possible to have more than one person manage the submissions from a single company or group.&lt;/li&gt;
    &lt;li&gt;Again for those that submit content, it is now possible to view which of your submissions are still in the moderation queue, and it&#039;s also possible to edit something after it&#039;s been submitted. In fact, you can edit your items even after they&#039;ve been approved. Any such editing will be &lt;i&gt;post-moderated&lt;/i&gt;, and if this is abused that organization will be banned from post-moderation - but we don&#039;t expect that to ever be necessary.&lt;/li&gt;
    &lt;li&gt;And finally, for those that submit content again, we&#039;ve switched to markdown to format your submissions, instead of a very random subset of allowed HTML tags.&lt;/li&gt;
&lt;/ul&gt;

The rest of the changes are under the hood, and it&#039;s mostly done for two reasons:
&lt;ul&gt;
    &lt;li&gt;The technology powering the site was simply very old&lt;/li&gt;
    &lt;li&gt;The frameworks used were quite obscure, which severely limited the number of people who could (or wanted to) work with them&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hopefully these two changes will make it easier to contribute to the website, so if you&#039;re potentially interested in doing that, please read on!&lt;/p&gt;

 &lt;br /&gt;&lt;a href=&quot;http://blog.hagander.net/archives/202-www.postgresql.org-brand-new,-yet-old-and-familiar.html#extended&quot;&gt;Continue reading &quot;www.postgresql.org - brand new, yet old and familiar&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 21 Dec 2011 13:33:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hagander.net/archives/202-guid.html</guid>
    <category>django</category>
<category>intrastructure</category>
<category>pgweb</category>
<category>postgresql</category>
<category>python</category>
<category>varnish</category>

</item>
<item>
    <title>PGConf.EU 2011 - the speakers and the presentations</title>
    <link>http://blog.hagander.net/archives/201-PGConf.EU-2011-the-speakers-and-the-presentations.html</link>
            <category>PostgreSQL</category>
    
    <comments>http://blog.hagander.net/archives/201-PGConf.EU-2011-the-speakers-and-the-presentations.html#comments</comments>
    <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=201</wfw:comment>

    <slash:comments>4</slash:comments>
    <wfw:commentRss>http://blog.hagander.net/rss.php?version=2.0&amp;type=comments&amp;cid=201</wfw:commentRss>
    

    <author>nospam@example.com (Magnus Hagander)</author>
    <content:encoded>
    &lt;p&gt;This part of the feedback is almost turning into a repost year from year. But it&#039;s a good thing to be reposting if any, so I&#039;m doing it anyway. To start with, just take a look at these graphs:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://photos.smugmug.com/photos/i-Bs8mPP7/0/O/i-Bs8mPP7.png&quot; width=&quot;400&quot; height=&quot;200&quot; alt=&quot;i-Bs8mPP7.png&quot; /&gt; &lt;img src=&quot;http://photos.smugmug.com/photos/i-LjQPx85/0/O/i-LjQPx85.png&quot; width=&quot;400&quot; height=&quot;200&quot; alt=&quot;i-LjQPx85.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Those are pretty fantastic ratings. A full 84% rated the content quality as 4 or 5, and only 1% rated it as less than 3. That basically comes down to there being no talks of bad quality. This confirms the feeling that we had when we tried to pick out the talks for this year - the number of great submissions where just huge. We had to reject around half the talks submitted, and there were only a few of those that we rejected because we thought they weren&#039;t very good. Most were simply rejected because we didn&#039;t have the time and space to accept them all.&lt;/p&gt;

&lt;p&gt;The ratings people have given our speakers confirm what we have always thought to be one of the reasons people like the conference - and many other PostgreSQL conferences as well: you get to listen to and talk to the people who &lt;i&gt;really&lt;/i&gt; know what they are talking about. Often because they are the very people who wrote the software in question. A whole &lt;i&gt;96%&lt;/i&gt; of all the ratings gave our speakers a score of 4 or 5 for their knowledge of the topic. And &lt;i&gt;nobody&lt;/i&gt; scored lower than 3. These truly are the experts you get to meet!&lt;/p&gt;

&lt;p&gt;Most of our speakers also scored very high on the Speaker Quality metric. Our top speakers this year were:&lt;/p&gt;



&lt;table&gt;
    &lt;tr&gt;
        &lt;td&gt;&lt;strong&gt;Speaker&lt;/strong&gt;&lt;/td&gt;
        &lt;td&gt;&lt;strong&gt;Rating&lt;/strong&gt;&lt;/td&gt;
        &lt;td&gt;&lt;strong&gt;Vote count&lt;/strong&gt;&lt;/td&gt;
        &lt;td&gt;&lt;strong&gt;Standard deviation&lt;/strong&gt;&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Bruce Momjian&lt;/td&gt;
        &lt;td&gt;4.8&lt;/td&gt;
        &lt;td&gt;31&lt;/td&gt;
        &lt;td&gt;0.4&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Ram Mohan&lt;/td&gt;
        &lt;td&gt;4.7&lt;/td&gt;
        &lt;td&gt;36&lt;/td&gt;
        &lt;td&gt;0.5&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Selena Deckelmann&lt;/td&gt;
        &lt;td&gt;4.7&lt;/td&gt;
        &lt;td&gt;38&lt;/td&gt;
        &lt;td&gt;0.5&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Magnus Hagander&lt;/td&gt;
        &lt;td&gt;4.6&lt;/td&gt;
        &lt;td&gt;52&lt;/td&gt;
        &lt;td&gt;0.6&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Simon Riggs&lt;/td&gt;
        &lt;td&gt;4.6&lt;/td&gt;
        &lt;td&gt;43&lt;/td&gt;
        &lt;td&gt;0.6&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Stephen Frost&lt;/td&gt;
        &lt;td&gt;4.6&lt;/td&gt;
        &lt;td&gt;18&lt;/td&gt;
        &lt;td&gt;0.5&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Peter van Hardenberg&lt;/td&gt;
        &lt;td&gt;4.5&lt;/td&gt;
        &lt;td&gt;11&lt;/td&gt;
        &lt;td&gt;0.7&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Gavin M. Roy&lt;/td&gt;
        &lt;td&gt;4.5&lt;/td&gt;
        &lt;td&gt;10&lt;/td&gt;
        &lt;td&gt;0.5&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Greg Smith&lt;/td&gt;
        &lt;td&gt;4.5&lt;/td&gt;
        &lt;td&gt;68&lt;/td&gt;
        &lt;td&gt;0.7&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Harald Armin Massa&lt;/td&gt;
        &lt;td&gt;4.4&lt;/td&gt;
        &lt;td&gt;10&lt;/td&gt;
        &lt;td&gt;0.5&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Steve Singer&lt;/td&gt;
        &lt;td&gt;4.4&lt;/td&gt;
        &lt;td&gt;10&lt;/td&gt;
        &lt;td&gt;0.7&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Gianni Ciolli&lt;/td&gt;
        &lt;td&gt;4.4&lt;/td&gt;
        &lt;td&gt;32&lt;/td&gt;
        &lt;td&gt;0.8&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Dave Page&lt;/td&gt;
        &lt;td&gt;4.3&lt;/td&gt;
        &lt;td&gt;25&lt;/td&gt;
        &lt;td&gt;0.8&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Heikki Linnakangas&lt;/td&gt;
        &lt;td&gt;4.3&lt;/td&gt;
        &lt;td&gt;12&lt;/td&gt;
        &lt;td&gt;0.9&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Ed Boyajian&lt;/td&gt;
        &lt;td&gt;4.2&lt;/td&gt;
        &lt;td&gt;13&lt;/td&gt;
        &lt;td&gt;1.0&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Marc Balmer&lt;/td&gt;
        &lt;td&gt;4.1&lt;/td&gt;
        &lt;td&gt;12&lt;/td&gt;
        &lt;td&gt;0.7&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
        &lt;td&gt;Dimitri Fontaine&lt;/td&gt;
        &lt;td&gt;4&lt;/td&gt;
        &lt;td&gt;11&lt;/td&gt;
        &lt;td&gt;0.8&lt;/td&gt;
    &lt;/tr&gt;
&lt;/table&gt;

&lt;p&gt;This really is the reason why people come to the conference, and keep coming back the next year - our outstanding speakers! Thank you all for showing up this year to give your presentations, and we hope to see you again next year!&lt;/p&gt;

&lt;p&gt;That concludes the posts I&#039;m going to make about pgconf.eu feedback this year. Some of you have already asked about next year, and I&#039;m not going to post any information about the feedback we got there - yet. We are reviewing the feedback we received, and are soon going to start looking for a good venue for next year. We have made the mistake before of announcing a location before we had a venue secured, and we&#039;re not going to do that again. We are going to announce it as soon as we know, but that will not be until we have actually decided on an exact venue. But we are absolutely planning to do it again next year, and sometime around the same time of the year. Exactly where we don&#039;t know yet...&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 06 Nov 2011 16:36:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hagander.net/archives/201-guid.html</guid>
    <category>conferences</category>
<category>pgconfeu</category>
<category>pgconfeusite</category>
<category>pgeu</category>
<category>postgresql</category>

</item>
<item>
    <title>PGConf.EU 2011 - the feedback is in</title>
    <link>http://blog.hagander.net/archives/200-PGConf.EU-2011-the-feedback-is-in.html</link>
            <category>PostgreSQL</category>
    
    <comments>http://blog.hagander.net/archives/200-PGConf.EU-2011-the-feedback-is-in.html#comments</comments>
    <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=200</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://blog.hagander.net/rss.php?version=2.0&amp;type=comments&amp;cid=200</wfw:commentRss>
    

    <author>nospam@example.com (Magnus Hagander)</author>
    <content:encoded>
    &lt;p&gt;Almost exactly a week later than what we said, I have finally closed down the feedback system for &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/2011.pgconf.eu/&#039;]);&quot;  href=&quot;http://2011.pgconf.eu/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;PostgreSQL Conference Europe 2011&lt;/a&gt;. I think we all needed slightly more time than we expected to recover and catch up properly...&lt;/p&gt;

&lt;p&gt;The detailed feedback for each speaker will be sent out during the day today, unless we run into any unforeseen technical issues, and I will try to summarize the conference-wide feedback here. If any particular note that you posted is not referred here, don&#039;t worry - we read them all, but there are far too many of them to post here.&lt;/p&gt;

&lt;p&gt;Starting with the conference organization itself and it&#039;s venue, I&#039;m really happy to see that we have managed to deliver something that the majority of our attendees really like:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://photos.smugmug.com/photos/i-kpsz6c3/0/O/i-kpsz6c3.png&quot; width=&quot;400&quot; height=&quot;200&quot; alt=&quot;i-kpsz6c3.png&quot; /&gt; &lt;img src=&quot;http://photos.smugmug.com/photos/i-N5rCKq7/0/O/i-N5rCKq7.png&quot; width=&quot;400&quot; height=&quot;200&quot; alt=&quot;i-N5rCKq7.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Not a single vote less than 4, on a scale of 1-5, for the overall impression. And only one below 4 for the programme. I can only say a huge thanks to the big group of volunteers who ran this conference, and made it what it was. Clearly you did a good job!&lt;/p&gt;

 &lt;br /&gt;&lt;a href=&quot;http://blog.hagander.net/archives/200-PGConf.EU-2011-the-feedback-is-in.html#extended&quot;&gt;Continue reading &quot;PGConf.EU 2011 - the feedback is in&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Fri, 04 Nov 2011 09:53:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hagander.net/archives/200-guid.html</guid>
    <category>conferences</category>
<category>pgconfeu</category>
<category>pgconfeusite</category>
<category>pgeu</category>
<category>postgresql</category>

</item>
<item>
    <title>Stockholm PUG finally off the ground</title>
    <link>http://blog.hagander.net/archives/199-Stockholm-PUG-finally-off-the-ground.html</link>
            <category>PostgreSQL</category>
    
    <comments>http://blog.hagander.net/archives/199-Stockholm-PUG-finally-off-the-ground.html#comments</comments>
    <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=199</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.hagander.net/rss.php?version=2.0&amp;type=comments&amp;cid=199</wfw:commentRss>
    

    <author>nospam@example.com (Magnus Hagander)</author>
    <content:encoded>
    &lt;p&gt;Last night, we &lt;i&gt;finally&lt;/i&gt; got a PostgreSQL User Group in Stockholm started. We&#039;ve discussed this for &lt;i&gt;years&lt;/i&gt;, but never got around to making it actually happen. Well, with big thanks to Claes who took care of the main organization tasks, we finally did - and I&#039;ll happily declare it a big success. It was our first meeting, and we actually didn&#039;t promote it very well (so bad that at least one fairly well-connected PostgreSQL community guy didn&#039;t realize it was on until registration was already closed - I&#039;m sure others missed it too), and we still managed to get more than 30 people there! Awesome!&lt;/p&gt;

&lt;p&gt;Hopefully we can keep the numbers at this level. For now, we are planning to meet around once every three months or so, which means we&#039;ll be looking at the next meeting sometime in January. Exact date, and also location, yet to be decided upon.&lt;/p&gt;

&lt;p&gt;Claes is supposed to be setting us up with a website (we have plenty of domains already...) and an associated mailinglist, and I guess a registered IRC channel as well. Hopefully soon. But given that he set us up with a room, a projector, pizza and beer last night (thanks, btw, and thanks to Glue for picking up the bill), I think we can give him a couple of hours before we start complaining...&lt;/p&gt;

&lt;p&gt;So - see you at the next Stockholm PUG meeting!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://mha.smugmug.com/photos/i-D9twsjx/0/M/i-D9twsjx-M.jpg&quot; width=&quot;600&quot; height=&quot;450&quot; alt=&quot;i-D9twsjx-M.jpg&quot; /&gt;&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 05 Oct 2011 08:54:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hagander.net/archives/199-guid.html</guid>
    
</item>
<item>
    <title>pgconf.eu schedule &amp; keynote announced</title>
    <link>http://blog.hagander.net/archives/198-pgconf.eu-schedule-keynote-announced.html</link>
            <category>PostgreSQL</category>
    
    <comments>http://blog.hagander.net/archives/198-pgconf.eu-schedule-keynote-announced.html#comments</comments>
    <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=198</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.hagander.net/rss.php?version=2.0&amp;type=comments&amp;cid=198</wfw:commentRss>
    

    <author>nospam@example.com (Magnus Hagander)</author>
    <content:encoded>
    &lt;p&gt;A little bit later than we hoped, we have now finally published the &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/www.postgresql.eu/events/schedule/pgconfeu2011/&#039;]);&quot;  href=&quot;http://www.postgresql.eu/events/schedule/pgconfeu2011/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;schedule&lt;/a&gt; for pgconf.eu. Three days full of presentations to choose from - and of course also the always popular lightning talk sessions. The schedule listed now is what we consider the final version, but we obviously reserve the right to make last-minute modifications both to which talks are included and exactly when they are scheduled, if necessary.&lt;/p&gt;

&lt;strong&gt;Keynote speaker&lt;/strong&gt;&lt;p&gt;We are also happy to announce that the conference &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/www.postgresql.eu/events/schedule/pgconfeu2011/session/215-keynote-afilias-winning-bet-on-open-source/&#039;]);&quot;  href=&quot;http://www.postgresql.eu/events/schedule/pgconfeu2011/session/215-keynote-afilias-winning-bet-on-open-source/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;keynote&lt;/a&gt; will be presented by by Ram Mohan, CTO of Afilias, who will be talking about how Afailias has built their company on open source solutions, and how this has turned into a great success. Afilias as a company has been deeply involved with PostgreSQL for a long time, including employing former Core Team member Jan Wieck and leading the development of the Slony replication system.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 19 Sep 2011 16:57:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hagander.net/archives/198-guid.html</guid>
    <category>conferences</category>
<category>keynote</category>
<category>pgconfeu</category>
<category>pgconfeusite</category>
<category>postgresql</category>
<category>schedule</category>

</item>
<item>
    <title>pgconf.eu training announced, call for papers deadline extended</title>
    <link>http://blog.hagander.net/archives/197-pgconf.eu-training-announced,-call-for-papers-deadline-extended.html</link>
            <category>PostgreSQL</category>
    
    <comments>http://blog.hagander.net/archives/197-pgconf.eu-training-announced,-call-for-papers-deadline-extended.html#comments</comments>
    <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=197</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.hagander.net/rss.php?version=2.0&amp;type=comments&amp;cid=197</wfw:commentRss>
    

    <author>nospam@example.com (Magnus Hagander)</author>
    <content:encoded>
    &lt;p&gt;&lt;strong&gt;Training&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We are happy to announce that our training schedule is now available at &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/2011.pgconf.eu/training/&#039;]);&quot;  href=&quot;http://2011.pgconf.eu/training/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;http://2011.pgconf.eu/training/&lt;/a&gt;. These trainings are full or half day sessions on the day before the regular conference sessions, and come at an extra cost. The available trainings are:&lt;/p&gt;


&lt;ul&gt;
    &lt;li&gt;Performance From Start to Crash by Greg Smith, 2ndQuadrant&lt;/li&gt;
    &lt;li&gt;Mastering PostgreSQL Administration by Bruce Momjian, EnterpriseDB&lt;/li&gt;
    &lt;li&gt;Building business applications for Cloud with Servoy by Robert Ivens, ROCLASI&lt;/li&gt;
    &lt;li&gt;Slony, a still useful replication tool by Guillaume Lelarge, Dalibo&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Seats are limited at these trainings, so we advise you to book as soon as possible. Training is booked as additional options on the standard conference &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/2011.pgconf.eu/registration/&#039;]);&quot;  href=&quot;http://2011.pgconf.eu/registration/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;registration form&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Call for papers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Since we are still in vacation period for a lot of people, we have decided to extend the deadline for our call for papers. The new deadline for submitting talks is midnight, Sep 2nd.&lt;/p&gt;

&lt;p&gt;We will, however, start approving talks that have already been submitted as soon as possible, and announce them as soon as we have decided. That means that if you want to be sure that we will have time to review your talk, you should submit as soon as possible!&lt;/p&gt;

&lt;p&gt;Full call for paper details are available &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/2011.pgconf.eu/callforpapers/&#039;]);&quot;  href=&quot;http://2011.pgconf.eu/callforpapers/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;on the site&lt;/a&gt;.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Sun, 21 Aug 2011 20:45:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hagander.net/archives/197-guid.html</guid>
    <category>conferences</category>
<category>pgconfeu</category>
<category>pgconfeusite</category>
<category>pgeu</category>
<category>postgresql</category>

</item>
<item>
    <title>Get your talks in for pgconf.eu 2011</title>
    <link>http://blog.hagander.net/archives/196-Get-your-talks-in-for-pgconf.eu-2011.html</link>
            <category>PostgreSQL</category>
    
    <comments>http://blog.hagander.net/archives/196-Get-your-talks-in-for-pgconf.eu-2011.html#comments</comments>
    <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=196</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.hagander.net/rss.php?version=2.0&amp;type=comments&amp;cid=196</wfw:commentRss>
    

    <author>nospam@example.com (Magnus Hagander)</author>
    <content:encoded>
    &lt;p&gt;The call for papers for PGConf.EU 2011 in Amsterdam will close at the end of this week. Now is the time to get your talk submissions in!&lt;/p&gt;

&lt;p&gt;We are interested in all kinds of talks - from deep technical ones, to novice oriented advise and case studies of interesting things done with PostgreSQL. We expect a wide range of different skillsets amongst our visitors, so we want a good spread of the talk topics as well!&lt;/p&gt;

&lt;p&gt;Of course, all speakers get free entrance to the conference on all days (training sessions not included).&lt;/p&gt;

&lt;p&gt;If you have any questions for us, don&#039;t hesitate to &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/2011.pgconf.eu/contact&#039;]);&quot;  href=&quot;http://2011.pgconf.eu/contact&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;contact us&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So, there is nothing to wait for. Head over to the &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/2011.pgconf.eu/callforpapers/&#039;]);&quot;  href=&quot;http://2011.pgconf.eu/callforpapers/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;call for papers site&lt;/a&gt; and submit your ideas! And please help us spread the word to potential speakers in other communities as well, who may not have seen our posts yet!&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Tue, 16 Aug 2011 14:13:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hagander.net/archives/196-guid.html</guid>
    <category>conferences</category>
<category>pgconfeu</category>
<category>pgconfeusite</category>
<category>pgeu</category>
<category>postgresql</category>

</item>
<item>
    <title>PGConf.EU open for registration!</title>
    <link>http://blog.hagander.net/archives/195-PGConf.EU-open-for-registration!.html</link>
            <category>PostgreSQL</category>
    
    <comments>http://blog.hagander.net/archives/195-PGConf.EU-open-for-registration!.html#comments</comments>
    <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=195</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.hagander.net/rss.php?version=2.0&amp;type=comments&amp;cid=195</wfw:commentRss>
    

    <author>nospam@example.com (Magnus Hagander)</author>
    <content:encoded>
    &lt;p&gt;PostgreSQL Conference Europe is now accepting &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/2011.pgconf.eu/registration/&#039;]);&quot;  href=&quot;http://2011.pgconf.eu/registration/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;registrations&lt;/a&gt; for conference attendance.&lt;/p&gt;

&lt;p&gt;The Early Bird special price will be available until September 5th, but that&#039;s no reason not to get your registration in early! Should you for some reason want to register for just a part of the conference, single day rates are also available at this time.&lt;/p&gt;

&lt;p&gt;If you are planning to attend one of our training sessions, the schedule has not yet been published for that, and it is therefor not yet possible to register for trainings. However, do not worry: the early bird rate will be available for &lt;i&gt;all&lt;/i&gt; attendees who register for the trainings - all the way until right before the conference.&lt;/p&gt;

&lt;p&gt;And don&#039;t forget - the &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/2011.pgconf.eu/callforpapers&#039;]);&quot;  href=&quot;http://2011.pgconf.eu/callforpapers&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;call for papers&lt;/a&gt; is still open! If you have already submitted a talk, or are planning to submit one, we suggest you wait to register until you have received a confirmation on if the talk was accepted or not. The early bird rate will be available long enough for you to register after you have received this notification - and if your talk is accepted, attendance is of course free!&lt;/p&gt;

&lt;p&gt;As usual, if you have any questions, don&#039;t hesitate to &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/2011.pgconf.eu/contact/&#039;]);&quot;  href=&quot;http://2011.pgconf.eu/contact/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;contact us&lt;/a&gt;.&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Thu, 14 Jul 2011 21:23:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hagander.net/archives/195-guid.html</guid>
    <category>conferences</category>
<category>pgconfeu</category>
<category>pgconfeusite</category>
<category>postgresql</category>

</item>
<item>
    <title>Call for papers - PGConf.EU 2011</title>
    <link>http://blog.hagander.net/archives/194-Call-for-papers-PGConf.EU-2011.html</link>
            <category>PostgreSQL</category>
    
    <comments>http://blog.hagander.net/archives/194-Call-for-papers-PGConf.EU-2011.html#comments</comments>
    <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=194</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.hagander.net/rss.php?version=2.0&amp;type=comments&amp;cid=194</wfw:commentRss>
    

    <author>nospam@example.com (Magnus Hagander)</author>
    <content:encoded>
    &lt;p&gt;PostgreSQL Conference Europe 2011 will be held on Ocober 18-21 in the Casa 400 Hotel in Amsterdam, The Netherlands. It will cover topics for PostgreSQL users, developers and contributors, as well as decision and policy makers. For more information about the conference, please see the website at &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/2011.pgconf.eu/&#039;]);&quot;  href=&quot;http://2011.pgconf.eu/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;http://2011.pgconf.eu/&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;We are now accepting proposals for talks. Please note that we are looking for talks in English, Dutch, German and French.&lt;/p&gt;

&lt;p&gt;Each session will last 45 minutes, and may be on any topic related to PostgreSQL. Suggested topic areas include:&lt;/p&gt;


&lt;ul&gt;
    &lt;li&gt;Developing applications for PostgreSQL&lt;/li&gt;
    &lt;li&gt;Administering large scale PostgreSQL installations&lt;/li&gt;
    &lt;li&gt;Case studies and/or success stories of PostgreSQL deployments&lt;/li&gt;
    &lt;li&gt;PostgreSQL tools and utilities&lt;/li&gt;
    &lt;li&gt;PostgreSQL hacking&lt;/li&gt;
    &lt;li&gt;Community &amp;amp; user groups&lt;/li&gt;
    &lt;li&gt;Tuning the server&lt;/li&gt;
    &lt;li&gt;Migrating from other systems&lt;/li&gt;
    &lt;li&gt;Scaling/replication&lt;/li&gt;
    &lt;li&gt;Benchmarking &amp;amp; hardware&lt;/li&gt;
    &lt;li&gt;PostgreSQL related products&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Of course, we&#039;re happy to receive proposals for talks on other PostgreSQL related topics as well.&lt;/p&gt;

&lt;p&gt;We also have a limited number of longer, 90-minute, slots available. Please indicate clearly in your submission if you wish to make a 90-minute talk.&lt;/p&gt;

&lt;p&gt;Finally, there will be a session of five minute lightning talks. A separate call for proposals will be made for them further on.&lt;/p&gt;

&lt;p&gt;The submission deadline is August 21st, 2011. Selected speakers will be notified before Sep 5th, 2011.&lt;/p&gt;

&lt;p&gt;Please submit your proposals by going to &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/2011.pgconf.eu/callforpapers&#039;]);&quot;  href=&quot;http://2011.pgconf.eu/callforpapers&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;http://2011.pgconf.eu/callforpapers&lt;/a&gt; and following the instructions.&lt;/p&gt;

&lt;p&gt;If your proposal is in a non-english language, please include a single-sentence description of the presentation in English as well in the field for submission notes.&lt;/p&gt;

&lt;p&gt;The proposals will be considered by committee who will produce a schedule to be published nearer the conference date. If your proposal has been accepted, you will be informed by email within two weeks of the submission deadline.&lt;/p&gt;

&lt;p&gt;This call for papers is also available on the web at &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/2011.pgconf.eu/callforpapers&#039;]);&quot;  href=&quot;http://2011.pgconf.eu/callforpapers&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;http://2011.pgconf.eu/callforpapers&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We look forward to hearing from you, and seeing you in Amsterdam in October!&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 30 May 2011 07:49:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hagander.net/archives/194-guid.html</guid>
    <category>conferences</category>
<category>pgconfeu</category>
<category>pgconfeusite</category>
<category>postgresql</category>

</item>
<item>
    <title>Extensions in PostgreSQL 9.1 fixes another pet-peeve</title>
    <link>http://blog.hagander.net/archives/193-Extensions-in-PostgreSQL-9.1-fixes-another-pet-peeve.html</link>
            <category>PostgreSQL</category>
    
    <comments>http://blog.hagander.net/archives/193-Extensions-in-PostgreSQL-9.1-fixes-another-pet-peeve.html#comments</comments>
    <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=193</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://blog.hagander.net/rss.php?version=2.0&amp;type=comments&amp;cid=193</wfw:commentRss>
    

    <author>nospam@example.com (Magnus Hagander)</author>
    <content:encoded>
    &lt;p&gt;One thing I&#039;ve really disliked is the fact that contrib modules had installation scripts that enforced the schema to public for the installation. In my opinion, for no useful reason at all.&lt;/p&gt;

&lt;p&gt;For example, I often install the &lt;i&gt;pgcrypto&lt;/i&gt; contrib module. And I install this in the &lt;i&gt;pgcrypto&lt;/i&gt; schema, that I then either add to the &lt;i&gt;search_path&lt;/i&gt; variable or just explicitly use in my queries, with things like &lt;i&gt;pcrypto.crypt(&#039;foobar&#039;,&#039;barfoo&#039;)&lt;/i&gt;. For versions prior to 9.1, being able to do this required me to manually edit the installed pgcrypto.sql file, to remove the &lt;i&gt;SET search_path = public;&lt;/i&gt; command.&lt;/p&gt;

&lt;p&gt;Extensions in 9.1 makes this so much nicer. To get pgcrypto into it&#039;s own schema, I now just need to do:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;postgres=# CREATE SCHEMA pgcrypto;
CREATE SCHEMA
postgres=# CREATE EXTENSION pgcrypto SCHEMA pgcrypto;
CREATE EXTENSION&lt;/code&gt;&lt;/pre&gt;

If I happen to create it in public by mistake, I can even move it after the fact!
&lt;pre&gt;&lt;code&gt;postgres=# ALTER EXTENSION pgcrypto SET SCHEMA pgcrypto;
ALTER EXTENSION&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;You still need to create the schema manually - in theory we could auto-create that, but the work is still a lot easier than before. And fully supported!&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 16 May 2011 07:58:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hagander.net/archives/193-guid.html</guid>
    <category>9.1</category>
<category>extensions</category>
<category>pgcrypto</category>
<category>postgresql</category>

</item>
<item>
    <title>Remote log reading in PostgreSQL 9.1</title>
    <link>http://blog.hagander.net/archives/192-Remote-log-reading-in-PostgreSQL-9.1.html</link>
            <category>PostgreSQL</category>
    
    <comments>http://blog.hagander.net/archives/192-Remote-log-reading-in-PostgreSQL-9.1.html#comments</comments>
    <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=192</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://blog.hagander.net/rss.php?version=2.0&amp;type=comments&amp;cid=192</wfw:commentRss>
    

    <author>nospam@example.com (Magnus Hagander)</author>
    <content:encoded>
    &lt;p&gt;PostgreSQL 9.1 beta1 &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/www.postgresql.org/about/news.1313&#039;]);&quot;  href=&quot;http://www.postgresql.org/about/news.1313&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;now available&lt;/a&gt; - now is a great time to start testing it, and trying out all the great new features.&lt;/p&gt;

&lt;p&gt;There have always been a number of ways to read your PostgreSQL logs remotely, over a libpq connection. For example, you can use the &lt;i&gt;pg_read_file()&lt;/i&gt; function - which is what pgadmin does. PostgreSQL 9.1 adds a new and more convenient way (in some ways) to do this - using SQL/MED.&lt;/p&gt;

&lt;p&gt;PostgreSQL 9.1 comes with SQL standard SQL/MED functionality. The MED in is short for &quot;Managemend of External Data&quot;, and as the name sounds, it&#039;s about accessing data that&#039;s external to the PostgreSQL server. The SQL/MED functionality is not (yet) complete, but it&#039;s already very useful in it&#039;s current state.&lt;/p&gt;

&lt;p&gt;In SQL/MED, there is something called a &lt;i&gt;Foreign Data Wrapper&lt;/i&gt;, that can be compared to a driver. Using this &lt;i&gt;FDW&lt;/i&gt;, we can create one or more &lt;i&gt;Foreign Servers&lt;/i&gt;, which is a definition of how to connect to a specific instance of the service - if any. Finally, we can create one or more &lt;i&gt;Foreign Tables&lt;/i&gt; on each of the &lt;i&gt;Foreign Servers&lt;/i&gt;, giving us direct access to the remote data using SQL.&lt;/p&gt;

 &lt;br /&gt;&lt;a href=&quot;http://blog.hagander.net/archives/192-Remote-log-reading-in-PostgreSQL-9.1.html#extended&quot;&gt;Continue reading &quot;Remote log reading in PostgreSQL 9.1&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 02 May 2011 19:05:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hagander.net/archives/192-guid.html</guid>
    <category>9.1</category>
<category>extensions</category>
<category>fdw</category>
<category>logging</category>
<category>postgresql</category>

</item>
<item>
    <title>Joining the PostgreSQL Core Team</title>
    <link>http://blog.hagander.net/archives/191-Joining-the-PostgreSQL-Core-Team.html</link>
            <category>PostgreSQL</category>
    
    <comments>http://blog.hagander.net/archives/191-Joining-the-PostgreSQL-Core-Team.html#comments</comments>
    <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=191</wfw:comment>

    <slash:comments>7</slash:comments>
    <wfw:commentRss>http://blog.hagander.net/rss.php?version=2.0&amp;type=comments&amp;cid=191</wfw:commentRss>
    

    <author>nospam@example.com (Magnus Hagander)</author>
    <content:encoded>
    &lt;p&gt;As has just been announced &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/archives.postgresql.org/pgsql-hackers/2011-04/msg01643.php&#039;]);&quot;  href=&quot;http://archives.postgresql.org/pgsql-hackers/2011-04/msg01643.php&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;here&lt;/a&gt;, I was recently invited to join pgsql-core, and have accepted.&lt;/p&gt;

&lt;p&gt;I guess the guys &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/www.postgresql.org/community/contributors&#039;]);&quot;  href=&quot;http://www.postgresql.org/community/contributors&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;currently on it&lt;/a&gt; finally got tired of all my complaints, and figured out the way to make me stop was to suck me into the organization. The future will tell if their strategy will be successful or not...&lt;/p&gt;

&lt;p&gt;For those who don&#039;t know (this hopefully doesn&#039;t include my readers on &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/planet.postgresql.org/&#039;]);&quot;  href=&quot;http://planet.postgresql.org/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Planet PostgreSQL&lt;/a&gt;), pgsql-core is the &quot;steering committee&quot; for the PostgreSQL project. Exactly what they do seem to be somewhat up for debate both outside and inside of the group itself, but it at least has something to do with the leadership of the project...&lt;/p&gt;

&lt;p&gt;Anyway, I&#039;d like to thank the guys in the group for showing this trust in me, and shall do my best not to screw it up!&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Wed, 27 Apr 2011 19:02:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hagander.net/archives/191-guid.html</guid>
    <category>core</category>
<category>postgresql</category>

</item>

</channel>
</rss>
