<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3645070705954691807</id><updated>2011-12-21T17:45:53.788Z</updated><category term='postgresql pgwest'/><category term='pgwest'/><category term='postgresql'/><category term='slony'/><category term='postgresql mysql sql/med'/><category term='conference'/><category term='stackbuilder'/><category term='pgeu'/><category term='enterprisedb'/><category term='pgday'/><category term='pgcon'/><category term='pgadmin'/><title type='text'>Dave's Postgres Blog</title><subtitle type='html'>Postgres related musings and ramblings</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dave Page</name><uri>http://www.blogger.com/profile/10523190286514017933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-H8r0wk4J3J0/Tsy2PL9ILuI/AAAAAAAAACc/1kgZNg5IljU/s220/reading-phone.jpeg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>76</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-8130007506571922626</id><published>2011-12-21T15:01:00.002Z</published><updated>2011-12-21T15:04:58.448Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Updated PostgreSQL Download Infrastructure</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Back at the tail end of November, the PostgreSQL sysadmin/web team &lt;a href="http://blog.hagander.net/archives/202-www.postgresql.org-brand-new,-yet-old-and-familiar.html"&gt;successfully migrated&lt;/a&gt; the PostgreSQL website to a &lt;a href="http://www.postgresql.org/about/news/1365/"&gt;new platform&lt;/a&gt;, based on PostgreSQL, Django, Lighttpd, and Varnish, to replace the old somewhat complex and messy PHP platform used in the past. Functionally and visually the website is almost identical to what it was, though the behind-the-scenes management interface is now vastly improved, as is the "Your Account" section which now offers users much more control over their submissions like news and events etc.&lt;br /&gt;&lt;br /&gt;One other change that went largely unnoticed however was in the downloads section of the website, specifically the &lt;a href="http://www.postgresql.org/ftp/"&gt;FTP area&lt;/a&gt;. This is a web interface over the content on the PostgreSQL FTP site, ftp.postgresql.org, that gives users a nice way to browse the files and directories on the site. On the old website, when the user clicked to download a file they would then be taken to a page of flags where they could select a mirror site to download the file from. The mirrors were all third party servers over which we had no control, aside from an automated system to ensure we only listed those which had content which was no more than 48 hours out of date. This arrangement made sense years ago when bandwidth was more precious, however with the bandwidth available to us these days it's really just clunky and inconvenient for users to have to choose one of 75 flags to reach a server that may not be entirely up to date.&lt;br /&gt;&lt;br /&gt;To resolve this, as the new website infrastructure went live we also pushed a new download infrastructure into production. What you'll see now is direct links to files on download servers we run ourselves, from the website. This gives us a number of advantages:&lt;br /&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;The user has a much slicker experience when downloading, both in terms of the workflow, and often the speed of downloads (because some of the old mirrors were much faster than others).&lt;/li&gt;&lt;li&gt;We can push out files to the download servers in minutes, rather than days.&lt;/li&gt;&lt;li&gt;We can collect meaningful statistics to help us understand what users are downloading.&lt;/li&gt;&lt;li&gt;We can automatically (and invisibly) disable download servers in the event of problems, within minutes.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;So what does this mean to the end user? Well, for a user coming from the website downloads take fewer clicks and avoid the "flags" page which could be daunting and potentially confusing. For those using the FTP site directly, there are a number of changes:&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;The site can be accessed at &lt;a href="ftp://ftp.postgresql.org/"&gt;ftp://ftp.postgresql.org/&lt;/a&gt;, rather than using one of the individual mirror hostnames we used in the past.&lt;/li&gt;&lt;li&gt;Because there are no third party mirrors, there are no inconsistent paths to the content (one mirror in the past may have had content under /pub/mirrors/postgresql/ whilst another may have used /u/postgres/).&lt;/li&gt;&lt;li&gt;We can now offer downloads over HTTP using the same paths as FTP - you can use &lt;a href="http://ftp.postgresql.org/pub/..."&gt;http://ftp.postgresql.org/pub/...&lt;/a&gt; or &lt;a href="ftp://ftp.postgresql.org/pub/..."&gt;ftp://ftp.postgresql.org/pub/...&lt;/a&gt;&lt;/li&gt;&lt;li&gt;We've also opened up RSYNC access to all users, where previously only registered mirror sites could rsync the downloads from us: &lt;a href="rsync://ftp.postgresql.org::pgsql-ftp"&gt;rsync://ftp.postgresql.org::pgsql-ftp&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Because there are lots of links to files on the old mirror network on the web, we've left the old mirror hostnames in place for the time being (though they are no longer being monitored), however they will be phased out over time.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Happy downloading!&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-8130007506571922626?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/8130007506571922626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2011/12/updated-postgresql-download.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/8130007506571922626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/8130007506571922626'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2011/12/updated-postgresql-download.html' title='Updated PostgreSQL Download Infrastructure'/><author><name>Dave Page</name><uri>http://www.blogger.com/profile/10523190286514017933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-H8r0wk4J3J0/Tsy2PL9ILuI/AAAAAAAAACc/1kgZNg5IljU/s220/reading-phone.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-2495052962819563287</id><published>2011-10-11T15:38:00.000+01:00</published><updated>2011-10-11T15:39:09.853+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>To upgrade or not to upgrade? That is the question.</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;On a fairly regular basis the Postgres community hear from users who are complaining of bugs in old versions of Postgres - they'll post a bug report or a request for help on one of the mailing lists saying something along the lines of having run into an issue with PostgreSQL 8.4.2 for example, and immediately be met with suggestions to upgrade to the latest version because there have been 37 bug fixes and 5 security issues resolved since 8.4.2 was released.&lt;br /&gt;&lt;br /&gt;Generally this happens with one of two types of users. There are those that just don't bother to upgrade (who we can do little about), and those that don't upgrade because they are concerned that changes to PostgreSQL will break their application. This latter class of user is sometimes also restricted by what they can do by corporate policies in their workplace.&lt;br /&gt;&lt;br /&gt;The Postgres developers are mindful of this issue and have practices in place to allow users to safely upgrade without significant risk of behavioural changes breaking their applications. The practice is really quite simple; minor upgrades of PostgreSQL &lt;b&gt;never&lt;/b&gt;&amp;nbsp;include new features.&lt;br /&gt;&lt;br /&gt;What does this mean in practice? Well, PostgreSQL version numbers are in 3 parts, X.Y.Z (some packages such as the EnterpriseDB installers also add a build suffix):&lt;br /&gt;&lt;br /&gt;&lt;b&gt;X.Y&lt;/b&gt;: This is the &lt;b&gt;major&lt;/b&gt;&amp;nbsp;version number of the server, for example, 8.4, 9.0 or 9.1. New major versions may include new functionality, require upgrades to the database files on disk and generally require &lt;b&gt;thorough&lt;/b&gt; testing of applications prior to deployment.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Z&lt;/b&gt;: This is the &lt;b&gt;minor&lt;/b&gt;&amp;nbsp;version number. This number is increased for bug fixes releases, also known as "point releases". These releases never include new features; only carefully applied bug fixes. Point releases are fully compatible with previous point releases of the same major version and should require minimal testing prior to deployment on existing installations.&lt;br /&gt;&lt;br /&gt;Returning to our opening example, the user in this case is not being told to upgrade to 9.1.1 - the latest and greatest release at the time of writing, complete with a myriad of new features and changes from 8.4.2 - but to 8.4.9, the latest point release in the 8.4 series, which is functionally identical to 8.4.2. This numbering scheme and the processes behind it are specifically designed to allow users to safely and easily upgrade their database servers to minimise the number of known bugs in the software; in fact the &lt;b&gt;PostgreSQL developers consider not upgrading&amp;nbsp;&lt;/b&gt;&lt;b&gt;to the latest point release&amp;nbsp;&lt;/b&gt;&lt;b&gt;to be riskier than upgrading&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;So next time you're "certifying" your application with PostgreSQL, aim to certify it with a specific major version of the server, and avoid getting into a situation where you prevent yourself from updating to the latest point release as doing so can cause more problems than it can solve, and if you're a sysadmin or DBA rest assured that point releases won't introduce functionality changes and should be welcomed and installed as soon as possible!&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-2495052962819563287?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/2495052962819563287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2011/10/to-upgrade-or-not-to-upgrade-that-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2495052962819563287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2495052962819563287'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2011/10/to-upgrade-or-not-to-upgrade-that-is.html' title='To upgrade or not to upgrade? That is the question.'/><author><name>Dave Page</name><uri>http://www.blogger.com/profile/10523190286514017933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-H8r0wk4J3J0/Tsy2PL9ILuI/AAAAAAAAACc/1kgZNg5IljU/s220/reading-phone.jpeg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-3226229697278537879</id><published>2011-10-05T17:31:00.002+01:00</published><updated>2011-10-05T17:36:40.495+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stackbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='slony'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>StackBuilder Package Updates</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;If you've ever used one of the PostgreSQL installers for v8.2 or above, either the old Windows MSI installer or the newer "one click" installers that also support Linux and Mac, you'll probably have come across StackBuilder. For those that haven't or those that never found the time, StackBuilder was introduced with the PostgreSQL 8.2 installer to allow us to distribute different components of PostgreSQL independently of the server itself. Originally in 8.0/8.1, the installer included lots of additional products, such as the ODBC, JDBC, OLEDB and .NET drivers, Slony and PostGIS. &amp;nbsp;As you can imagine, this proved near impossible to maintain as we needed to try to coordinate the release of products from multiple independently run projects.&lt;br /&gt;&lt;br /&gt;StackBuilder was the solution to this. The installers were cut down to essentially include just the PostgreSQL server, pgAdmin and StackBuilder, which allowed us to provide all the other components on independent release schedules. It also gave us a vehicle to encourage adoption of PostgreSQL by other Open Source projects, by including packages for them as well, so with a few mouse clicks a user could be up and running with a "stack" like Drupal, Apache, PHP and PostgreSQL on their OS of choice. We made a conscious decision to include software other than well known Open Source products in the StackBuilder catalog as well, with the aim of giving the user as much choice of product to use with PostgreSQL as possible - as a result we have products in the catalog from multiple vendors and projects, as well as the "PostgreSQL family" projects. If you're interested in having a PostgreSQL related product included in the catalog, please contact me to discuss how we can make that happen.&lt;br /&gt;&lt;br /&gt;So, with the refresher course out of the way, todays blog post is prompted by the latest round of updates that I've been adding to the catalog - we've got 42 updates to the Open Source packages, as well as 18 new packages, including for the first time, pgBouncer, pgMemcache and Drupal 7.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Updates:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Apache/PHP 2.2.20-5.3.8: Linux32, Linux64, Mac, Win32&lt;/li&gt;&lt;li&gt;mediaWiki 1.17.0: Linux32, Linux64, Mac, Win32&lt;/li&gt;&lt;li&gt;pgJDBC 9.0-801: Linux32, Linux64, Mac, Win32&lt;/li&gt;&lt;li&gt;phpBB 9.0-801: Linux32, Linux64, Mac, Win32&lt;/li&gt;&lt;li&gt;PostGIS 1.3.6 for PG 8.3: Linux32, Linux64, Mac&lt;/li&gt;&lt;li&gt;PostGIS 1.4.2 for PG 8.4: Linux32, Linux64, Mac&lt;/li&gt;&lt;li&gt;PostGIS 1.5.3 for PG 9.0: Linux32, Linux64, Mac&lt;/li&gt;&lt;li&gt;psqlODBC 09.00.0310: Linux32, Linux64, Mac, Win32&lt;/li&gt;&lt;li&gt;Slony 1.2.22 for PG 8.3: Linux32, Linux64, Mac&lt;/li&gt;&lt;li&gt;Slony 2.0.7 for PG 8.4: Linux32, Linux64, Mac&lt;/li&gt;&lt;li&gt;Slony 2.0.7 for PG 9.0: Linux32, Linux64, Mac&lt;/li&gt;&lt;li&gt;Npgsql 2.0.11: Linux32, Linux64, Mac, Win32&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;New releases:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Drupal 7: &amp;nbsp;Linux32, Linux64, Mac, Win32&lt;/li&gt;&lt;li&gt;pgBouncer: &amp;nbsp;Linux32, Linux64&lt;/li&gt;&lt;li&gt;pgMemcache 2.0.1 for PG 9.0: Linux32, Linux64, Mac&lt;/li&gt;&lt;li&gt;pgMemcache 2.0.1 for PG 9.1: Linux32, Linux64, Mac&lt;/li&gt;&lt;li&gt;PostGIS 1.5.3 for PG 9.1: Linux32, Linux64, Mac&lt;/li&gt;&lt;li&gt;Slony 2.0.7 for PG 9.1: Linux32, Linux64, Mac&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Note that the PostGIS community maintain the PostGIS installers for Windows which will be released as soon as they're available. Windows updates for Slony are still in development due to an issue found in QA. Mac and Windows builds of pgBouncer are on their way.&lt;br /&gt;&lt;br /&gt;To download and install any of these packages, just run StackBuilder - if you don't have it already you can get it with the &lt;a href="http://www.enterprisedb.com/products-services-training/pgdownload"&gt;PostgreSQL Installers&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Enjoy :-)&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-3226229697278537879?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/3226229697278537879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2011/10/stackbuilder-package-updates.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/3226229697278537879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/3226229697278537879'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2011/10/stackbuilder-package-updates.html' title='StackBuilder Package Updates'/><author><name>Dave Page</name><uri>http://www.blogger.com/profile/10523190286514017933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-H8r0wk4J3J0/Tsy2PL9ILuI/AAAAAAAAACc/1kgZNg5IljU/s220/reading-phone.jpeg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-7929535777355955764</id><published>2011-10-04T09:11:00.003+01:00</published><updated>2011-10-04T10:05:10.974+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgeu'/><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='pgday'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>PostgreSQL Conference Europe: Are you ready?</title><content type='html'>PostgreSQL Conference Europe 2011 starts 2 weeks from today in the beautiful city of Amsterdam in the Netherlands. This is the fourth annual conference hosted by PostgreSQL Europe, following on from extremely successful events in Prato (Italy), Paris and Stuttgart, and is aimed at developers, DBAs, technologists and decision makers either using, or considering using the world's most advanced Open Source database.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This year we have four days on the schedule, with a kick-off day of training sessions hosted by respected PostgreSQL developers such as Greg Smith, Bruce Momjian, Magnus Hagander, Guillaume Lelarge and &lt;a href="http://www.postgresql.eu/events/sessions/pgconfeu2011/"&gt;more&lt;/a&gt;. Topics will cover performance tuning, application development, database administration, replication &amp;amp; high availability and geospatial. The training sessions are available on their own, or as part of a regular conference attendance at additional - but very reasonable - cost.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We had a record number of talk proposals submitted this year but we've resisted the urge to host even more sessions in parallel - in fact we've reduced the number of parallel sessions to three as we all know how frustrating it can be when more than one that you want to see are at the same time. Instead we've extended the conference by a day to accomodate over 40 different sessions, which has the added bonus of allowing an additional night of social activities - always a great way to discuss the latest technologies, trends and ideas with other Postgres users over a beer or two.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We've got a great range of topics for this year, covering new features in PostgreSQL 9.1 and beyond, developing applications, running Postgres in the cloud, hacking PostgreSQL internals, tools and add-on products and managing large databases, presented by a wide cross-section of users and developers, including a number of this year's &lt;a href="http://code.google.com/soc/"&gt;Google Summer of Code&lt;/a&gt; students who will talk about their work. You can view the &lt;a href="http://www.postgresql.eu/events/schedule/pgconfeu2011/"&gt;complete schedule&lt;/a&gt; on the conference website.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Our opening keynote this year will be presented by &lt;a href="http://www.afilias.info/biographies/ram-mohan"&gt;Ram Mohan&lt;/a&gt;, EVP and CTO of &lt;a href="http://www.afilias.info/"&gt;Afilias&lt;/a&gt; who manage the .info, .org and .mobi top level domains using Postgres. Ram will be discussing the business decisions and strategy around their use of PostgreSQL. Our closing keynote will be presented by &lt;a href="http://enterprisedb.com/company/executive-team"&gt;Ed Boyajian&lt;/a&gt;, President and CEO of &lt;a href="http://www.enterprisedb.com/"&gt;EnterpriseDB&lt;/a&gt; who will discuss PostgreSQL's role in the post-Oracle era.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, if you haven't done so already, head on over to the website to &lt;a href="http://2011.pgconf.eu/registration/"&gt;register as an attendee&lt;/a&gt; to avoid missing out on what promises to be an outstanding conference in an fantastic location. See you in Amsterdam!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-7929535777355955764?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/7929535777355955764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2011/10/postgresql-conference-europe-are-you.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7929535777355955764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7929535777355955764'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2011/10/postgresql-conference-europe-are-you.html' title='PostgreSQL Conference Europe: Are you ready?'/><author><name>Dave Page</name><uri>http://www.blogger.com/profile/10523190286514017933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-H8r0wk4J3J0/Tsy2PL9ILuI/AAAAAAAAACc/1kgZNg5IljU/s220/reading-phone.jpeg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-3264156008676332993</id><published>2011-08-01T16:57:00.007+01:00</published><updated>2011-08-01T17:43:17.962+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql mysql sql/med'/><title type='text'>PostgreSQL 9.1, meet MySQL</title><content type='html'>&lt;span class="Apple-style-span"&gt;So having spent the last few months with my head buried deep in a &lt;a href="http://www.enterprisedb.com/products-services-training/products/postgres-enterprise-manager"&gt;project&lt;/a&gt; at work, I finally managed to get back to my &lt;a href="http://pgsnake.blogspot.com/2011/04/tinkering-with-sqlmed.html"&gt;previous&lt;/a&gt; hacking on SQL/MED at the weekend after the kids went away for a week (good $DEITY it's quiet here)! Within a couple of hours, I had my half-baked Foreign Data Wrapper for MySQL up and running, and am now able to create foreign table objects in PostgreSQL 9.1 that map either directly to tables in a MySQL database, or to queries run on the MySQL server.&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Here's an example:&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" &gt;&lt;span class="Apple-style-span" &gt;-- Create the required functions for the FDW.&lt;br /&gt;CREATE FUNCTION mysql_fdw_handler()&lt;br /&gt;    RETURNS fdw_handler&lt;br /&gt;    AS '$libdir/mysql_fdw'&lt;br /&gt;    LANGUAGE C STRICT;&lt;br /&gt;&lt;br /&gt;CREATE FUNCTION mysql_fdw_validator(text[], oid)&lt;br /&gt;    RETURNS void&lt;br /&gt;    AS '$libdir/mysql_fdw'&lt;br /&gt;    LANGUAGE C STRICT;&lt;br /&gt;&lt;br /&gt;-- Create the data wrapper or "transport".&lt;br /&gt;CREATE FOREIGN DATA WRAPPER mysql_fdw&lt;br /&gt;    HANDLER mysql_fdw_handler&lt;br /&gt;    VALIDATOR mysql_fdw_validator;&lt;br /&gt;&lt;br /&gt;-- Create the foreign server, a pointer to the MySQL server.&lt;br /&gt;CREATE SERVER mysql_svr&lt;br /&gt;    FOREIGN DATA WRAPPER mysql_fdw&lt;br /&gt;    OPTIONS (address '127.0.0.1', port '3306');&lt;br /&gt;&lt;br /&gt;-- Create one or more foreign tables on the MySQL server. The first of&lt;br /&gt;-- these maps to a remote table, whilst the second uses an SQL query.&lt;br /&gt;CREATE FOREIGN TABLE employees (&lt;br /&gt;    id integer,&lt;br /&gt;    name text,&lt;br /&gt;    address text)&lt;br /&gt;    SERVER mysql_svr&lt;br /&gt;    OPTIONS (table 'hr.employees');&lt;br /&gt;&lt;br /&gt;CREATE FOREIGN TABLE ex_staff (&lt;br /&gt;    id integer,&lt;br /&gt;    name text,&lt;br /&gt;    address text)&lt;br /&gt;    SERVER mysql_svr&lt;br /&gt;    OPTIONS (query 'SELECT * FROM hr.employees WHERE date_left IS NOT NULL');&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;-- Create a user mapping to tell the FDW the username/password to &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;-- use to connect to MySQL, for PUBLIC. This could be done on a per-&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;-- role basis.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;CREATE USER MAPPING FOR PUBLIC &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;    SERVER mysql &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  &gt;    OPTIONS (username 'dpage', password '');&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;So let's try it out. Here's the test table in MySQL:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;mysql&amp;gt; SELECT * FROM employees;&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;+----+-------------+----------------------------+------------+&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;| id | name        | address                    | date_left  |&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;+----+-------------+----------------------------+------------+&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;|  1 | Dave Page   | 27 High Street, Georgetown | NULL       |&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;|  2 | Fred Bloggs | 46 Mill Road, Klasborough  | NULL       |&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;|  3 | Fred Bloggs | 24 The Wharf, Westhampton  | 2010-05-23 |&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;+----+-------------+----------------------------+------------+&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;3 rows in set (0.00 sec)&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;And here we are in PostgreSQL 9.1 beta 3:&lt;/span&gt;&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;postgres=# SELECT * FROM employees;&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt; id |    name     |          address           &lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;----+-------------+----------------------------&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;  1 | Dave Page   | 27 High Street, Georgetown&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;  2 | Fred Bloggs | 46 Mill Road, Klasborough&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;  3 | Fred Bloggs | 24 The Wharf, Westhampton&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;(3 rows)&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;postgres=# SELECT * FROM ex_staff;&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt; id |    name     |          address          &lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;----+-------------+---------------------------&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;  3 | Fred Bloggs | 24 The Wharf, Westhampton&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;(1 row)&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;For the curious, here's what the EXPLAIN output looks like:&lt;/span&gt;&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;postgres=# EXPLAIN SELECT * FROM employees;&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;                           QUERY PLAN                           &lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;----------------------------------------------------------------&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt; Foreign Scan on employees  (cost=10.00..13.00 rows=3 width=68)&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;   Local server startup cost: 10&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;   MySQL query: SELECT * FROM hr.employees&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;(3 rows)&lt;/div&gt;&lt;div style="color: rgb(153, 0, 0); font-family: 'courier new'; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Pretty neat huh? There are a couple of limitations in the current implementation:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;No attempt is currently made to push down quals (WHERE clauses) to the MySQL server, so every row MySQL finds is returned to PostgreSQL and filtered there. There's no defined API for this in PostgreSQL yet, and it's not immediately clear how to build something more complex than the simple example I used in my &lt;a href="https://github.com/dpage/redis_fdw"&gt;Redis FDW&lt;/a&gt; that would be required for a remote relational database. That said, you can build WHERE clauses into the foreign table definition of course.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"&gt;The MySQL C API doesn't seem to offer a simple way to either randomly access a result set, or at least reset the cursor to the first row, unless you copy the entire resultset to the client (PostgreSQL in this case). Because we need to be able to return to the first row if PostgreSQL calls the Rescan function, we therefore currently copy the entire resultset, rather than reading it from the server, on demand.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span"&gt;Aside from minor tweaks, this is probably about as far as I'll take this little project for now. I'll be talking about it at both &lt;a href="http://postgresopen.org/2011/home/"&gt;Postgres Open 2011&lt;/a&gt; in Chicago in September, and &lt;a href="http://pgbr.postgresql.org.br/2011/evento.php"&gt;PGBR 2011&lt;/a&gt; i&lt;span class="Apple-style-span"&gt;n &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: georgia; font-size: medium; "&gt;São Paulo in November - hopefully I'll see you there.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: georgia; font-size: medium; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: georgia; font-size: medium; "&gt;The MySQL FDW source code is &lt;a href="https://github.com/dpage/mysql_fdw"&gt;available on Github&lt;/a&gt;, and uses the PostgreSQL licence.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-3264156008676332993?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/3264156008676332993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2011/08/postgresql-91-meet-mysql.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/3264156008676332993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/3264156008676332993'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2011/08/postgresql-91-meet-mysql.html' title='PostgreSQL 9.1, meet MySQL'/><author><name>Dave Page</name><uri>http://www.blogger.com/profile/10523190286514017933</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-H8r0wk4J3J0/Tsy2PL9ILuI/AAAAAAAAACc/1kgZNg5IljU/s220/reading-phone.jpeg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-7689791573985509165</id><published>2011-04-06T17:14:00.000+01:00</published><updated>2011-04-06T17:14:09.547+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Google Summer of Code 2011</title><content type='html'>&lt;span class="Apple-style-span" style="border-collapse: collapse; color: #222222; font-family: arial, sans-serif; font-size: 13px;"&gt;As a reminder, Google's &lt;a href="http://code.google.com/soc/"&gt;Summer of Code 2011&lt;/a&gt; program has started and PostgreSQL is participating! &amp;nbsp;We&amp;nbsp;are looking for students who are interested in hacking on pgAdmin or&amp;nbsp;PostgreSQL all summer. &amp;nbsp;You only have until April 8, 2011 at midnight&amp;nbsp;Pacific time to submit a proposal.&lt;br /&gt;&lt;br /&gt;If you are a student, or know a student, or are a professor, please&amp;nbsp;urge your students to participate in Summer Of Code. &amp;nbsp;Not only is it a&amp;nbsp;fantastic opportunity to learn how open source code is really made,&amp;nbsp;and get paid to do it, but it can also be career-building.&lt;br /&gt;&lt;br /&gt;Read up on the PostgreSQL GSOC &lt;a href="http://wiki.postgresql.org/wiki/GSoC_2011"&gt;wiki page&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-7689791573985509165?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/7689791573985509165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2011/04/google-summer-of-code-2011.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7689791573985509165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7689791573985509165'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2011/04/google-summer-of-code-2011.html' title='Google Summer of Code 2011'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-6714437350101407386</id><published>2011-04-01T15:45:00.002+01:00</published><updated>2011-04-02T08:09:48.576+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Tinkering with SQL/MED</title><content type='html'>One of the cool new features in the upcoming PostgreSQL 9.1 release is support for SQL/MED&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;, or&amp;nbsp;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;i&gt;Management of External Data&lt;/i&gt;. Essentially what this allows us to do is connect external data sources to PostgreSQL and query them as if they were tables. The initial support in 9.1 will offer read-only support for &lt;i&gt;foreign tables, &lt;/i&gt;with the ability to include qualifier pushdown - i.e, the ability to push the applicable WHERE part of the SQL query to the remote server, to minimise data transfer. This optimisation is dependent on each individual &lt;i&gt;&lt;a href="http://developer.postgresql.org/pgdocs/postgres/sql-alterforeigndatawrapper.html"&gt;Foreign Data Wrapper&lt;/a&gt; (FDW)&lt;/i&gt; - the driver used to connect to the remote data source -&amp;nbsp;which may or may not implement it.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;PostgreSQL 9.1 will ship with an FDW that allows &lt;a href="http://developer.postgresql.org/pgdocs/postgres/file-fdw.html"&gt;access to files&lt;/a&gt; in formats that can be read by the existing COPY command, and Andrew Dunstan has been working on an FDW that will allow access to files with &lt;a href="http://people.planetpostgresql.org/andrew/index.php?/archives/167-And-the-new-FDW-is-....html"&gt;fixed-width data&lt;/a&gt;&amp;nbsp;as well as one for accessing &lt;a href="http://people.planetpostgresql.org/andrew/index.php?/archives/158-Yay!.html"&gt;ragged CSV files&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;I've been a big proponent of SQL/MED support, particularly at work, so was pleased to finally find some time to look at the work that's been done for 9.1 earlier in the week. I don't have much interest in reading external files (though clearly that is an important feature for some users) - I'm far more keen to see PostgreSQL have the ability to access the data in all those other databases you may not be able to migrate away from, or are better suited to particular workloads. So, with that in mind, I picked a NoSQL database more or less at random (though intentionally one that's a simple key/value store) and started hacking on an FDW for &lt;a href="http://redis.io/"&gt;Redis&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;a href="https://github.com/dpage/redis_fdw"&gt;The code&lt;/a&gt; is still pre-alpha quality, and there are a number of TODOs, including:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;Add qual pushdown&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;Handle different Redis datatypes correctly&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;Figure out how to make Redis scans atomic (or at the least&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&amp;nbsp;properly handle tuples that have been removed since the initial&lt;/span&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&amp;nbsp;scan)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;Handle Redis authentication&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;However it seems to work well (bar the known issues of course), and is looking like it will be simple to use as the basis for more complex FDWs which may well keep me amused for a while longer.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="line-height: 19px;"&gt;As always with Open Source, feel free to play with this if you think you might find it useful, but don't blame me if it breaks (which it likely will)!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-6714437350101407386?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/6714437350101407386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2011/04/tinkering-with-sqlmed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/6714437350101407386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/6714437350101407386'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2011/04/tinkering-with-sqlmed.html' title='Tinkering with SQL/MED'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-695577396647858701</id><published>2011-03-24T15:45:00.002Z</published><updated>2011-03-24T15:46:33.268Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Debunking the FUD: PostgreSQL for Microsoft Windows Payload Execution</title><content type='html'>If you follow Twitter for keywords like "postgres" or "postgresql", you may well have seen a number of tweets over the last day or so regarding a so-called "Payload Execution" exploit in PostgreSQL. This supposed attack was apparently first described in this &lt;a href="http://sqlmap.sourceforge.net/doc/BlackHat-Europe-09-Damele-A-G-Advanced-SQL-injection-whitepaper.pdf"&gt;paper&lt;/a&gt;, and has hit Twitter after &lt;a href="http://www.metasploit.com/redmine/projects/framework/repository/revisions/12111/entry/modules/exploits/windows/postgres/postgres_payload.rb"&gt;code&lt;/a&gt; to demonstrate the issue was added to &lt;a href="http://www.metasploit.com/"&gt;Metasploit&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The "attack" works like this:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;A user uploads a payload as a large object to the database. This can be done using the client side &lt;a href="http://www.postgresql.org/docs/current/interactive/lo-interfaces.html"&gt;lo_create()&lt;/a&gt; and &lt;a href="http://www.postgresql.org/docs/current/interactive/lo-interfaces.html"&gt;lo_import()&lt;/a&gt; functions.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The user then uses the server-side &lt;a href="http://www.postgresql.org/docs/current/interactive/lo-funcs.html"&gt;lo_export()&lt;/a&gt; function to export the payload to the server's filesystem.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The user then executes the payload, by creating an SQL level function to wrap the C function in the payload, eg:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;CREATE FUNCTION do_bad_stuff() RETURNS int4 AS '$libdir/bad_stuff.dll' LANGUAGE C;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The user then executes the payload:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;SELECT do_bad_stuff();&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Here's the problem with the "exploit":&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;You need to be a superuser for it to work.&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;That's right - steps 2 and 3 above both require that you are a superuser - in other words, you already have complete, unfettered access to the database server.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But wait - that doesn't get you very far into the OS either!&amp;nbsp;One oft-criticized&amp;nbsp;feature of PostgreSQL (for users that unwisely like to do all their work as root) is that it refuses to run under an account with superuser privileges - in fact on Windows, we irrevocably remove unwanted privileges from our security token at startup. The reason for this, is to ensure that once our L337 H4X0r has uploaded his payload (using his existing superuser privileges), he cannot escalate those privileges to the operating system's superuser accounts and compromise other parts of the system.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As a side note - as superuser in most installations there are far easier ways of achieving the results above that avoid the need to know the architecture of the system or to write code in C - for example, you can simply create a function using one of the untrusted procedural languages, like pl/perlu.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So the bottom line is, &lt;b&gt;&lt;i&gt;this is not an exploit&lt;/i&gt;&lt;/b&gt; - it requires that you are already a database superuser with all the power that entails, and doesn't gain you anything you didn't already have the ability to do, or give you a way to gain OS level privileges beyond those already held by the low-privilege user account the server runs under.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-695577396647858701?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/695577396647858701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2011/03/debunking-fud-postgresql-for-microsoft.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/695577396647858701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/695577396647858701'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2011/03/debunking-fud-postgresql-for-microsoft.html' title='Debunking the FUD: PostgreSQL for Microsoft Windows Payload Execution'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-5906220291755002323</id><published>2010-11-24T11:38:00.000Z</published><updated>2010-11-24T11:38:44.237Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgeu'/><category scheme='http://www.blogger.com/atom/ns#' term='enterprisedb'/><category scheme='http://www.blogger.com/atom/ns#' term='pgday'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Just 2 days left to register for PGDay.EU 2010</title><content type='html'>Yup, you heard correctly - there are just two (and a bit) days left to &lt;a href="http://2010.pgday.eu/register"&gt;register&lt;/a&gt; for the annual European PostgreSQL Conference, &lt;a href="http://2010.pgday.eu/"&gt;pgDay.EU 2010&lt;/a&gt;, being held in Stuttgart on December 6th and 7th, with a day of training sessions on the 8th.&lt;br /&gt;&lt;br /&gt;With over &lt;a href="https://www.postgresql.eu/events/schedule/pgday2010/"&gt;40 talks&lt;/a&gt; in a mix of English and German, this is an event not to be missed if you're a PostgreSQL user, developer, hobbyist, or are considering a deployment. There are a wide range of topics including talks on GIS, interoperability and migration, high availability and monitoring, business around PostgreSQL and case studies, as well as more academic topics.&lt;br /&gt;&lt;br /&gt;On day three we have a number of training courses available, including a two part course on PostGIS, presented by one of the leading developers, Mark Cave-Ayland from &lt;a href="http://www.siriusit.co.uk/"&gt;Sirius&lt;/a&gt;, deployment of applications in the Cloud with Servoy presented by Robert Ivens from &lt;a href="http://www.roclasi.com/"&gt;Roclasi&lt;/a&gt;, and a two part PostgreSQL administration course (in German) given by Andreas Scherbaum for &lt;a href="http://www.enterprisedb.com/"&gt;EnterpriseDB&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Finally, as attendees from previous PGDay's will have come to expect, &lt;a href="http://www.enterprisedb.com/"&gt;EnterpriseDB&lt;/a&gt; will be hosting a party for everyone on Monday night - definitely not one to miss!&lt;br /&gt;&lt;br /&gt;So, talk to the boss, fill out those pesky travel requisition forms, and head on over to the &lt;a href="http://2010.pgday.eu/register"&gt;registration page&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-5906220291755002323?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/5906220291755002323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/11/just-2-days-left-to-register-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/5906220291755002323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/5906220291755002323'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/11/just-2-days-left-to-register-for.html' title='Just 2 days left to register for PGDay.EU 2010'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-4966928407223045599</id><published>2010-11-06T05:54:00.000Z</published><updated>2010-11-06T05:54:52.958Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgwest'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>PGWest: Day 3</title><content type='html'>PGWest; the final day. It started (for me at least) with Greg Smith giving another excellent talk on scaling PostgreSQL with Hot Standby. This was followed by Robert Hodges and Linas Virbalas talking about replication of data from MySQL to PostgreSQL using &lt;a href="http://www.continuent.com/"&gt;Continuent Tungsten&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The highlight/lowlight of the day - depending on your viewpoint - was Rob Wultsch's talk on MySQL. Rob primarily looked at some of the things MySQL does better than PostgreSQL, and also talked about the forks (or lack of them, if you discount patchsets - which I personally, do not) and the FUD. Now lets be honest here - Rob did make some perfectly valid points about MySQL; for example, the fact that it's replication is easy to setup. Now to take this example, I would argue that PostgreSQL isn't that hard to get going either - Robert Haas' &lt;a href="http://www.linux.com/learn/tutorials/377071-using-replication-in-postgresql-90"&gt;tutorial&lt;/a&gt; illustrates that nicely - but MySQL is arguably better &lt;i&gt;at the moment&lt;/i&gt;. For most of the points he raised, there are easy counter-arguments that can be made by PostgreSQL, as shown by JD who made a number of us cringe a little with an&amp;nbsp;impromptu rebuttal session afterwards.&lt;br /&gt;&lt;br /&gt;In my view, this whole session was doomed to failure. It's fine to point out some of the things that PostgreSQL can learn from MySQL, but the session as given glossed over everything that PostgreSQL can do but MySQL cannot - which, to someone unfamiliar with PostgreSQL could give an incorrect impression. For the end user who is selecting a database, it is important not to choose a product based on whether some features are better implemented in one database or another, but to choose based on the quality of the products, the reliability of them, and the availability of the features you &lt;i&gt;actually need&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;On reflection, I think the only way we can tackle this sort of comparison fairly in a talk session, is to have a proper, moderated debate between a PostgreSQL expert, and a MySQL expect. Who knows, maybe we can do that for PG East or PG Europe 2011.&lt;br /&gt;&lt;br /&gt;Regardless of that - kudos to Rob for having the bottle to stand up and talk about MySQL in front of a room of PostgreSQL users. It was never going to be an easy crowd.&lt;br /&gt;&lt;br /&gt;After lunch, I did a little work for a while, and then toddled off to Rob Treat's presentation on &lt;i&gt;PostgreSQL 9.0: The other stuff&lt;/i&gt;. We joked the night before that no-one knew what &lt;i&gt;The stuff&lt;/i&gt;&amp;nbsp;was, never mind &lt;i&gt;The other stuff&lt;/i&gt;, but I guess once he knuckled down to his slides, he realised it meant Hot Standby and Streaming Replication. The talk was pretty good in the end, though it did remind me a little of &lt;a href="http://wiki.postgresql.org/wiki/Image:Developments_in_PostgreSQL_9.0.pdf"&gt;my talk&lt;/a&gt; in Brussels earlier this year, which could have been entitled &lt;i&gt;PostgreSQL 9.0: The stuff, and the other stuff&lt;/i&gt;!&lt;br /&gt;&lt;br /&gt;And that's where the conference ended for me, as we took the opportunity to hold an &lt;a href="http://www.enterprisedb.com/"&gt;EnterpriseDB&lt;/a&gt; meeting whilst a we were in the same city. All in all, an excellent show, with a great turnout - and to top it off, The Register took notice of us with two &lt;a href="http://www.theregister.co.uk/2010/11/04/mcnealy_ellions_opensource/"&gt;different&lt;/a&gt; &lt;a href="http://www.theregister.co.uk/2010/11/05/enterprisedb_postgresql_redhat/"&gt;stories&lt;/a&gt; - which somehow makes it feel all worthwhile.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-4966928407223045599?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/4966928407223045599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/11/pgwest-day-3.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/4966928407223045599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/4966928407223045599'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/11/pgwest-day-3.html' title='PGWest: Day 3'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-7042547588571539401</id><published>2010-11-04T16:42:00.000Z</published><updated>2010-11-04T16:42:01.911Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgeu'/><category scheme='http://www.blogger.com/atom/ns#' term='pgday'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Booked for PGDay.EU 2010 yet?</title><content type='html'>If you're planning on attending this year's European PostgreSQL conference (increasingly inaccurately known as PGDay!), then you might want to think about registering and booking your travel and&amp;nbsp;accommodation&amp;nbsp;now. It's just over a month until the conference, and isn't uncommon for the price of flights and trains to start to rise as the date gets nearer.&lt;br /&gt;&lt;br /&gt;We have &lt;a href="http://2010.pgday.eu/schedule"&gt;42 sessions this year&lt;/a&gt;, with a wide variety of PostgreSQL talks in English and German, followed by a day of training sessions, covering PostgreSQL Administration, PostGIS, Hot Standby and using Servoy with PostgreSQL. Places on the training sessions are limited, and available on a first come, first served basis at a (relatively small) extra cost.&lt;br /&gt;&lt;br /&gt;We have two guest keynote speakers: Simon Phipps is giving the opening keynote, and will be giving a talk entitled &lt;span class="Apple-style-span" style="font-family: inherit;"&gt;"Back To The Future of Open Source", looking issues around corporate involvement in Open Source projects, and what that means for the PostgreSQL community and contributors. Simon has been involved in many Open Source projects over the years, and was most recently known for his role at Sun Microsystems as Chief Open Source Officer.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The second, closing keynote will be given by Ed Boyajian, President and CEO of EnterpriseDB. Ed will be talking on "PostgreSQL's time to shine", and looking at how we as users and contributors to PostgreSQL have the opportunity to turn the $26B per year database industry on it's head.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;This year's event will be held at the luxurious &lt;a href="http://2010.pgday.eu/venue"&gt;Millenium Hotel&lt;/a&gt;&amp;nbsp;in Stuttgart, Germany, with the conference sessions on the 6th and 7th December, and training on the 8th December. We have a &lt;a href="http://2010.pgday.eu/hotels"&gt;discount group rate&lt;/a&gt; for hotel bookings that includes internet access and breakfast.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://2010.pgday.eu/register"&gt;Registration&lt;/a&gt; for the conference days and the training can be made online. We encourage you to register as early as possible to help us plan the event more effectively.&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;For more information on the conference, please visit the &lt;a href="http://2010.pgday.eu/"&gt;website&lt;/a&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-7042547588571539401?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/7042547588571539401/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/11/booked-for-pgdayeu-2010-yet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7042547588571539401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7042547588571539401'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/11/booked-for-pgdayeu-2010-yet.html' title='Booked for PGDay.EU 2010 yet?'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-364275742560484422</id><published>2010-11-04T00:27:00.000Z</published><updated>2010-11-04T00:27:50.592Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgwest'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>PGWest: Day 1 and 2</title><content type='html'>So my blogging of PGWest was a FAIL on the first day, as I never got around to following up my &lt;a href="http://pgsnake.blogspot.com/2010/11/pgwest-day-0.html"&gt;Day 0 post&lt;/a&gt;&amp;nbsp;with anything, so with apologies, here's a quick roundup of day 1 and day 2.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Day 1&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Started with breakfast with Magnus, Devrim and Guillaume before heading up to register on the&amp;nbsp;mezzanine. The first half of the day was a number of three hour tutorials which were on some interesting topics, but none which particularly interested &lt;i&gt;me&lt;/i&gt;, so I spent the time catching up with a number of colleagues who I haven't seen in a few months.&lt;br /&gt;&lt;br /&gt;After lunch, my talk on "Securing your web application" was one of the first 'normal' talks to be given. It was intended as a wide but shallow look at some of the security issues to consider when building a web app - a completely new talk which unfortunately didn't work as well as I'd hoped and needs some tweaking should I give it again; trimming the length a little, and focusing a little more on the database end of the stack. Still, I think it covered most of the important points for new developers to consider.&lt;br /&gt;&lt;br /&gt;After my talk, I spent more time with colleagues, including $BOSS who had arrived. I completely failed to see any more talks unfortunately.&lt;br /&gt;&lt;br /&gt;In the evening, we had a quick drink (thanks &lt;a href="http://pugs.postgresql.org/sfpug"&gt;SFPUG&lt;/a&gt;!) before heading off for dinner at an Irish pub, and then to the Starlight Room at the top of the hotel for a couple of drinks and dessert, coupled with lots of discussion on covering indexes (aka index-only scans), managing community workload and more.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Day 2&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Day 2 started with JD herding a handful of us together at breakfast to go and give Josh Berkus some encouragement in his talk on the PostgreSQL Community. An excellent talk for the newcomers in the room, though a little wasted on those of us who have been around the community for 10+ years.&lt;br /&gt;&lt;br /&gt;Highlight of the day was Scott McNealy's keynote, introduced by Ed Boyajian ($BIG_BOSS at EnterpriseDB). In case you've been living under a rock, you'll doubtless know that Scott was the founder and boss of Sun Microsystems until the Oracle takeover. The talk style was a little deadpan, but with a good stream of jokes that went down well with the audience. Interesting to hear Scott note that he was considered a good capitalist, whilst Larry Ellison is a great capitalist (who doesn't like to share)!&lt;br /&gt;&lt;br /&gt;Scott's talk was followed up with JD's introduction to the conference (yeah, halfway through the schedule - really Josh?), and then lunch. After a quick EnterpriseDB training meeting, I caught Jimbo's talk on &lt;a href="http://sourceforge.net/projects/gridsql/"&gt;GridSQL&lt;/a&gt;, Magnus' on database driven cache invalidation with Varnish (which we'll be using with the new PostgreSQL website backend, so I figured I should learn how it works), and then finally Bruce's new talk, MVCC Unmasked. Pretty complex for the newbie I suspect, but a very well presented topic.&lt;br /&gt;&lt;br /&gt;And on that note it's just about time to go back up to the Starlight Room, where the EnterpriseDB party is about to kick off with an open bar. I'll try not to get too hungover so I can write about day 3 tomorrow....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-364275742560484422?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/364275742560484422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/11/pgwest-day-1-and-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/364275742560484422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/364275742560484422'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/11/pgwest-day-1-and-2.html' title='PGWest: Day 1 and 2'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-5815704393222652217</id><published>2010-11-02T14:46:00.000Z</published><updated>2010-11-02T14:46:01.212Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql pgwest'/><title type='text'>PGWest: Day 0...</title><content type='html'>... or day 1, depending on how you look at it. Anyway, mostly yesterday, the day before the conference starts. Which is today. Obviously. $DEITY I hate jetlag-induced early mornings, especially when coupled with reminders for meetings on the East coast that go "ping" right as I'm finally drifting off to sleep again at 6AM.&lt;br /&gt;&lt;br /&gt;Anyway, enough about that. The flight from LHR to SFO was mostly uneventful, barring an APU failure which meant the HVAC was barely working until we took off. It got a little hot, but otherwise everything was good, and being completely cut off from email, twitter and IM for nearly 11 hours meant that I managed to get a bunch of work done that's been piling up for ages&amp;nbsp;&lt;b&gt;and&lt;/b&gt; watch the A-Team.&lt;br /&gt;&lt;br /&gt;Immigration at SFO was remarkably fast (I've only seen similar speeds in the past in Boston), which gave me plenty of time to queue up with a bunch of other passengers for over 10 minutes before a single cab showed up. What the *$£% is that about?&lt;br /&gt;&lt;br /&gt;Made it to the hotel, which took a little longer than expected due to the World Series (I'm sure I won't be the first, or the last to note that that's a &lt;b&gt;really&lt;/b&gt; misleading name) to find a whole gaggle of elephant herders in the lobby, with beer. Oh, and one dolphin botherer (hi Rob!). Dinner was at a small, but excellent Indonesian place on Post and Jones where Greg Stark showed up from work to join myself, Aurynn Shaw, Bruce Momjian, Magnus Hagander, Jim Nasby, Rob Wultsch and Guillaume Lelarge.&lt;br /&gt;&lt;br /&gt;After dinner, a few of us stopped in the hotel bar for a night cap before heading off for some Zzzz's.&lt;br /&gt;&lt;br /&gt;Today the conference starts in earnest of course. Breakfast in 20 minutes, and then at 9AM, a bunch of 3 hour tutorials. After lunch, my talk "Securing your web application" (and overview for beginners) is up, then I have the rest of the conference to see what I like.&lt;br /&gt;&lt;br /&gt;So, there you have it. A couple of hundred largely useless words that spilled out of my brain having cleared out my "Starred Items" at 5AM leaving me nothing more interesting to do without committing more hours than I have. With any luck, tomorrow's roundup will be somewhat less of a waste of bytes, though someone did mention beer so I wouldn't hold your breath....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-5815704393222652217?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/5815704393222652217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/11/pgwest-day-0.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/5815704393222652217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/5815704393222652217'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/11/pgwest-day-0.html' title='PGWest: Day 0...'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-6864451821192261982</id><published>2010-10-25T18:16:00.001+01:00</published><updated>2010-10-25T18:19:23.450+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgeu'/><category scheme='http://www.blogger.com/atom/ns#' term='enterprisedb'/><category scheme='http://www.blogger.com/atom/ns#' term='pgday'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>PGDay Europe 2010 schedule announced</title><content type='html'>I'm pleased to be able to say that the schedule for this year's &lt;a href="http://2010.pgday.eu/"&gt;PGDay Europe conference&lt;/a&gt; in Stuttgart, Germany on the 6th - 8th December 2010 is &lt;a href="http://2010.pgday.eu/schedule"&gt;now available&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We have a bumper crop of talks this year, with 13 sessions in German, 26 in English, 2 keynotes and a key signing party!&lt;br /&gt;&lt;br /&gt;We're pleased to welcome Free and Open Source veteran, Simon Phipps as the presenter of our opening keynote. Simon is well known for his involvement with various organisations including GNOME, OpenSolaris and OpenJDK and will be talking about some of the changes we've been seeing in the Open Source world recently as projects evolve and corporate involvement changes. He is perhaps best known for his role as Chief Open Source Officer at Sun Microsystems where he oversaw the companies Open Source activities.&lt;br /&gt;&lt;br /&gt;Of course, we also have some great technical talks lined up for developers, DBAs and people considering using or deploying Postgres, on topics such as PostGIS, application development, PostgreSQL internals, clustering and replication and more all in the comfortable surroundings of a top hotel.&lt;br /&gt;&lt;br /&gt;For the first time we've also added a day of training sessions to the schedule this year (at extra cost). Training will be available on PostgreSQL administration, application development and PostGIS, with some courses in German and some in English.&lt;br /&gt;&lt;br /&gt;As always, we reserve the right to adjust the schedule in the event of unforeseen circumstances.&lt;br /&gt;&lt;br /&gt;So, if you haven't done so already, head on over to the website and &lt;a href="http://2010.pgday.eu/register"&gt;register your attendance&lt;/a&gt; at the conference. You won't regret it!&lt;br /&gt;&lt;br /&gt;See you in Stuttgart!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-6864451821192261982?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/6864451821192261982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/10/pgday-europe-2010-schedule-announced.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/6864451821192261982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/6864451821192261982'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/10/pgday-europe-2010-schedule-announced.html' title='PGDay Europe 2010 schedule announced'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-7077058167454067801</id><published>2010-10-05T14:08:00.001+01:00</published><updated>2010-10-05T14:09:08.374+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgeu'/><category scheme='http://www.blogger.com/atom/ns#' term='pgday'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>PGDay.EU 2010 Call for Papers ending soon!</title><content type='html'>This years European PostgreSQL Conference is due to be held on the 6 - 8th December 2010 in Stuttgart Germany. Following on from last years extremely successful event in Paris, we hope to make the show bigger and better than before, with:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A 4 star &lt;a href="http://2010.pgday.eu/venue"&gt;hotel venue&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A special guest keynote speaker (to be announced Real Soon Now :-) )&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Multiple talk tracks in English and German&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Talks for PostgreSQL hackers and users, as well as decision makers&lt;/li&gt;&lt;/ul&gt;Of course, to make that happen we need talks proposals from our community members and users, so if you can make it to Germany in December, please take a look at the &lt;a href="http://2010.pgday.eu/callforpapers"&gt;call for papers&lt;/a&gt; page on the website, and send in your proposal before the 11th October!&lt;br /&gt;&lt;br /&gt;See you in Stuttgart.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-7077058167454067801?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/7077058167454067801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/10/pgdayeu-2010-call-for-papers-ending.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7077058167454067801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7077058167454067801'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/10/pgdayeu-2010-call-for-papers-ending.html' title='PGDay.EU 2010 Call for Papers ending soon!'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-7233818947197372515</id><published>2010-07-30T09:50:00.001+01:00</published><updated>2010-07-30T17:11:55.032+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='enterprisedb'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Cleaning up the Oracle mess</title><content type='html'>I've been caught off-guard by the number of &lt;a href="http://www.itnews.com.au/News/221051,oracle-shuts-down-open-source-test-servers.aspx"&gt;news&lt;/a&gt; &lt;a href="http://www.h-online.com/open/news/item/Report-Oracle-shuts-down-PostgreSQL-test-servers-1047676.html"&gt;stories&lt;/a&gt; that have been posted about Oracle turning off their Solaris boxes that participated in the &lt;a href="http://pgbuildfarm.org/"&gt;PostgreSQL Buildfarm&lt;/a&gt;&amp;nbsp;and the fact that I've been working to replace them. I think most of us in the community assumed it was going to happen sooner or later - Sun were contributors to PostgreSQL, but once they bought MySQL I think it was the beginning of the end of their contributions to the project. Being&amp;nbsp;acquired&amp;nbsp;by Oracle was the solid-gold nail in the coffin.&lt;br /&gt;&lt;br /&gt;Anyway, just to clarify a few points in some of the articles I've seen:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;My employer and corporate contributor to PostgreSQL, &lt;a href="http://www.enterprisedb.com/"&gt;EnterpriseDB&lt;/a&gt; is providing the hardware for the new buildfarm members. We try to give back to the community wherever we can, and this is one thing that we can do quite easily.&lt;br /&gt;&amp;nbsp; &lt;/li&gt;&lt;li&gt;So far I've enabled two Solaris SPARC buildfarm members, one running the Sun Studio compiler, and one using GCC. There are equivalent Solaris Intel members being setup at the moment, as well as a couple of Windows 7 ones using VC++ 2008 32 and 64 bit.&lt;br /&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Contrary to reports and what might be inferred from the short bio on my blog, I actually work for EnterpriseDB on a full time basis. The "in my spare time I work for..." bit was my poor British attempt at humour. Sorry 'bout that - it won't happen again!&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Well, that's about it I guess. We now return you to your scheduled programming.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-7233818947197372515?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/7233818947197372515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/07/cleaning-up-oracle-mess.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7233818947197372515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7233818947197372515'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/07/cleaning-up-oracle-mess.html' title='Cleaning up the Oracle mess'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-2146426275027284121</id><published>2010-07-28T14:57:00.002+01:00</published><updated>2010-09-22T11:20:55.420+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgadmin'/><category scheme='http://www.blogger.com/atom/ns#' term='enterprisedb'/><category scheme='http://www.blogger.com/atom/ns#' term='stackbuilder'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Postgres, Passwords and Installers</title><content type='html'>By far the most common issues we see reported with the "one-click" &lt;a href="http://www.enterprisedb.com/products/pgdownload.do"&gt;PostgreSQL installers&lt;/a&gt; that we build here at &lt;a href="http://www.enterprisedb.com/"&gt;EnterpriseDB&lt;/a&gt;&amp;nbsp;are password related. In this post I'll explain what the passwords are, why we need them, and how to reset them.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Superuser Password&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Superuser Password is used by Postgres to secure the built-in "postgres" superuser account in the database itself. This is the only account found in a fresh installation. The password is setup during the initial installation of the database server, and may be changed at any point in the future using &lt;a href="http://www.pgadmin.org/"&gt;pgAdmin&lt;/a&gt;, or by issuing an SQL query such as:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;ALTER USER postgres WITH PASSWORD 'VeryVerySecret';&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The superuser password is not required to upgrade Postgres to a newer version, however it will be required if you install certain StackBuilder modules, such as PostGIS or any of the PHP applications that are available. The password is required for these installers because they connect to the database server and create databases and other objects required to run the software.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Service Password&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The service password is the one that tends to confuse people. Postgres runs under a special operating system user account for security reasons. This account is created on your machine when the installer runs, and unless overridden on the command line, it will be called "postgres". On Unix-like operating systems such as Linux and Mac OS X, the account is setup without a password and users generally never need to worry about it again.&lt;br /&gt;&lt;br /&gt;On Windows however, things are slightly different. In a normal installation of Postgres we'll setup the service account on Windows to use the same password that we use for the superuser account (expert users can override this behaviour using command line options for the installer). We need to do this because Windows requires that service accounts have secured passwords.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Note&lt;/b&gt;: If you change the superuser password in the future, that does not change the service password as well.&lt;br /&gt;&lt;br /&gt;When you upgrade Postgres on Windows, in order to re-install the service we need to know the service password which is why the installer will require that it be re-entered correctly.&lt;br /&gt;&lt;br /&gt;If you have forgotten the password, you can reset it on the command line (there are GUI tools that can be used as well, but they are not available on all versions of Windows). Start a command prompt, and then enter a command like:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;net user postgres *&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;You will be prompted to enter and confirm a new password for the user. If you do this, you must then also update the password in the service configuration for any Postgres or related services (such as pgAgent or pgBouncer) that may use the account, or expect them to fail to start at the next reboot. You can do this using the &lt;i&gt;Services&lt;/i&gt; management console which can be found in the &lt;i&gt;Administrative Tools&lt;/i&gt; folder. Just right-click each service, select &lt;i&gt;Properties&lt;/i&gt;, and enter the new password and click &lt;i&gt;OK.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We get a lot of people asking us to reset their service password, as they mistakenly think it's related to either their Postgres Community Login, or their account on the EnterpriseDB website. It's not - and we cannot change it for you!&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Uninstallation&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;If you uninstall Postgres, the service account will not be removed from the operating system. This is because each individual uninstaller has no way of knowing if you are using the service account with other packages or installations. This isn't a huge problem unless you come to reinstall Postgres at a later time and realise you've completely forgotten what the password was set to - in which case you can reset it as shown above. If you prefer to remove the account, you can use a command like:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;net user postgres /delete&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Summary&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So to recap, we have Superuser passwords which are used to secure the database server's superuser account, and on Windows a service password to secure the operating system service account used by Postgres. Accounts use the same username (postgres) and the same password in a normal installation, but either password can be changed independently of the other post-installation. Both passwords are specific to your own machine, and can be changed (or the service account deleted) as shown.&lt;br /&gt;&lt;br /&gt;For a walkthrough of the installation process, please see &lt;a href="http://www.enterprisedb.com/learning/pginst_guide.do"&gt;this guide&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you need any further assistance having read this post, please use the &lt;a href="http://www.postgresql.org/community/lists/"&gt;pgsql-general@postgresql.org mailing list&lt;/a&gt;, or the &lt;a href="http://forums.enterprisedb.com/forums/show/9.page"&gt;EnterpriseDB Forums&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-2146426275027284121?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/2146426275027284121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/07/postgresql-passwords-and-installers.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2146426275027284121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2146426275027284121'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/07/postgresql-passwords-and-installers.html' title='Postgres, Passwords and Installers'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-8275518642810553343</id><published>2010-07-01T09:23:00.001+01:00</published><updated>2010-07-01T09:23:45.261+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='enterprisedb'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Postgres Testimonials</title><content type='html'>Those of you who attended PG East in Philadelphia earlier this year may recall that we were recording user testimonials on video. Well, we've finally got a bunch of those edited and ready for public consumption - you can find them on the EnterpriseDB &lt;a href="http://www.youtube.com/user/EnterpriseDB"&gt;YouTube channel&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;These videos are ideal material to help persuade your boss or co-workers to adopt Postgres - for example, this video features Jim Nasby talking about how Enova Financial managed $1 billion worth of loans last year using Postgres, having previously scrapped MySQL after just a few months of use.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;object style="height: 344px; width: 425px;"&gt;&lt;param name="movie" value="http://www.youtube.com/v/57wvuX4bLHE"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/57wvuX4bLHE" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Check them out. Spread the word.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-8275518642810553343?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/8275518642810553343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/07/postgres-testimonials.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/8275518642810553343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/8275518642810553343'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/07/postgres-testimonials.html' title='Postgres Testimonials'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-6595150886471233289</id><published>2010-07-01T09:13:00.000+01:00</published><updated>2010-07-01T09:13:09.937+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='enterprisedb'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>SQL Injection attacks</title><content type='html'>There was another &lt;a href="http://threatpost.com/en_us/blogs/mass-sql-injection-attack-hits-sites-running-iis-061010"&gt;malicious attack&lt;/a&gt;&amp;nbsp;targeting&amp;nbsp;websites running Microsoft Internet Information Server (IIS) recently. I would imagine that the vast majority of website developers and DBAs are aware of SQL Injection attacks and how to avoid them - primarily, by using nothing but parameterised queries in your code - and a large percentage of those have probably seen the excellent XKCD comic strip that illustrates (yeah, yeah, pun intended) the &lt;a href="http://xkcd.com/327/"&gt;point&lt;/a&gt; nicely.&lt;br /&gt;&lt;br /&gt;It never hurts to have a belt-and-braces approach to these things though, which is why version 9.0 of our Postgres Plus &lt;a href="http://www.enterprisedb.com/products/postgres_plus/overview.do"&gt;Standard Server&lt;/a&gt; and version 8.4 of &lt;a href="http://www.enterprisedb.com/products/postgres_plus_as/overview.do"&gt;Advanced Server&lt;/a&gt; will include a new module called SQL/Protect. This is a relatively small plugin to Postgres prototyped by Jim Mlodgenski, the Chief Architect here at &lt;a href="http://www.enterprisedb.com/"&gt;EnterpriseDB&lt;/a&gt; which helps protect against these sort of attacks. It uses a number of techniques, such as detection of tautology in WHERE clauses of your SQL to try to detect and prevent injection attacks. It can also run in a learning mode in which it will monitor your web app and learn the usage patterns of the database so it can prevent anything out of the ordinary being executed.&lt;br /&gt;&lt;br /&gt;Look out for it in our upcoming releases.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-6595150886471233289?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/6595150886471233289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/07/sql-injection-attacks.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/6595150886471233289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/6595150886471233289'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/07/sql-injection-attacks.html' title='SQL Injection attacks'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-2307866150792155206</id><published>2010-05-27T21:04:00.002+01:00</published><updated>2010-06-21T20:37:28.088+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Comparing VoltDB to Postgres</title><content type='html'>I've been asked a few times recently for my opinion on &lt;a href="http://www.voltdb.com/"&gt;VoltDB&lt;/a&gt;, the new database server architected by the 'father' of Postgres, Dr Michael Stonebraker so rather than repeating myself over and over again it seems like a good idea to write it all down.&lt;br /&gt;&lt;br /&gt;VoltDB is an in-memory, lockless relational database that maintains ACID compliance, has a SQL interface and claims to offer massive performance increases and scalability over 'traditional' relational databases. If you take the time to visit the website, and download some of the docs or even the product itself, if you're a database geek like me you'll probably be pretty impressed. The technology is interesting - the ability to avoid locking seems like paradise, as does the linear scaling.&lt;br /&gt;&lt;br /&gt;There are downsides though. In order to implement the key features of the DBMS, Stonebraker has had to design the system to work with a pretty narrow set of use-cases. Lets consider some of the pros and cons and compare them to &lt;a href="http://www.postgresql.org/"&gt;Postgres&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;In memory database&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;VoltDB is an in-memory database. This means it can be &lt;i&gt;very&lt;/i&gt; fast. It also gives us two potential problems:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The database must fit into the available memory on the system. That means that with a single server with 4GB of RAM, a practical database size limit may be in the order of 3GB or so, once you allow 1GB for the OS and memory required to actually operate the database server.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Durability (the D in ACID) must be provided through replication of data to one or more secondary servers over the network, or through writing periodic snapshots to disk. Because replication is synchronous within the cluster and asynchronous between clusters, it is possible for a cluster-wide power failure to cause the loss of committed transactions.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Of course, in some circumstances these may be non-issues. VoltDB scales horizontally extremely well (near linearly in fact), so if your database is large, you can add more servers to get the storage you need. This won't suit people running multi-terabyte databases of course - RAM is cheap these days, but not that cheap - especially when you multiply by 2 or more for durability and redundancy!&lt;br /&gt;&lt;br /&gt;In contrast, Postgres stores it's data on non-volatile storage - a direct attached hard disk, or SAN for example. The issues here are:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Since Postgres uses both a shared buffer cache and the kernel cache (and potentially &lt;a href="http://www.enterprisedb.com/openDownloads.do?productId=568&amp;amp;redirectReason=true&amp;amp;productVersion=otherDownload"&gt;Infinite Cache&lt;/a&gt; in EnterpriseDB's &lt;a href="http://www.enterprisedb.com/products/postgres_plus_as/overview.do"&gt;Postgres Plus Advanced Server&lt;/a&gt;), in a well-configured system - like VoltDB - it will read most if not all of its data from memory. Unlike VoltDB, Postgres will still have locking and buffer management overhead however and of course, any disk reads will be much slower.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Durability is achieved through the immediate logging of all transactions to a sequential transaction log, and later writing of updated pages to the heap. This is much slower than VoltDB's in-memory operations as we write everything to disk twice.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Summary: VoltDB is fast, because it's in-memory. This creates serious practical limits on database size though - how big is your budget? You'll also need at least two servers, with independent power supplies for any real durability. Postgres is slower, most noticeably when the working set doesn't fit into a cache, but you can store multi-terabyte databases on very cheap hard disks with full durability.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Lockless database&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Traditional DBMSs allow for concurrent access by using granular locking and other techniques such as MVCC (Multi Version Concurrency Control). By locking only the smallest part of the database required to perform a specific operation, they ensure that other users can still access the rest of the database concurrently. Locks are held for as short a period as possible.&lt;br /&gt;&lt;br /&gt;In contrast, VoltDB is a lockless database and therefore doesn't suffer from any of the complexities involved in lock management or MVCC snapshot management that Postgres does. This is especially important when scaling horizontally, as lock management and snapshot management are two of the most complex problems to solve when building clustered database systems based on Postgres.&lt;br /&gt;&lt;br /&gt;VoltDB's solution isn't a panacea for these issues though. To achieve lockless operation, every request is serialised through each partition of the database. This means that if you have one partition (i.e. a single server), each database request will be run sequentially, with no parallelism at all. If you have partitioned data, then requests that affect different individual partitions may run in parallel, however any multi-partition requests must be run against the entire cluster on their own.&lt;br /&gt;&lt;br /&gt;So what does this mean? Primarily, the effect is that performance is likely to tank if you try to run any complex queries on the system. Any long running, multi-partition query will block all other users of the database until it completes, which means that the system is only suitable for simple OLTP applications, with well thought out data structures. Don't be tempted to sneak any reports into your apps!&lt;br /&gt;&lt;br /&gt;In contrast, Postgres can easily handle both OLTP and DW (data warehouse) workloads. MVCC ensures that 'readers never block writers', so you can run complex reports at the same time as tens or hundreds of OLTP operations are running concurrently. The downside is, that it is &lt;i&gt;significantly&lt;/i&gt; harder to build multi-master clusters with Postgres.&lt;br /&gt;&lt;br /&gt;Summary: VoltDB's lockless architecture makes it easy to scale horizontally, but limits concurrency. Postgres is harder to scale out, but offers excellent concurrency through fine-grained locking and MVCC.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Evolution and growth&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The schema in a VoltDB database is defined in a runtime 'catalog'. This includes not just the schema, but also the details of the different nodes in the cluster, and the size of the database. Any changes that are required to the schema, to the configuration of the cluster, or to the size of the database currently require:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Dump of the data to non-volatile storage and shutdown of the VoltDB server on each node.&lt;/li&gt;&lt;li&gt;Reconfiguration of the runtime catalog.&lt;/li&gt;&lt;li&gt;Restart of the VoltDB server on each node, and reload of the data from storage.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;In Postgres, database objects can be modified entirely 'on the fly', without shutting down the server or dumping or reloading data. The database size can grow to theoretically unlimited sizes, constrained only by the amount of storage available without the need to restart. Most of the clustering solutions for Postgres don't require a shutdown to install or reconfigure them.&lt;br /&gt;&lt;br /&gt;Summary: VoltDB cannot offer high availability if the database grows beyond the predicted size, nor can changes to the schema (such as those that may be required by a software upgrade) be made without shutting down the system. Postgres allows your system to grow and evolve without requiring downtime.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Ecosystem, drivers and tools&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;VoltDB is a new project. At present, it doesn't have any real community, the only tools available are those shipping with the server, and the API is based on calling Java stored procedures. Actually, that's a bit awkward really. You essentially have to write a data access layer on the server in Java, which encapsulates all of the SQL queries you need to run. Your client code then calls those procedures directly.&lt;br /&gt;&lt;br /&gt;Postgres has a long history. There is a large and vibrant community, with hundreds of tools, add-ons, utilities and so-on available. APIs to access the database are available for a host of languages including C, C++, .NET, Perl, Python, TCL, Ruby, PHP, Java and more. Stored procedures (functions) can be written in common languages including C, Perl, TCL, Ruby, Python PHP and Java.&lt;br /&gt;&lt;br /&gt;Summary: The long Postgres history means that there are far more tools, utilities and interfaces available for it. VoltDB can catch up, but it will likely take many years. Further, the Java API limits how you can access the database - there is no way to connect via a standard ODBC or JDBC driver to allow you to use generic query tools for example.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Conclusion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;VoltDB is an interesting product, but one with limited use-cases. If your database can fit in the memory of your server cluster, and you can architect your application to avoid any kind of complex query then it can offer vast performance advantages over traditional DBMSs like Postgres, and has potential to scale extremely well.&lt;br /&gt;&lt;br /&gt;For most users though, concurrency and the ability to run complex queries are real issues, as is the ability to scale the database beyond sizes that are economical to keep in RAM, without having to dump and reload the data and restart the server to accommodate expansion and evolution of the system.&lt;br /&gt;&lt;br /&gt;I can see some interesting use cases for VoltDB, and I'll be keeping an eye on its evolution and time permitting, trying it out for size. It's by no means a universal replacement for Postgres or any other similar DBMS (nor does it claim to be), but it could prove to be a very useful tool in the right situation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-2307866150792155206?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/2307866150792155206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/05/comparing-voltdb-to-postgres.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2307866150792155206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2307866150792155206'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/05/comparing-voltdb-to-postgres.html' title='Comparing VoltDB to Postgres'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-8573451759293744227</id><published>2010-05-25T13:31:00.000+01:00</published><updated>2010-05-25T13:31:03.396+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgcon'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>PGCon 2010 summary</title><content type='html'>I arrived home from &lt;a href="http://www.pgcon.org/2010"&gt;PGCon 2010&lt;/a&gt;&amp;nbsp;yesterday. As always the conference was held in Ottawa, Canada to which many of the PostgreSQL developers now make an annual pilgrimage.&lt;br /&gt;&lt;br /&gt;We started on Wednesday with the third annual &lt;a href="http://wiki.postgresql.org/wiki/PgCon_2010_Developer_Meeting"&gt;developer meeting&lt;/a&gt;, this year held at &lt;a href="http://www.arcthehotel.com/ottawa-hotels/"&gt;Arc The Hotel&lt;/a&gt; for the second time. Many thanks to Nadine for ensuring everything went without a hitch. There were 29 developers present, working their way through a packed agenda in an extremely productive manner. There were some great ideas for 9.1, with lots of people claiming items to work on. If we get only half of that done, 9.1 will be an incredible release. &lt;br /&gt;&lt;br /&gt;There are some photos from the meeting on my &lt;a href="http://pgsnake.smugmug.com/Conferences/PostgreSQL-Developer-Meeting/"&gt;SmugMug page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Thursday was the start of the conference proper, beginning with an excellent presentation from Gavin M. Roy comparing PostgreSQL with NoSQL databases. The talk can be heard &lt;a href="http://www.fosslc.org/drupal/content/perspectives-nosql"&gt;here&lt;/a&gt;. I ducked in and out of a few more talks over the day, but spent much of my time working with Magnus and Stefan on the new &lt;a href="http://blog.hagander.net/archives/167-PostgreSQL-infrastructure-updates.html"&gt;infrastructure hosting platform&lt;/a&gt; that we're polishing off for the project's hosting.&lt;br /&gt;&lt;br /&gt;On Thursday night we had the annual EnterpriseDB party, held at the Velvet Room. Good food, plenty of drink, and people discussing Postgres well into the early hours of Friday. Unfortunately I don't have any photos as I was too busy running around giving out beer tokens to remember to take any.&lt;br /&gt;&lt;br /&gt;Friday was the second day of the main conference, starting at 10AM (thankfully) with David Fetter and Jonathan Leto kicking off my day talking about &lt;a href="http://www.pgcon.org/2010/schedule/attachments/153_PLParrot_PGCon_2010.pdf"&gt;PL/Parrot&lt;/a&gt;. Dan hosted the closing session which consisted largely of an auction, the main purpose of which was to show how the PostgreSQL community can raise more money than the BSD community for charity. And we did. By quite some margin. The biggest earner being a PostgreSQL 9.0 sweatshirt signed by all of the developers at the developer meeting, which amid a circus of bidding between teams led by Jim Nasby and Gavin Roy ended up going for $1517, donated by both camps. Photos, &lt;a href="http://pgsnake.smugmug.com/Conferences/PGCon-2010/"&gt;are here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The week was finished off with a short stop in Montreal with a number of other community members, before taking advantage of cheap Sunday flights to get back home for Monday morning!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-8573451759293744227?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/8573451759293744227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/05/pgcon-2010-summary.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/8573451759293744227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/8573451759293744227'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/05/pgcon-2010-summary.html' title='PGCon 2010 summary'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-7454017194630246515</id><published>2010-05-25T10:40:00.000+01:00</published><updated>2010-05-25T10:40:45.011+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgeu'/><category scheme='http://www.blogger.com/atom/ns#' term='pgday'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Elected to the PostgreSQL Europe Board</title><content type='html'>Magnus posted the &lt;a href="http://blog.hagander.net/archives/169-PostgreSQL-Europe-election-results.html"&gt;results&lt;/a&gt; of the PostgreSQL Europe board elections yesterday, and I'm happy to have be one of the successful candidates, along with &lt;a href="http://blog.guillaume.lelarge.info/index.php/"&gt;Guillaume Lelarge&lt;/a&gt; and &lt;a href="http://andreas.scherbaum.la/blog/"&gt;Andreas Scherbaum&lt;/a&gt;. Everyone standing has made important contributions to PostgreSQL however and now that the election is over I can say that any of them would have been good choices in my opinion.&lt;br /&gt;&lt;br /&gt;I'm looking forward to working on new initiatives to promote PostgreSQL within Europe, as well as the ongoing work to organise our 2010 conference in Amsterdam, so a big "thank you" goes to all those who voted for me.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-7454017194630246515?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/7454017194630246515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/05/elected-to-postgresql-europe-board.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7454017194630246515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7454017194630246515'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/05/elected-to-postgresql-europe-board.html' title='Elected to the PostgreSQL Europe Board'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-3614950830637363043</id><published>2010-05-17T20:33:00.000+01:00</published><updated>2010-05-17T20:33:06.183+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgadmin'/><category scheme='http://www.blogger.com/atom/ns#' term='pgcon'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>A vaguely off-topic tale of frustration and nail biting: I hate flying!</title><content type='html'>Well, in &lt;i&gt;theory&lt;/i&gt;&amp;nbsp;I love it. It's just become a nightmare over the last few trips.&lt;br /&gt;&lt;br /&gt;In March there was &lt;a href="http://www.postgresqlconference.org/"&gt;PG East&lt;/a&gt; in Philadelphia. And the BA cabin crew decided to go on strike. Cue purchase of a (refundable) backup ticket at vast expense, and then days of nail biting until it became apparent that my original (on-refundable, but much cheaper) flights would go ahead just with reduced on-board service. So the US airways ticket got refunded, and I enjoyed a couple of salads for lunch. Not to my usual taste, but probably more healthy than what I normally favour!&lt;br /&gt;&lt;br /&gt;In April I planned to take a trip to the &lt;a href="http://www.enterprisedb.com/"&gt;EnterpriseDB&lt;/a&gt; Massachusetts office in Westford. Then Eyjafjallajökull erupted, and the ash came. &amp;nbsp;Four more days of nail biting, before it's confirmed that my flight is canceled. Excellent service from BA though, and within 30 minutes I'm rebooked for the beginning of May. The office will just have to wait.&lt;br /&gt;&lt;br /&gt;So in May we have attempt number two to get to Massachusetts. Which went without a hitch. Amazing. Well, except that the ash returned briefly whilst I was away causing another minor scare. Oh, and a mixup with my ride from the airport which quit waiting for me 22 hours before I arrived.&lt;br /&gt;&lt;br /&gt;Second trip in May is &lt;a href="http://www.pgcon.org/"&gt;PGCon&lt;/a&gt;. And late Saturday afternoon I hear on the radio that the ash is back. More nail biting. Constant refreshing of websites like the &lt;a href="http://www.metoffice.gov.uk/"&gt;Met Office&lt;/a&gt; and &lt;a href="http://www.nats.co.uk/"&gt;NATS&lt;/a&gt;. On Sunday night, the Air Canada flight from Ottawa to London is delayed by hours due to overnight ash in the early hours of Monday morning, and by the time I wake up its been cancelled entirely which means that so is my flight as the plane is now in the wrong place. Luckily, I woke up at 5:30AM, by which time no-one else had noticed the flight cancellation and I managed to get a seat on the Tuesday flight (tomorrow). The ash is now gone, the CAA have &lt;a href="http://www.caa.co.uk/application.aspx?catid=2011&amp;amp;pagetype=65&amp;amp;appid=41&amp;amp;mode=detail&amp;amp;nid=1881"&gt;relaxed the flying rules again&lt;/a&gt; and things are looking rosy.&lt;br /&gt;&lt;br /&gt;So what's next? Well, in June I'm visiting our New Jersey office just after the planned second batch of BA cabin crew strikes are due to finish. Well, &lt;i&gt;were&lt;/i&gt; due to finish. Now, BA have managed to &lt;a href="http://news.bbc.co.uk/1/hi/business/10119196.stm"&gt;get an injunction&lt;/a&gt; to prevent the strike going ahead as planned because the union screwed up the ballot (again)! I can already see what's going to happen; they'll take two weeks to re-run the ballot, then give BA a weeks notice of upcoming strikes, the second of which will coincide perfectly with my trip. D'oh!&lt;br /&gt;&lt;br /&gt;Oh well. I still love being paid to work on Postgres and pgAdmin; it would just be nice if the travel were a little less stressful :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-3614950830637363043?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/3614950830637363043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/05/vaguely-off-topic-tale-of-frustration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/3614950830637363043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/3614950830637363043'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/05/vaguely-off-topic-tale-of-frustration.html' title='A vaguely off-topic tale of frustration and nail biting: I hate flying!'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-937922021272500157</id><published>2010-05-07T20:40:00.001+01:00</published><updated>2010-05-25T09:11:34.018+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Postgres vs. SQL Server</title><content type='html'>A colleague of mine (thanks Jimbo!) pointed me towards a benchmark comparison of Postgres 8.3.8 on RHEL 5.4 versus SQL Server 2008 R2 on Windows Server 2008 R2, performed and written up by Red Hat. I hadn't seen it before, so figured that maybe others hadn't either:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.redhat.com/pdf/rhel/bmsql-postgres-sqlsrvr-v1.0-1.pdf"&gt;http://www.redhat.com/pdf/rhel/bmsql-postgres-sqlsrvr-v1.0-1.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Can't wait for the result? The elephant wins :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-937922021272500157?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/937922021272500157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/05/postgres-vs-sql-server.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/937922021272500157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/937922021272500157'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/05/postgres-vs-sql-server.html' title='Postgres vs. SQL Server'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-2718177339644986687</id><published>2010-04-09T20:45:00.001+01:00</published><updated>2010-04-09T20:45:33.548+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgadmin'/><title type='text'>pgAdmin demo video</title><content type='html'>Embracing the whole Web 2.0 thing, one of my cow-orkers has been playing with his Mac and produced a nice video walkthrough of pgAdmin, showing how to get started and use a variety of the &lt;a href="http://www.pgadmin.org/features.php"&gt;really cool features&lt;/a&gt; it has to offer Postgres users.&lt;br /&gt;&lt;br /&gt;So, at risk of this being my shortest blog post ever, &lt;a href="http://www.enterprisedb.com/learning/videos/Create_Postgres_Database_pgAdmin.do"&gt;here's the video&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Thanks Gary!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-2718177339644986687?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/2718177339644986687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/04/pgadmin-demo-video.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2718177339644986687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2718177339644986687'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/04/pgadmin-demo-video.html' title='pgAdmin demo video'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-1065659734769529969</id><published>2010-04-01T09:10:00.004+01:00</published><updated>2010-04-01T09:16:25.400+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Postgres 9.1 - Release Theme</title><content type='html'>&lt;div&gt;Following a great deal of discussion, I'm pleased to announce that the PostgreSQL Core team has decided that the major theme for the 9.1 release, due in 2011, will be 'NoSQL'.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There is a growing trend towards NoSQL databases, with major sites like Twitter and Facebook utilising them extensively. NoSQL databases often include multi-master replication, clustering and failover features that have long been requested in PostgresSQL, but have been extremely difficult to implement with SQL which has prevented us from advancing Postgree in the way that we'd like.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To address this, the intention is to remove SQL support from Postgres, and replace it with a language called 'QUEL'. This will provide us with the flexibility we need to implement the features of modern NoSQL databases. With no SQL support there will obviously be some differences in the query syntax that must be used to access your data. For example, the query:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;select (e.salary/ (e.age - 18)) as comp from employee as e where e.name = "Jones"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;would be rewritten as:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;range of e is employee retrieve (comp = e.salary/ (e.age - 18)) where e.name = "Jones"&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Aggregate syntax in QUEL is particularly powerful. For example, the query:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;select dept,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;      avg(salary) as avg_salary,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;      sum(salary) as tot_salary&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;from&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;      employees&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;group by&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;      dept&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;may be written as:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;range of e is employee&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;retrieve (e.dept,&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;         avg_salary = avg(e.salary by e.dept),&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;         tot_salary = sum(e.salary by e.dept)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Note that the grouped column can be specified for each individual aggregate.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We will be producing a comprehensive guide to the QUEL syntax to aid with application migration. We appreciate the difficulty that this change may cause some users, but feel we must embrace the NoSQL philosophy in order to remain "The world's most advanced Open Source&lt;/div&gt;&lt;div&gt;database"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;"There's no question that, at 21 years old, the SQL standard is past its prime," said core developer and standards expert Peter Eisentraut. "It's time for us to switch to something fresher.  I personally would have preferred XSLT, but QUEL is almost as good."&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Project committer Heikki Linnakangas added: "By replacing SQL with QUEL not only will will be able to add new features to Postgres that were previously too difficult, but we'll also increase user loyalty as it'll be much harder for them to change to a different, SQL-based &lt;/div&gt;&lt;div&gt;database. That'll be pretty cool."&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You may also notice that without SQL, the project name is somewhat misleading. To address that, the project name will be changed to 'PostgreQUEL' with the 9.1 release. We expect this will also put an end to the periodic debates on changing the project name.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dave Page&lt;/div&gt;&lt;div&gt;On behalf of the PostgreSQL Core Team&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-1065659734769529969?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/1065659734769529969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/04/postgres-91-release-theme.html#comment-form' title='36 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/1065659734769529969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/1065659734769529969'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/04/postgres-91-release-theme.html' title='Postgres 9.1 - Release Theme'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>36</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-9018299951267115939</id><published>2010-03-23T09:06:00.003Z</published><updated>2010-03-23T09:32:04.450Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Getting ready for PG East</title><content type='html'>After a stressful few weeks keeping a close eye on the &lt;a href="http://news.bbc.co.uk/1/hi/business/8579983.stm"&gt;BA cabin crew strike&lt;/a&gt;, it seems that my flight is still scheduled so I will be able to get to Philadelphia for &lt;a href="http://www.enterprisedb.com/community/nav-pg-east-2010.do"&gt;PG East 2010&lt;/a&gt; without having to use my insanely expensive refundable backup ticket with US Airways.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This years conference is in a new format, spread over three days with a fourth day of tutorials on the schedule, all at the rather nice R&lt;a href="http://www.radisson.com/philadelphiapa"&gt;adisson Plaza-Warwick Hotel&lt;/a&gt; in Philly, courtesy of my boss' budget here at &lt;a href="http://www.enterprisedb.com/"&gt;EnterpriseDB&lt;/a&gt; (OK, I'm done with the shameless company plugs :-p ). The schedule includes a good mix of topics with varying levels of technical detail for geeks through IT/IS management.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'll be presenting a new talk in which I'll describe the infrastructure behind postgresql.org, and how it's managed. If you've not been closely involved in a large Open Source project, you may be surprised at just how much there is - certainly far more than a webserver and mailing lists which are probably the most visible things.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway - I'm speaking on Thursday, so if you can get to Philly, it'd be great to see you there.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-9018299951267115939?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/9018299951267115939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/03/getting-ready-for-pg-east.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/9018299951267115939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/9018299951267115939'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/03/getting-ready-for-pg-east.html' title='Getting ready for PG East'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-4656067437536425910</id><published>2010-02-22T19:28:00.002Z</published><updated>2010-02-22T19:44:00.947Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>PostgreSQL Europe opens for general membership</title><content type='html'>After numerous emails, meetings in foreign lands and changes to the statutes, PostgreSQL Europe finally opened it's doors to new members today, of which I became the very first. Well, OK, technically I'm the fifth, as the elected board made up the first four, but I was the first non-elected, fee paying member.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So 'what's the point?' I hear you cry, and 'why should I part with my hard-earned cash?'. Well, joining PostgreSQL Europe costs €10 for 2 years &lt;a href="https://www.postgresql.eu/about/membership/"&gt;membership&lt;/a&gt;, which is a fraction of what some other groups charge. You won't get a postgresql.eu email address for your money, but you do get the chance &lt;a href="https://www.postgresql.eu/about/elections/"&gt;to vote&lt;/a&gt; for PostgreSQL Europe &lt;a href="https://www.postgresql.eu/about/board/"&gt;board members&lt;/a&gt; of your choosing, at the annual elections. Those four board members (who will become five after the upcoming elections) decide what events and activities the not-for-profit organisation will be involved in, and how to spend the money - what events should be sponsored, what swag should be purchased and so on.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Membership is open to anyone resident in geographical Europe (including all of Turkey and Russia), so if you want to join and play a part in the future of PostgreSQL, you can sign up on the &lt;a href="https://www.postgresql.eu/membership/"&gt;postgresql.eu website&lt;/a&gt;. Don't leave it too long though - you need to be a member for at least a month to be eligible to vote in future elections.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-4656067437536425910?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/4656067437536425910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/02/postgresql-europe-opens-for-general.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/4656067437536425910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/4656067437536425910'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/02/postgresql-europe-opens-for-general.html' title='PostgreSQL Europe opens for general membership'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-7928246285138188734</id><published>2010-02-18T15:58:00.003Z</published><updated>2010-02-18T16:19:39.925Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>PostgreSQL - now with added Open Source!</title><content type='html'>Some of you may be aware that some time ago, Redhat's legal team changed the description of the PostgreSQL licence (yes, that is correct where I live - please don't email me to tell me I can't spell) from BSD to MIT. After doing some poking around (it helps when your boss's boss is an ex-Redhat exec) it transpired that they considered that our licence looked a lot more like the MIT licence than BSD.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's true that ours doesn't look like the traditional &lt;a href="http://www.opensource.org/licenses/bsd-license.php"&gt;BSD 3 or 4 clause licences&lt;/a&gt; - some people had already spotted that, but as it came from Berkeley we always just considered it to be a variant on the &lt;a href="http://www.freebsd.org/copyright/freebsd-license.html"&gt;simplified BSD licence&lt;/a&gt;. The long and short of it was that lawyers said "no they're not the same", and we said "well it sure ain't MIT" and much discussion ensued.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The solution it seemed, was to try to get our licence recognised and approved by the &lt;a href="http://www.opensource.org/"&gt;Open Source Initiative&lt;/a&gt;. I originally tried to do it as an official BSD variant, but that wasn't accepted. I then resubmitted it as 'The PostgreSQL License" (yes, I know :-p), which was rejected as it wasn't a generic licence (OSI are trying to ensure that all new licences are resuable). Finally, I submitted it again with placeholders replacing the project name and copyright holder info, and nearly two months later, it's approved!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So there you have it ladies and gents. "The world's most advanced database with freely available source code" now actually is, officially, The world's most advanced Open Source database"!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-7928246285138188734?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/7928246285138188734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/02/postgresql-now-with-added-open-source.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7928246285138188734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7928246285138188734'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/02/postgresql-now-with-added-open-source.html' title='PostgreSQL - now with added Open Source!'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-2751819940161586900</id><published>2010-02-18T13:24:00.003Z</published><updated>2010-02-18T13:54:42.627Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Speaking at PG East</title><content type='html'>If you've been involved in the PostgreSQL project at all in the last few years, you'll know that &lt;a href="http://www.commandprompt.com/blogs/joshua_drake/"&gt;Josh Drake&lt;/a&gt; has been organising the &lt;a href="http://www.postgresqlconference.org/"&gt;PG East and PG West conference series&lt;/a&gt; since 2007. When we met in Paris at PGDay.EU, JD suggested that I submit a talk for East in March.&lt;br /&gt;&lt;br /&gt;Which I did.&lt;br /&gt;&lt;br /&gt;Which got accepted.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So now I'm travelling to Philadelphia in March :-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since we spoke though, the crack marketing team here at &lt;a href="http://www.enterprisedb.com/"&gt;EnterpriseDB&lt;/a&gt; contacted JD and between them hatched a plan to make East the most impressive PostgreSQL conference to date. It'll be held over four days, at the Radisson Plaza - Warwick Hotel in Philadelphia, from March 25th to 28th and will include content for C-level execs and decision makers, as well as the regular crowd of database geeks like me. Of course, there will also be the traditional EnterpriseDB Party on the Friday night - if you haven't been to one of those yet, now's the perfect time to see what you've been &lt;a href="http://mha.smugmug.com/Conferences/PostgreSQL/PGcon-2008/4996271_oHxtB#300129283_ShZVr"&gt;missing out on&lt;/a&gt;!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So if you've been toying with the idea of going to a PostgreSQL conference, this is the perfect time to give into the urge and join us in Philly for &lt;a href="http://www.postgresqlconference.org/2010/east/talks"&gt;database talk&lt;/a&gt;, beer and cheese-steak sandwiches. Mmmmm, cheese-steak....&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-2751819940161586900?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/2751819940161586900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/02/speaking-at-pg-east.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2751819940161586900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2751819940161586900'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/02/speaking-at-pg-east.html' title='Speaking at PG East'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-8068447311333837651</id><published>2010-02-08T14:59:00.009Z</published><updated>2010-02-10T17:02:36.854Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>FOSDEM 2010</title><content type='html'>Well, &lt;a href="http://fosdem.org/2010"&gt;FOSDEM 2010&lt;/a&gt; is now over and it all seemed to go pretty well. The PostgreSQL Project was represented well (as one would hope for our second biggest annual European gathering), with the majority of the Hotel Agenda Louise seemingly occupied by database geeks.&lt;br /&gt;&lt;br /&gt;On the Friday night we had a database dinner at &lt;a href="http://www.les-brasseurs.com/en/info.html"&gt;Les Brasseurs de la Grand Place&lt;/a&gt; where we were joined by Sergey Petrunya and Kristian Nielsen from MariaDB. Good conversation, good beer and good food followed later by an aborted attempt to join the FOSDEM Beer Event at Cafe Delirium (it was just too busy) and a successful landing at the Irish pub a short walk from the Hotel.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_5d50ZFJBYts/S3AsbKs2qmI/AAAAAAAAACA/wfAq_StCODo/s1600-h/brasseurs.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://1.bp.blogspot.com/_5d50ZFJBYts/S3AsbKs2qmI/AAAAAAAAACA/wfAq_StCODo/s320/brasseurs.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5435893595476765282" /&gt;&lt;/a&gt;&lt;br /&gt;Saturday morning was the start of the conference itself. We'd hoped to scrounge an extra table (much needed, with the number of people and the amount of swag we had), but unfortunately that didn't work out. Somehow, we managed to squeeze onto one.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_5d50ZFJBYts/S3Asr79plxI/AAAAAAAAACI/7isffiI3j3Y/s1600-h/booth.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://3.bp.blogspot.com/_5d50ZFJBYts/S3Asr79plxI/AAAAAAAAACI/7isffiI3j3Y/s320/booth.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5435893883578455826" /&gt;&lt;/a&gt;&lt;br /&gt;The talks started at 1PM in our dev room (which we only had for Saturday afternoon unfortunately). Magnus and Jean-Paul started with report on the state of PostgreSQL Europe, and then it was my turn with my talk on "Developments in PostgreSQL 9.0". Slides and the full schedule can be found on the &lt;a href="http://wiki.postgresql.org/wiki/FOSDEM%2C_Brussels_2010"&gt;PostgreSQL Wiki&lt;/a&gt;. The dev room was basically packed solid with people sitting on the floor for every talk. Please FOSDEM organisers - give us a bigger room next year!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_5d50ZFJBYts/S3AuLhCEM3I/AAAAAAAAACQ/3RLGqfNx3f4/s1600-h/talk.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/_5d50ZFJBYts/S3AuLhCEM3I/AAAAAAAAACQ/3RLGqfNx3f4/s320/talk.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5435895525616661362" /&gt;&lt;/a&gt;&lt;br /&gt;Saturday night was a late dinner at possibly the slowest restaurant in the world, who clearly weren't expecting too many diners. Food wasn't too bad though, when it finally arrived.&lt;br /&gt;&lt;br /&gt;Sunday was spent mostly on the booth and (in my case) in lots of ad-hoc meetings on topics such as the new PostgreSQL project infrastructure thats in development, as well as PGDay.EU 2010 which is being planned in Amsterdam.&lt;br /&gt;&lt;br /&gt;Most of us left at around 5PM, with Heikki, Greg, Magnus, Stefan and I heading for the airport. After pizza and a brief scare when Stefan lost his boarding pass, we left for home. Goodbye Brussels, see you next year.&lt;br /&gt;&lt;br /&gt;More photos can be found &lt;a href="http://pgsnake.smugmug.com/Conferences/FOSDEM-2010/11179750_L5RjY#783792142_2snSz"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-8068447311333837651?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/8068447311333837651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2010/02/fosdem-2010.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/8068447311333837651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/8068447311333837651'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2010/02/fosdem-2010.html' title='FOSDEM 2010'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_5d50ZFJBYts/S3AsbKs2qmI/AAAAAAAAACA/wfAq_StCODo/s72-c/brasseurs.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-1440903184944912056</id><published>2009-12-16T14:07:00.004Z</published><updated>2009-12-16T14:18:06.742Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>Kerberos support in PostgreSQL on Windows</title><content type='html'>We recently received a report of some automated security scanning software red-flagging the Kerberos DLLs that ship with the PostgreSQL installers for Windows. This blog post is an analysis of the impact of know vulnerabilities in Kerberos, and how they relate to PostgreSQL, and what we're doing about them.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PostgreSQL 8.3.x and 8.4.x&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;PostgreSQL 8.3 and 8.4 are built using Kerberos for Windows (KfW) 3.2.2 which is based on the Kerberos 1.6.3 package. This is the latest version of Kerberos for Windows that is currently available from MIT.&lt;br /&gt;&lt;br /&gt;The vulnerabilities that were reported by the security scanning tool were:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-0062"&gt;CVE-2008-0062&lt;/a&gt; and &lt;a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-0063"&gt;CVE-2008-0063&lt;/a&gt;. These are bugs in the KDC server which are exposed if Kerberos 4 is enabled on a v5 KDC. As we don't ship the KDC software with PostgreSQL, these bugs do not apply.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-0947"&gt;CVE-2008-0947&lt;/a&gt; and &lt;a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-0948"&gt;CVE-2008-0948&lt;/a&gt;. These are bugs in &lt;span style="font-style: italic;"&gt;kadmind&lt;/span&gt;, the Kerberos Administration Server. We don't ship this either, so like the previous bugs, these do not apply to PostgreSQL.&lt;br /&gt;&lt;br /&gt;What the scanning tool didn't report, was a fifth vulnerability which does potentially affect PostgreSQL users:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-0846"&gt;CVE-2009-0846&lt;/a&gt;. This issue is described as: &lt;span style="font-style: italic;"&gt;The asn1_decode_generaltime() function, which decodes DER encodings of the ASN.1 type "GeneralizedTime", can free an uninitialized pointer. This can cause a Kerberos application to crash, or, under theoretically possible but unlikely circumstances, execute arbitrary malicious code.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As mentioned above, we currently ship the latest version of Kerberos with PostgreSQL. As soon as MIT update the Kerberos for Windows package to include Kerberos 1.6.4 (which does not have this issue), we will update the PostgreSQL build servers.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PostgreSQL 8.2.x&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;PostgreSQL 8.2 is built using Kerberos for Windows (KfW) 2.6.5 which is based on the Kerberos 1.3.5 package. This is the most recent version of Kerberos for Windows v2.6.x that is available from MIT and is no longer being maintained.&lt;br /&gt;&lt;br /&gt;This version of Kerberos is believed to be vulnerable to the issue noted above (&lt;a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-0846"&gt;CVE-2009-0846&lt;/a&gt;), as well as &lt;a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2005-1689"&gt;CVE-2005-1689&lt;/a&gt;, which describes a double-free bug in the &lt;span style="font-style: italic;"&gt;krb5_recvauth&lt;/span&gt; function (but was not noted by the scanning tool that started this exercise)!&lt;br /&gt;&lt;br /&gt;Updating Kerberos for Windows to version 3.2.2 in the PostgreSQL 8.2 distribution is the only way we can work around this issue, however, this is not as simple as it might sound as the distribution has changed in structure thus requiring modifications to the PostgreSQL installer to accommodate additional DLLs as well as any application installers that our users may have built around their libpq-based applications.&lt;br /&gt;&lt;br /&gt;Because of the potential disruption to users and software developers for the sake of a feature used by such a small percentage of users, we have decided not to update the PostgreSQL 8.2 installer with the newer Kerberos packages but instead to recommend &lt;span style="font-weight: bold;"&gt;users of PostgreSQL 8.2 on Windows who wish to use Kerberos plan to upgrade their installations to PostgreSQL 8.3 or 8.4 as soon as possible. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-1440903184944912056?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/1440903184944912056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/12/kerberos-support-in-postgresql-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/1440903184944912056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/1440903184944912056'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/12/kerberos-support-in-postgresql-on.html' title='Kerberos support in PostgreSQL on Windows'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-2699231924058035442</id><published>2009-12-07T10:50:00.003Z</published><updated>2009-12-07T11:18:03.604Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>New PostgreSQL Committers</title><content type='html'>Just a few minutes ago I posted the announcement below, telling the world that we've added some new committers to the PostgreSQL project. The project is &lt;span style="font-weight: bold;"&gt;extremely&lt;/span&gt; conservative when it comes to the source code as we're completely paranoid about breaking anything, however some have argued that we're perhaps &lt;span style="font-style: italic;"&gt;too&lt;/span&gt; careful in this regard, and that our conservatism may actually be a bottleneck to the project.&lt;br /&gt;&lt;br /&gt;Whilst the actual act of committing a change certainly isn't a bottleneck (after all, how long does it take to type 'cvs commit -m "Cool new feature from Joe"'?), the real bottleneck is in the review process, part of which involves one of our committers taking ownership of each patch, and guiding it through the final stages of the process. As patches become more and more complex, that can take more and more time - for (an extreme) example, Heikki has been reviewing Simon's Hot Standby patch for over a year now, as they refine the design and get it to a state where its ready to be committed to the main source tree. Of course, once a patch is committed, that's not necessarily the end. The committers will also take care of any post-commit cleanup, or other problems that may become apparent with any change, such as portability issues which may be highlighted by the &lt;a href="http://www.pgbuildfarm.org/"&gt;buildfarm&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;By increasing the pool of committers, we hope to ease that problem, and speed up the final stages involved in getting changes into PostgreSQL - and as all the new committers are experts with the PostgreSQL source code and work consistently to very high standards we're absolutely certain that the project's high standards will be maintained.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;On behalf of the core team, I'm pleased to announce that the PostgreSQL Project has expanded it's team of "committers", those people who are able to make direct changes to the PostgreSQL source code respository. As the project is extremely conservative about any changes made to the source code to minimise the risk of introducing any bugs, commit access is only given to contributors who have consistently shown they work to a very high standard and have shown commitment to the project.&lt;br /&gt;&lt;br /&gt;The new committers are:&lt;br /&gt;&lt;br /&gt;Robert Haas: Robert developed the commitfest.postgresql.org website which is used to manage the process by which features are added to PostgreSQL. He has twice acted as commitfest manager, and submitted numerous patches such as join removal, auto-generation of headers &amp;amp; bki files and the TRUNCATE privilege.&lt;br /&gt;&lt;br /&gt;Simon Riggs: Simon is well know for working on large enterprise features for PostgreSQL, including Point In Time Recovery and partitioning. Simon is currently working on allowing PITR slave servers to be used for read-only queries.&lt;br /&gt;&lt;br /&gt;Greg Stark: Greg has worked on low-level features in PostgreSQL, including asynchronous pre-fetching of data and packed variable length data types. Greg was also responsible for the CREATE INDEX CONCURRENTLY feature.&lt;br /&gt;&lt;br /&gt;ITAGAKI Takahiro: ITAGAKI-san has worked on countless patches for PostgreSQL, both fixing bugs and writing new features, recently including WHEN clauses for triggers, a buffer usage feature for EXPLAIN and a new implementation of VACUUM FULL.&lt;br /&gt;&lt;br /&gt;Congratulations!&lt;hr /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-2699231924058035442?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/2699231924058035442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/12/new-postgresql-committers.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2699231924058035442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2699231924058035442'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/12/new-postgresql-committers.html' title='New PostgreSQL Committers'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-2172632321426826901</id><published>2009-12-04T16:36:00.007Z</published><updated>2009-12-04T16:44:52.745Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>PostgreSQL Release Support Policy</title><content type='html'>We finally came up with a support lifecycle policy for PostgreSQL. The 'official' version can be found &lt;a href="http://wiki.postgresql.org/wiki/PostgreSQL_Release_Support_Policy"&gt;on the wiki&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It's pretty straightforward though, and reads as follows:&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;The PostgreSQL project aims to fully support a major release for &lt;b&gt;five years&lt;/b&gt;.&lt;br /&gt;&lt;p&gt;After a release falls out of full support, we may (at our committer's discretion) continue to apply further critical fixes to the source code, on a best-effort basis.  No formal releases or binary packages will be produced by the project, but the updated source code will be available from our source code control system.&lt;/p&gt;&lt;p&gt;This policy will be followed on a best-effort basis. In extreme cases it may not be possible to support a release for the planned lifetime; for example if a serious bug is found that cannot be resolved in a given major version without significant risk to the stability of the code or loss of application compatibility. In such cases, early retirement of a major version may be required.&lt;br /&gt;&lt;/p&gt;&lt;b&gt;End Of Life (EOL) dates&lt;/b&gt;&lt;table border="1" cellpadding="2" cellspacing="0"&gt;&lt;tr&gt;&lt;th&gt;Version&lt;/th&gt;&lt;th&gt;EOL Date&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PostgreSQL 7.4&lt;/td&gt;&lt;td&gt;July 2010 (extended)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PostgreSQL 8.0&lt;/td&gt;&lt;td&gt;July 2010 (extended)&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PostgreSQL 8.1&lt;/td&gt;&lt;td&gt;November 2010&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PostgreSQL 8.2&lt;/td&gt;&lt;td&gt;December 2011&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PostgreSQL 8.3&lt;/td&gt;&lt;td&gt;February 2013&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;PostgreSQL 8.4&lt;/td&gt;&lt;td&gt;July 2014&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;hr /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-2172632321426826901?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/2172632321426826901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/12/postgresql-release-support-policy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2172632321426826901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2172632321426826901'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/12/postgresql-release-support-policy.html' title='PostgreSQL Release Support Policy'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-6290556318293195609</id><published>2009-12-04T15:55:00.003Z</published><updated>2009-12-04T16:07:32.749Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgadmin'/><title type='text'>pgAdmin 1.10.1 released</title><content type='html'>&lt;a href="http://www.pgadmin.org/"&gt;pgAdmin&lt;/a&gt; 1.10.1 has now been released. A source tarball, and builds for Windows and Mac OS X are now available in the &lt;a href="http://www.pgadmin.org/download"&gt;downloads area&lt;/a&gt; of the website - expect additional distributions to become available over the next few days.&lt;br /&gt;&lt;br /&gt;pgAdmin is the leading Open Source GUI interface to &lt;a href="http://www.postgresql.org/"&gt;PostgreSQL&lt;/a&gt;, and can be used on Windows, Mac OS X, Linux, Solaris and FreeBSD.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5d50ZFJBYts/SxkyvieidHI/AAAAAAAAAB4/ZTUBwT3oPv0/s1600-h/Screen+shot+2009-12-04+at+16.02.46.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 267px;" src="http://4.bp.blogspot.com/_5d50ZFJBYts/SxkyvieidHI/AAAAAAAAAB4/ZTUBwT3oPv0/s320/Screen+shot+2009-12-04+at+16.02.46.png" alt="" id="BLOGGER_PHOTO_ID_5411412219552494706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This is a bug fix release, including the following changes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Replace Alt-F4 with Ctrl-Q and Ctrl-W.&lt;/li&gt;&lt;li&gt;Prevent a crash if the edit grid is closed whilst it is loading data.&lt;/li&gt;&lt;li&gt;Don't attempt to remove rows in the edit grid if the user presses the delete key when the delete button is disabled.&lt;/li&gt;&lt;li&gt;Only offer valid server encodings for new databases.&lt;/li&gt;&lt;li&gt;Fix font dialogue on Snow Leopard.&lt;/li&gt;&lt;li&gt;Fix an issue with the ordering of the mappings in a text search configuration.&lt;/li&gt;&lt;li&gt;Fix a potential crash bug in the object browser.&lt;/li&gt;&lt;li&gt;Reverse engineer empty (not NULL) ACLs correctly.&lt;/li&gt;&lt;li&gt;Fix Greenplum support for column oriented partitions.&lt;/li&gt;&lt;li&gt;Ensure function variables get reset if the function is modified.&lt;/li&gt;&lt;li&gt;Fix cluster creation for Slony 2.0.&lt;/li&gt;&lt;li&gt;Reverse engineer function defaults values correctly.&lt;/li&gt;&lt;li&gt;Fix a potential crash in the edit grid.&lt;/li&gt;&lt;li&gt;Fix domain creation/modification for domains in non-default schemas.&lt;/li&gt;&lt;li&gt;Reverse engineer language privileges correctly.&lt;/li&gt;&lt;li&gt;Get rid of "No SQL query was generated." message dialog when no tables are selected in the GQB.&lt;/li&gt;&lt;li&gt;Hints files should be encoded in UTF-8.&lt;/li&gt;&lt;li&gt;Include comments on procedures in the reverse engineered SQL.&lt;/li&gt;&lt;li&gt;Fix debugger name resolution on 64 bit Solaris.&lt;/li&gt;&lt;li&gt;Fix Slony cluster creation on Solaris.&lt;/li&gt;&lt;li&gt;Fix foreign key creation on Solaris.&lt;/li&gt;&lt;li&gt;Fix an SQL syntax error when viewing the dependencies of a sequence.&lt;/li&gt;&lt;li&gt;Fix saving of macros.&lt;/li&gt;&lt;li&gt;Better fix for schedule and step dialogs.&lt;/li&gt;&lt;li&gt;Fix the menu entry in frmQuery.&lt;/li&gt;&lt;li&gt;Fix the dlgFunction handling of preload libraries.&lt;/li&gt;&lt;li&gt;Fix schedule and step dialogs.&lt;/li&gt;&lt;li&gt;Fix error thrown when examining a Slony 2.x cluster.&lt;/li&gt;&lt;/ul&gt;Happy upgrading!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-6290556318293195609?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/6290556318293195609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/12/pgadmin-1101-released.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/6290556318293195609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/6290556318293195609'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/12/pgadmin-1101-released.html' title='pgAdmin 1.10.1 released'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5d50ZFJBYts/SxkyvieidHI/AAAAAAAAAB4/ZTUBwT3oPv0/s72-c/Screen+shot+2009-12-04+at+16.02.46.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-2859726994736502942</id><published>2009-12-03T13:18:00.000Z</published><updated>2009-12-03T13:19:16.371Z</updated><title type='text'>PostgreSQL@FOSDEM 2010 - Call for talks</title><content type='html'>&lt;a href="http://www.fosdem.org/2010/"&gt;FOSDEM&lt;/a&gt; is a major Free and Open Source event held annually in Brussels, Belgium, and attended by around 4000 people. As in recent years, the PostgreSQL project will have a devroom where we will be presenting a number of talks. The event will be held on the 6 - 7th February 2010.&lt;br /&gt;&lt;br /&gt;We're looking for developers, users and contributors to submit talks for inclusion on the program. Any topic related to PostgreSQL is acceptable as long as it is non-commercial in nature. Suggested topics might include:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Migration of systems to PostgreSQL&lt;br /&gt;&lt;li&gt;Application development&lt;br /&gt;&lt;li&gt;Benchmarking and tuning&lt;br /&gt;&lt;li&gt;Spatial applications&lt;br /&gt;&lt;li&gt;Hacking the code&lt;br /&gt;&lt;li&gt;Data warehousing&lt;br /&gt;&lt;li&gt;New features&lt;br /&gt;&lt;li&gt;Tips and tricks&lt;br /&gt;&lt;li&gt;Replication&lt;br /&gt;&lt;li&gt;Case studies&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;We will have a number of 45 minutes slots, and may split one or more into 3 back-to-back 15 minute slots if we receive suitable proposals.&lt;br /&gt;&lt;br /&gt;Please submit your proposals to:&lt;br /&gt;&lt;br /&gt;&lt;a href="mailto:fosdem@postgresql.eu"&gt;fosdem@postgresql.eu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;and include the following information:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Your name&lt;br /&gt;&lt;li&gt;The title of your talk (please be descriptive, as titles will be listed with ~250 from other projects)&lt;br /&gt;&lt;li&gt;A short abstract of one to two paragraphs&lt;br /&gt;&lt;li&gt;A short biography introducing yourself&lt;br /&gt;&lt;li&gt;Links to related websites/blogs etc.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;The deadline for submissions is 22nd December 2009.&lt;br /&gt;&lt;br /&gt;See you in Brussels!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-2859726994736502942?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/2859726994736502942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/12/postgresqlfosdem-2010-call-for-talks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2859726994736502942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2859726994736502942'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/12/postgresqlfosdem-2010-call-for-talks.html' title='PostgreSQL@FOSDEM 2010 - Call for talks'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-1981245976486153257</id><published>2009-11-28T10:50:00.006Z</published><updated>2009-11-28T11:07:04.826Z</updated><title type='text'>JPUG 10th Anniversary conference pics</title><content type='html'>I finally got my photos from the &lt;a href="http://www.postgresql.jp/events/pgcon09j/e/pgcon2009j/"&gt;JPUG 10th Anniversary conference&lt;/a&gt; in Tokyo online. Most are actually from the events before and after the actual conference which involved some sightseeing, and lots of discussions of PostgreSQL on topics such as infrastructure issues and server virtualisation, how to be more supportive of new developers, and how to make MERGE work nicely with the PostgreSQL rules system.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://pgsnake.smugmug.com/Conferences/JPUG-10th-Anniversary-1/10452526_xYLnG/1/725097551_U65tt"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://pgsnake.smugmug.com/Conferences/JPUG-10th-Anniversary-1/Breakfast-Sushi-at-6AM/725110988_iak9R-L.jpg" alt="Breakfast sushi at 6AM!" border="0" /&gt;&lt;/a&gt;After hitting the limits on my free Flickr account I figured it was time to move to Smugmug, so you can find the full set of pics &lt;a href="http://pgsnake.smugmug.com/Conferences/JPUG-10th-Anniversary-1/10452526_xYLnG/1/725097551_U65tt"&gt;over there&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Thanks again to all the JPUG folks for an exceptional conference!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-1981245976486153257?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/1981245976486153257/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/11/jpug-anniversary-conference-pics.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/1981245976486153257'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/1981245976486153257'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/11/jpug-anniversary-conference-pics.html' title='JPUG 10th Anniversary conference pics'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-8005382244461833576</id><published>2009-11-05T07:49:00.003Z</published><updated>2009-11-05T08:03:03.743Z</updated><title type='text'>Are you ready for PGDay.eu 2009?</title><content type='html'>&lt;a href="http://2009.pgday.eu/start"&gt;PGDay.eu 2009&lt;/a&gt; starts tomorrow morning, at Telecom ParisTech in Paris, France. A few of us are here already to make sure the local bars and restaurants are suitable for the discerning PostgreSQL hacker or user, and in our spare time finishing our preparations for the &lt;a href="http://2009.pgday.eu/schedule"&gt;great lineup of talks&lt;/a&gt; and and general 'get together' of Postgres people.&lt;br /&gt;&lt;br /&gt;One thing that we haven't yet announced, is the almost traditional &lt;a href="http://www.enterprisedb.com/"&gt;EnterpriseDB&lt;/a&gt; Party. This year it will be at Acrobates et Funambules, which is just a minutes walk from the conference venue at 204, Rue de Tolbiac,   75013 Paris, immediately following the conference on Friday. Due to the way the venue likes to operate, we'll be giving out tokens to exchange for drinks during the day at the conference. Hors d'oeuvres will also be served.&lt;br /&gt;&lt;br /&gt;See you there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-8005382244461833576?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/8005382244461833576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/11/are-you-ready-for-pgdayeu-2009.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/8005382244461833576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/8005382244461833576'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/11/are-you-ready-for-pgdayeu-2009.html' title='Are you ready for PGDay.eu 2009?'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-331221468718899734</id><published>2009-10-22T16:39:00.000+01:00</published><updated>2009-10-22T16:40:10.704+01:00</updated><title type='text'>PGDay.EU 2009 - registration deadline extended</title><content type='html'>I'm pleased to announce that the registration deadline for PGDay.EU 2009 on November 6th &amp;amp; 7th in Paris has been extended to the 31st October, allowing attendees an extra eight days to benefit from the cheapest pricing. Attendees registering after the 31st October will be charged the 'on the door' price.&lt;br /&gt;&lt;br /&gt;This is possible thanks to the generous support of our sponsors:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2009.pgday.eu/sponsors" target="_blank"&gt;http://2009.pgday.eu/sponsors&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For more information on the conference, including the talk schedule and registration and travel information, please visit the website at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2009.pgday.eu/" target="_blank"&gt;http://2009.pgday.eu/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;See you in Paris!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-331221468718899734?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/331221468718899734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/10/pgdayeu-2009-registration-deadline.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/331221468718899734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/331221468718899734'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/10/pgdayeu-2009-registration-deadline.html' title='PGDay.EU 2009 - registration deadline extended'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-2968047873294148095</id><published>2009-10-20T12:15:00.000+01:00</published><updated>2009-10-22T16:39:16.250+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgday'/><category scheme='http://www.blogger.com/atom/ns#' term='postgresql'/><title type='text'>PGDay.EU 2009 - approaching fast!</title><content type='html'>PGDay.EU 2009 is approaching fast - have you registered yet?&lt;br /&gt;&lt;br /&gt;Europe's premier PostgreSQL conference organised by PostgreSQL Europe and PostgreSQLfr will be held on November 6th and 7th at ParisTech Telecom in Paris, France. With an outstanding lineup of talks over the two days of the event, with tracks in English and French, this is the must-attend PostgreSQL conference this year!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2009.pgday.eu/start" target="_blank"&gt;http://2009.pgday.eu/start&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Speakers will include well known community members and developers such as Simon Riggs, Gavin M. Roy, Gabriele Bartolini, Dimitri Fontaine, Joshua Drake and Guillaume Lelarge speaking on a wide range of topics. The full schedule can be seen at &lt;a href="http://2009.pgday.eu/schedule" target="_blank"&gt;http://2009.pgday.eu/schedule&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you are planning on attending, please register as soon as possible at &lt;a href="http://2009.pgday.eu/register" target="_blank"&gt;http://2009.pgday.eu/register&lt;/a&gt;. Early registration will help us ensure you get a T-Shirt and conference goodies!&lt;br /&gt;&lt;br /&gt;Details of the venue and hotels in the local area can also be found on the conference website. If you have yet to book your accommodation, I would suggest doing so as soon as possible as Paris is quite busy at this time of year.&lt;br /&gt;&lt;div class="im"&gt;&lt;br /&gt;See you in Paris!&lt;/div&gt;&lt;a href="http://2009.pgday.eu/start" target="_blank"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-2968047873294148095?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/2968047873294148095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/10/pgdayeu-2009-approaching-fast.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2968047873294148095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2968047873294148095'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/10/pgdayeu-2009-approaching-fast.html' title='PGDay.EU 2009 - approaching fast!'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-430720854558986965</id><published>2009-08-23T12:36:00.002+01:00</published><updated>2009-08-23T12:45:47.348+01:00</updated><title type='text'>StackBuilder application updates (again!)</title><content type='html'>Some more StackBuilder application updates, hot off the build servers:&lt;br /&gt;&lt;br /&gt;First up is libpq64, which is a new installer offering a 64 bit build of libpq for use with Win64 applications. For &lt;a href="http://www.postgresql.org/docs/faqs.FAQ_windows.html#1.4"&gt;various reasons&lt;/a&gt;, we don't currently have a Win64 port of Postgres, but this package allows you to interface with Postgres from your own 64 bit applications.&lt;br /&gt;&lt;br /&gt;Secondly, we have updates to PostGIS. &lt;a href="http://www.postgresonline.com/journal/"&gt;Leo &amp;amp; Regina&lt;/a&gt; from the PostGIS community have taken over maintenance of the PostGIS Windows installer from Mark Cave-Ayland and have built PostGIS 1.4.0 for PostgreSQL 8.3 and 8.4.&lt;br /&gt;&lt;br /&gt;Finally, a PostGIS 1.4 installer for PostgreSQL 8.4 is also now available for Mac and Linux 32/64bit courtesy of the guys in the EnterpriseDB installer team.&lt;br /&gt;&lt;br /&gt;As always, enjoy :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-430720854558986965?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/430720854558986965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/08/stackbuilder-application-updates-again.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/430720854558986965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/430720854558986965'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/08/stackbuilder-application-updates-again.html' title='StackBuilder application updates (again!)'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-4060138156585366375</id><published>2009-08-10T10:46:00.003+01:00</published><updated>2009-08-10T10:53:27.263+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stackbuilder'/><title type='text'>StackBuilder application updates</title><content type='html'>Yikes, it's been a while since my last post. Well part of the reason for that is that I forgot to mention the last set of updates we published for &lt;a href="http://pgsnake.blogspot.com/2008/11/more-stackbuilder-apps-available-for.html"&gt;StackBuilder&lt;/a&gt; at the end of last month. Sorry 'bout that. Anyway, hot on the heels of those, we have some more updates, fresh from the QA folks here at EnterpriseDB, so here's the combined list of updated packages:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ApachePHP 2.2.11-5.2.9-2&lt;/li&gt;&lt;li&gt;Drupal 6.12-1&lt;/li&gt;&lt;li&gt;MediaWiki 1.15.0-1&lt;/li&gt;&lt;li&gt;phpBB 3.0.5-1&lt;/li&gt;&lt;li&gt;EnterpriseDB Tuning Wizard for PostgreSQL 1.3-1&lt;/li&gt;&lt;li&gt;EnterpriseDB MySQL -&gt; PostgreSQL Migration Wizard 1.1-2&lt;/li&gt;&lt;li&gt;PostgreSQL JDBC drivers 8.4-701-1&lt;/li&gt;&lt;li&gt;PostgreSQL ODBC drivers (psqlODBC) 08.04.0100-1&lt;/li&gt;&lt;li&gt;PostgreSQL .NET drivers (Npgsql) 2.0.5-1&lt;/li&gt;&lt;li&gt;Slony for PostgreSQL 8.4.x 2.0.2-1&lt;/li&gt;&lt;/ul&gt;As always, enjoy :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-4060138156585366375?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/4060138156585366375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/08/stackbuilder-application-updates.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/4060138156585366375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/4060138156585366375'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/08/stackbuilder-application-updates.html' title='StackBuilder application updates'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-5252047208377149418</id><published>2009-05-22T07:36:00.002+01:00</published><updated>2009-05-22T07:43:51.532+01:00</updated><title type='text'>After the EDB party...</title><content type='html'>Well, it's that time of year again, when I make an ill-advised post immediately following the EnterpriseDB party whilst full of beer at 2:30AM!&lt;br /&gt;&lt;br /&gt;After some excellent talks today, as well as our &lt;a href="http://pgsnake.blogspot.com/2009/05/pgcon-2009-day-1.html"&gt;keynote&lt;/a&gt; - which seemed to be well received, if not that polished, we held the usual conference party. As I mentioned in a previous post (which I can't be bothered to link to right now), we held it in the Velvet Room on the Byward Market again, this time without the dueling pianos. The venue staff laid on two buffets this year so we weren't all crammed in the room upstairs - they told me just before we left that we had 70 downstairs and 70 upstairs for dinner! That seems like a pretty good turnout to me :-)&lt;br /&gt;&lt;br /&gt;Anyway, I need to get some sleep now, as much to Greg's disgust, it's breakfast at 9AM with Magnus &amp;amp; Selena. Laterz....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-5252047208377149418?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/5252047208377149418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/05/after-edb-party.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/5252047208377149418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/5252047208377149418'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/05/after-edb-party.html' title='After the EDB party...'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-2296659561885228519</id><published>2009-05-21T12:20:00.002+01:00</published><updated>2009-05-21T12:38:43.768+01:00</updated><title type='text'>PGCon 2009 - Day 1</title><content type='html'>Yesterday was the first full day for me at PGCon here in Ottawa. After quite a few beers upon arrival on Tuesday evening, the quiet serenity of the &lt;a href="http://wiki.postgresql.org/wiki/PgCon_2009_Developer_Meeting"&gt;Developer Meeting&lt;/a&gt; seemed like it would be the perfect way to unwind. Following weeks of planning (mainly on Greg's part), the Novotel proved to be an excellent venue, with a nice room, AV equipment that just worked, and some interesting food (popcorn, fruit pizza or candyfloss anyone?). We had 24 hackers there in person, and were joined by Suzuki-san, Shimogaki-san and Takahiro-san (from NTT) on the phone - who were with us from something like 10PM to 6AM their time - and Simon Riggs via Skype. The minutes will be posted on the wiki as soon as Josh Berkus is able to write them up from his notes, but in short, we had a number of fruitful discussions on various topics. Certainly a successful meeting in my mind.&lt;br /&gt;&lt;br /&gt;After we left the Novotel, Selena, Magnus and I headed to Don Cherries to work on our slides. I had a text from Magnus just before I left the UK, telling me we were doing the keynote. Of course, I put it down to too much beer on his art, but it turns out we did manage to get conned into doing the talk, so figured we'd better come up with something to talk about. It's only a short slot, so I shouldn't be able to embarress myself too much hopefully.&lt;br /&gt;&lt;br /&gt;Finished off the evening with a quick beer with Denis, Jimbo and Scottie from EDB and Gavin, Jonah and Michael from MyYearbook.com, before heading off to Colonade Pizza for pizza and a couple more beers with a few of the usual suspects, courtesy of Paul, head honcho at the &lt;a href="http://www.pythian.com/"&gt;Pythian Group&lt;/a&gt;. Thanks Paul!&lt;br /&gt;&lt;br /&gt;Oh well, that's enough for now - got that pesky keynote soon and need to get ready. More later, after this year's &lt;a href="http://pgsnake.blogspot.com/2009/05/enterprisedb-party-at-pgcon.html"&gt;EnterpriseDB Party&lt;/a&gt; (assuming I survive)!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-2296659561885228519?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/2296659561885228519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/05/pgcon-2009-day-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2296659561885228519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2296659561885228519'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/05/pgcon-2009-day-1.html' title='PGCon 2009 - Day 1'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-7171903871158743608</id><published>2009-05-11T15:01:00.004+01:00</published><updated>2009-05-12T08:27:49.193+01:00</updated><title type='text'>EnterpriseDB party at PGCon</title><content type='html'>A few people have asked me if EnterpriseDB will be hosting a party at PGCon 2009, as we've done in previous years, and I'm pleased to announce that yes, we will!&lt;br /&gt;&lt;br /&gt;As always, the party is open to all PGCon attendees, organisers and speakers and will include a dinner and booze (Mmmmm, beeeer). This year however, due to popular demand we have &lt;span style="font-weight: bold;"&gt;not&lt;/span&gt; booked the dueling pianos again!&lt;br /&gt;&lt;br /&gt;The party will be at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://o-town.ca/velvet-room.html"&gt;The Velvet Room&lt;/a&gt;&lt;br /&gt;     62 York Street&lt;br /&gt;     Ottawa, ON K1N 5T1&lt;br /&gt;     (613) 241-6810&lt;br /&gt;&lt;br /&gt;&lt;a href="http://maps.google.ca/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=62+York+Street+Ottawa,+ON+K1N+5T1&amp;amp;sll=45.30933,-75.760826&amp;amp;sspn=0.28443,0.617981&amp;amp;ie=UTF8&amp;amp;ll=45.428395,-75.692346&amp;amp;spn=0.00887,0.019312&amp;amp;z=16&amp;amp;iwloc=A"&gt;[Map]&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Doors open at 6:30PM on Thursday 21st May, and dinner will be served from around 7PM. See you there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-7171903871158743608?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/7171903871158743608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/05/enterprisedb-party-at-pgcon.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7171903871158743608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7171903871158743608'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/05/enterprisedb-party-at-pgcon.html' title='EnterpriseDB party at PGCon'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-4036502298213373977</id><published>2009-04-01T08:27:00.000+01:00</published><updated>2009-04-01T08:29:22.509+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgadmin'/><title type='text'>Goodbye</title><content type='html'>Dear pgAdmin Community,&lt;br /&gt;&lt;br /&gt;You may be aware that the pgAdmin project has been in existence for nearly 11 years now. During this time, the development team have spent thousands of hours writing hundreds of thousands of lines of code and documentation, engineering complex features and support for multiple versions of PostgreSQL, Postgres Plus and Greenplum, and providing support to thousands of users. As I'm sure you can understand, after so many years a group of the development team members have reached the point where we feel we've given as much as we can to the project.&lt;br /&gt;&lt;br /&gt;Having received a offer from a very large and well known software company for ownership of our copyright to the source code, we have decided to close down the project, effective immediately. I cannot speak for all of my colleagues on the development team but personally I am looking forward to a complete change of lifestyle, having purchased a farm in New Zealand where my family and I will be raising sheep and I get to play thrash metal on my bass guitar as loudly as I like without annoying the neighbours! Magnus tells me he is looking into upgrading his yacht and taking a trip around the world, and Guillaume is going to spend his time drinking wine in his new vinyard at Château Margoux.&lt;br /&gt;&lt;br /&gt;Please be aware that the mailing lists and website will be shutdown around 12PM today as the project transitions to its new owner who will be announcing availability of support contracts and professional services shortly.&lt;br /&gt;&lt;br /&gt;I'd like to thank all of our users and contributors over the past 11 years - it's been an absolute pleasure working with all of you.&lt;br /&gt;&lt;span style="color:#888888;"&gt;&lt;br /&gt;--&lt;br /&gt;Dave Page&lt;br /&gt;pgAdmin Project Lead&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-4036502298213373977?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/4036502298213373977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/04/goodbye.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/4036502298213373977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/4036502298213373977'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/04/goodbye.html' title='Goodbye'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-6137059556994642965</id><published>2009-03-27T11:58:00.003Z</published><updated>2009-03-27T12:13:46.018Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgadmin'/><title type='text'>pgAdmin moves to the BSD licence</title><content type='html'>After a huge effort over 18 months or more, involving lawyers, negotiations, tons of emails and new-found detective skills, we've finally changed the pgAdmin licence from &lt;a href="http://en.wikipedia.org/wiki/Artistic_License"&gt;Artistic v1.0&lt;/a&gt; to the PostgreSQL variant of the BSD licence. The change is partly in response to criticism of the licence by the FSF who described it as "too vague; some passages are too clever for their own good, and their meaning is not clear.", but mostly because as a result of those comments (and a court case in the US), Red Hat dropped all Artistic 1.0 licenced packages from Fedora and RHEL.&lt;br /&gt;&lt;br /&gt;So, from pgAdmin 1.10 onward the new licence is:&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;pgAdmin III&lt;br /&gt;&lt;br /&gt;Copyright (c) 2002 - 2009, The pgAdmin Development Team&lt;br /&gt;&lt;br /&gt;Permission to use, copy, modify, and distribute this software and its documentation for any purpose, without fee, and without a written agreement is hereby granted, provided that the above copyright notice and this paragraph and the following two paragraphs appear in all copies.&lt;br /&gt;&lt;br /&gt;IN NO EVENT SHALL THE PGADMIN DEVELOPMENT TEAM BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE PGADMIN DEVELOPMENT TEAM HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;&lt;br /&gt;THE PGADMIN DEVELOPMENT TEAM SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE PGADMIN DEVELOPMENT TEAM HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Many thanks to all the past contributors who gave their consent to change the licence, to the rest of the &lt;a href="http://www.pgadmin.org/development/team.php"&gt;pgAdmin Development Team&lt;/a&gt; for helping out with the grunt work, and to Karen from the &lt;a href="http://www.softwarefreedom.org/"&gt;Software Freedom Law Center&lt;/a&gt; for her sage advice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-6137059556994642965?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/6137059556994642965/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/03/pgadmin-moves-to-bsd-licence.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/6137059556994642965'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/6137059556994642965'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/03/pgadmin-moves-to-bsd-licence.html' title='pgAdmin moves to the BSD licence'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-397512394993159409</id><published>2009-03-27T11:45:00.003Z</published><updated>2009-03-27T11:52:38.257Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='stackbuilder'/><title type='text'>StackBuilder updates - now with added .NET!!</title><content type='html'>I finally got time to publish a round of StackBuilder package updates, as well as publish a new package - Npgsql 2.0.4. Npgsql is a mature and well maintained .NET data provider that works with Microsoft .NET and Mono. More information can be found on the project's &lt;a href="http://pgfoundry.org/projects/npgsql/"&gt;pgFoundry page&lt;/a&gt; and &lt;a href="http://npgsql.projects.postgresql.org/"&gt;website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Npgsql 2.0.4 is available through StackBuilder for Windows, Linux 32/64bit and Mac OS X.&lt;br /&gt;&lt;br /&gt;Other updates to existing packages for all four platforms are:&lt;br /&gt;&lt;br /&gt;phpBB 3.0.4-1&lt;br /&gt;Drupal 6.10-1&lt;br /&gt;mediaWiki 1.14.0-1&lt;br /&gt;&lt;br /&gt;Enjoy :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-397512394993159409?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/397512394993159409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/03/stackbuilder-updates-now-with-netmono.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/397512394993159409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/397512394993159409'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/03/stackbuilder-updates-now-with-netmono.html' title='StackBuilder updates - now with added .NET!!'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-5462517068602017228</id><published>2009-03-25T16:37:00.007Z</published><updated>2009-03-25T20:11:11.578Z</updated><title type='text'>Sony game using Postgres technology</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:verdana;"&gt;Seeing as I've got a few minutes spare having just announced the next pgAdmin beta (checkout the &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://www.pgadmin.org/visualtour.php"&gt;Visual Tour&lt;/a&gt;&lt;span style="font-family:verdana;"&gt;), I figured it was about time for quick blog post to prove I am still alive :-p&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Some people will certainly be aware that Sony Online Entertainment are a customer of EnterpriseDB and use our PostgreSQL-derived &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://www.enterprisedb.com/products/postgres_plus_as/overview.do"&gt;Postgres Plus Advanced Server&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; product as the database behind a number of the services they offer - none of which I really knew anything about. Well for the first time I can actually point to one of their new games called &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://www.freerealms.com/"&gt;Free Realms&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; which is built on Advanced Server. I can't say I'm a gamer so I won't even try anything like a review, but it looks like some serious work has gone into it, and I can imagine my kids spending far too much time on it given half a chance!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;For an open-source geek this is pretty cool stuff, right up there with Yahoo's use of pgAdmin with their massive Everest database - forget unseen financial systems, company CMSs or website shopping carts - this is code I (and many others) have hacked on and is being used to power fun and interesting stuff that potentially appeals to &lt;span style="font-style: italic;"&gt;millions of users&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;So, feel free to feed my geek ego and &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://www.freerealms.com/"&gt;check it out&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; :-)&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-5462517068602017228?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/5462517068602017228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/03/sony-game-using-postgres-technology.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/5462517068602017228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/5462517068602017228'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/03/sony-game-using-postgres-technology.html' title='Sony game using Postgres technology'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-1370154572085731843</id><published>2009-02-07T08:13:00.003Z</published><updated>2009-02-07T08:27:22.089Z</updated><title type='text'>The first conference of the year</title><content type='html'>&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;So after a traumatic journey to get the the Eurostar terminal at St. Pancras in London through the most snow we've seen in 20 years around my hometown, I finally arrived in Brussels with Greg for &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.fosdem.org/2009/"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;FOSDEM&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;. After settling in to our hotel rooms, we met up with some of the usual suspects and wandered off to our planned dinner at &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.restobieres.be/"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Restobieres&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; where we had a bunch of different beers, and dinner. Various other people joined us throughout the evening, including &lt;/span&gt;&lt;/span&gt;&lt;a href="http://blog.hagander.net/"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Magnus&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; and &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.chesnok.com/daily/"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Selena&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt; who met in Amsterdam and took the train here.&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;Which leads me to the point of the post. Well, as much of it as I can remember. After dinner a small group of us decided to go to Cafe Delirium where the FOSDEM beer night was being held. For reasons that now escape me, but were related in some way to us not knowing where on earth we were going, I promised to blame Selena for the fact that we had to follow a MySQL guy (yeah, I know, I know) to the square by the Cafe.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;So, whatever the problem was at the time - Selena; it's all you fault.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;There - don't say I don't keep a promise :-p&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;And now, breakfast, and off to day 1 of FOSDEM.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-1370154572085731843?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/1370154572085731843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/02/first-conference-of-year.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/1370154572085731843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/1370154572085731843'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/02/first-conference-of-year.html' title='The first conference of the year'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-3831915594827543812</id><published>2009-02-04T09:44:00.003Z</published><updated>2009-03-27T11:53:14.865Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgadmin'/><title type='text'>pgAdmin - change of licence</title><content type='html'>&lt;span class="Apple-style-span" style="border-collapse: collapse;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Effective from the 26th February 2009, the pgAdmin Development Team intend to change the licence of pgAdmin III from the Artistic Licence v1.0 to the Artistic Licence v2.0 (&lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.opensource.org/licenses/artistic-license-2.0.php" target="_blank" style="color: rgb(42, 93, 176);"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;http://www.opensource.org/&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;wbr&gt;licenses/artistic-license-2.0.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;wbr&gt;php&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;)&lt;br /&gt;&lt;br /&gt;The change of licence is in response to criticism of its wording from the Free Software Foundation ("too vague; some passages are too clever for their own good, and their meaning is not clear."), as well as issues raised during legal proceedings in the US.&lt;br /&gt;&lt;br /&gt;The licence change will apply to future releases of pgAdmin III; both official versions and updates released with PostgreSQL installers. Existing users may, at their option, use older versions under the terms of the new licence.&lt;br /&gt;&lt;br /&gt;If you have contributed to the pgAdmin III project in the past and have any questions or objections regarding the intended licence change, please contact me immediately at dpage (at) pgadmin (dot) org.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-3831915594827543812?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/3831915594827543812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/02/pgadmin-change-of-licence.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/3831915594827543812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/3831915594827543812'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/02/pgadmin-change-of-licence.html' title='pgAdmin - change of licence'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-337687903625270970</id><published>2009-01-02T20:25:00.003Z</published><updated>2009-01-16T08:40:20.951Z</updated><title type='text'>PostgreSQL Early Experience Installers</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Hot on the heels of &lt;/span&gt;&lt;/span&gt;&lt;a href="http://archives.postgresql.org/pgsql-hackers/2008-12/msg01964.php"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Devrim's Snapshot RPMs&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;, I'm pleased to say we now have 'early experience' one-click installers available to download and play with the latest features committed to the PostgreSQL and pgAdmin source trees. We're aiming to update the installers periodically after interesting features are added - the first of which is Hitoshi Harada's SQL:2008 Window Functions patch for PostgreSQL.&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;You can &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.enterprisedb.com/products/pgdevdownload.do#windows"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;download&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; the installers for Linux 32 and 64 bit, Mac OS X 10.4+ and Windows.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Note that as development builds, these packages have had very little testing and should not be used on production systems.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-337687903625270970?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/337687903625270970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2009/01/postgresql-early-experience-installers.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/337687903625270970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/337687903625270970'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2009/01/postgresql-early-experience-installers.html' title='PostgreSQL Early Experience Installers'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-6047704063752559912</id><published>2008-12-16T19:54:00.006Z</published><updated>2009-01-16T08:39:09.157Z</updated><title type='text'>PostgreSQL management on the iPhone</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5d50ZFJBYts/SUgLMOOlD4I/AAAAAAAAAA4/qSqtiKQrEoI/s1600-h/tools.png" style="text-decoration: none;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Back in the summer &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;a href="http://www.ibm.com/developerworks/blogs/page/BobZurek"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Bob Zurek&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; (CTO at EnterpriseDB) persuaded me to spend some time on a simple iPhone application for remote administration of PostgreSQL and Postgres Plus. I decided to write it as a web app as I didn't really have the spare time to learn Objective-C to the level required and besides, there are certain advantages to handling most of the processing server-side - for example, paging of large result sets from arbitrary user queries can be made more efficient. As is often the way, other projects took over and it fell by the wayside despite being more or less complete, but I finally managed to find the spare cycles to get Sachin from our installer team to package it up (thanks Sachin) - and I'm pleased to say that as of today it's finally available through &lt;/span&gt;&lt;/span&gt;&lt;a href="http://pgsnake.blogspot.com/2008/11/more-stackbuilder-apps-available-for.html"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;StackBuilder&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; for those of you with an iPhone or iPod touch.&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;So, what does it do? Not a massive amount admittedly - it's designed primarily for emergency maintenance (and frankly, who wants to do their day to day work on a phone?), but as can be seen from the main menu there are options to view server info, connections, GUC variables, locks, prepared transactions, and the ability to run arbitrary SQL queries.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style=" ;font-family:verdana;font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;img style="text-decoration: underline;display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 214px; height: 320px; " src="http://4.bp.blogspot.com/_5d50ZFJBYts/SUgLMOOlD4I/AAAAAAAAAA4/qSqtiKQrEoI/s320/tools.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5280482867697487746" /&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;The Info tool for example, displays various details of the server you're connected to. The installer will setup a connection to the local server, but you can add as many more as you like:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:48px;"&gt;&lt;span class="Apple-style-span"  style=" ;font-size:16px;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5d50ZFJBYts/SUgMIPp94eI/AAAAAAAAABA/Er1-bcP7utU/s1600-h/info.png"&gt;&lt;img src="http://4.bp.blogspot.com/_5d50ZFJBYts/SUgMIPp94eI/AAAAAAAAABA/Er1-bcP7utU/s320/info.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5280483898872947170" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 214px; height: 320px; " /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;Probably the most useful feature is the ability to run arbitrary SQL queries. Batches of rows are summarised in a list, with the usual option at the end to get fetch the next batch. Selecting a row will display the complete set of values - the screenshot below captures the row details sliding across the display from the right:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5d50ZFJBYts/SUgM0Z9IS-I/AAAAAAAAABI/lYrAJUa9Zdg/s1600-h/results2.png"&gt;&lt;img src="http://4.bp.blogspot.com/_5d50ZFJBYts/SUgM0Z9IS-I/AAAAAAAAABI/lYrAJUa9Zdg/s320/results2.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5280484657551920098" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 214px; height: 320px; " /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'trebuchet ms';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;If you want to have a go, just select the pgPhoneHome download in StackBuilder.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style=" ;font-family:'trebuchet ms';font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style=" ;font-family:'trebuchet ms';font-size:13px;"&gt;Oh... and while I think of it, we also updated the installer for the PostgreSQL JDBC driver to v8.3-604 at the same time.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style=" ;font-family:'trebuchet ms';font-size:13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style=" ;font-family:'trebuchet ms';font-size:13px;"&gt;Enjoy :-)&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-6047704063752559912?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/6047704063752559912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2008/12/postgresql-management-on-iphone.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/6047704063752559912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/6047704063752559912'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2008/12/postgresql-management-on-iphone.html' title='PostgreSQL management on the iPhone'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5d50ZFJBYts/SUgLMOOlD4I/AAAAAAAAAA4/qSqtiKQrEoI/s72-c/tools.png' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-1549624007536495099</id><published>2008-12-05T12:28:00.003Z</published><updated>2009-03-27T11:53:01.770Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='stackbuilder'/><title type='text'>StackBuilder application updates</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;I've just published a number of updates to various StackBuilder applications (if you're not sure what Stackbuilder is, see my &lt;/span&gt;&lt;/span&gt;&lt;a href="http://pgsnake.blogspot.com/2008/11/more-stackbuilder-apps-available-for.html"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;previous blog post&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; which included a brief description). The updates available are:&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;ApachePHP has been updated to Apache v2.2.10 &amp;amp; PHP v5.2.6 (Linux 32/64 bit, OS X and Windows).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Drupal has been updated to v6.6 (Linux 32/64 bit, OS X and Windows).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;mediaWiki has been updated to 1.13.2 (Windows).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;psqlODBC has been updated to 08.03.0400 (Linux 32/64 bit, OS X and Windows).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;EnterpriseDB Tuning Wizard has been updated to 1.2 (Linux 32/64 bit and OS X).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;So, fire up StackBuilder and start downloading those updates!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-1549624007536495099?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/1549624007536495099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2008/12/stackbuilder-application-updates.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/1549624007536495099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/1549624007536495099'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2008/12/stackbuilder-application-updates.html' title='StackBuilder application updates'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-8477139356816596236</id><published>2008-12-04T09:59:00.003Z</published><updated>2008-12-04T10:07:06.837Z</updated><title type='text'>Going mobile with a Linux netbook</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;A friend of mine bought a Linux based &lt;a href="http://www.acer.com/aspireone/"&gt;Acer Aspire One&lt;/a&gt; netbook, and asked me to help get it working with her Three (a UK 3G network) mobile broadband dongle. It's not entirely straightforward to figure out, but is pretty easy once you know how.&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Initial setup&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;- Click on Settings and run the Aspire's Live Update program to update the operating system with the latest patches. Reboot when prompted. Keep doing this until Live Update reports that all updates have been installed.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;- Shutdown the Aspire, and plug in the Three modem.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;- Boot the Aspire, and select the Mobile Partner app on the Connect tab.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;- Wait for Mobile Partner to detect the modem.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;- Select Tools -&gt; Options, and the click the New button.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;- Give the profile a name, such as 'Three mobile broadband' and configure the following options:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;  APN type: Static&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;  APN name: three.co.uk&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;  Access number: *99#&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;  Username: three&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;  Password: three&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;  Protocol: chap&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;- Save the profile.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Daily use&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;- Boot the Aspire, and plug in the modem. If a file browser window opens, close it.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;- Run the Mobile Partner app on the Connect tab.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;- Wait for Mobile Partner to detect the modem.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;- Click the Connect button.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;- When Mobile Partner has connected, minimise (don't close) it, fire up the web browser and away you go!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;And what's the PostgreSQL angle you might ask? There isn't one. Sorry.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-8477139356816596236?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/8477139356816596236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2008/12/going-mobile-with-linux-netbook.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/8477139356816596236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/8477139356816596236'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2008/12/going-mobile-with-linux-netbook.html' title='Going mobile with a Linux netbook'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-3204558937702014179</id><published>2008-11-17T21:27:00.005Z</published><updated>2009-03-27T11:53:56.242Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='stackbuilder'/><title type='text'>More StackBuilder apps available for Linux &amp; Mac</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;If you've ever used PostgreSQL 8.3 on Windows, you'll be aware of StackBuilder, the package management tool that's included for downloading and installing additional tools, drivers and applications to work with PostgreSQL. Designed to be really easy to use, you simply run StackBuilder, choose the applications you wish to install (any dependencies will be automatically installed as well), and it will download them and set them up to work with your PostgreSQL installation.&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 226px;" src="http://2.bp.blogspot.com/_5d50ZFJBYts/SSHlriTMxCI/AAAAAAAAAAw/lFyUAVYiVqw/s320/stackbuilder.png" alt="" id="BLOGGER_PHOTO_ID_5269745575104660514" border="0" /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;With the release of PostgreSQL 8.3.5 a few of weeks ago, we (the excellent team I work with at &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.enterprisedb.com/"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;EnterpriseDB&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;) added Linux and Mac ports of StackBuilder to the &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.enterprisedb.com/products/pgdownload.do"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;PostgreSQL 'one click' installers&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; that we maintain, and as of Friday have an almost identical set of applications available via StackBuilder on Windows, Mac and Linux (32 and 64 bit).&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;So, currently available for all four platforms, we have:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;PostgreSQL 8.3.5&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;psqlODBC&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;pgJDBC&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;PostGIS&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Slony&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Apache + PHP&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Drupal*&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;mediaWiki&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;phpBB&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;phpPgAdmin&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;phpWiki&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;In addition, we also published our own Tuning Wizard and MySQL Migration Wizard apps. We're working on additional updates and new apps all the time, so fire up StackBuilder regularly to check for new packages.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:x-small;"&gt;* Note: The Drupal release for 64 bit Linux has been delayed due to a last minute issue found during testing.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-3204558937702014179?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/3204558937702014179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2008/11/more-stackbuilder-apps-available-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/3204558937702014179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/3204558937702014179'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2008/11/more-stackbuilder-apps-available-for.html' title='More StackBuilder apps available for Linux &amp; Mac'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5d50ZFJBYts/SSHlriTMxCI/AAAAAAAAAAw/lFyUAVYiVqw/s72-c/stackbuilder.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-9053427257686316120</id><published>2008-11-17T14:16:00.000Z</published><updated>2008-11-17T14:31:50.868Z</updated><title type='text'>Ladies and gentlemen, normal service has been resumed...</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;As you may have heard, there was recently a &lt;/span&gt;&lt;/span&gt;&lt;a href="http://blog.hagander.net/archives/1-Recovering-from-planetary-disaster.html"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;major disaster&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; with planetpostgresql.org. After a subtle nudge from Magnus, I figured I'd better sort out a new home for my blog as apparently I'm one of few remaining 404's on the &lt;/span&gt;&lt;/span&gt;&lt;a href="http://planet.postgresql.org/"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;PostgreSQL blog aggregator&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;So, here we go. As a fairly heavy user of Google products already, it made sense to use Blogger, which despite the expected issues with the WYSIWYG editor and copy/paste on the Mac, so far seems pretty good. I've managed to scrape together most of the old posts thanks to the &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.archive.org/"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;WayBack Machine&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; which is good. A few have probably gone forever, but such is life.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Anyway, more later - I'll post a news update on some PostgreSQL work shortly...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-9053427257686316120?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/9053427257686316120/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2008/11/ladies-and-gentlemen-normal-service-has.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/9053427257686316120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/9053427257686316120'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2008/11/ladies-and-gentlemen-normal-service-has.html' title='Ladies and gentlemen, normal service has been resumed...'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-5512126828839044604</id><published>2008-10-27T13:06:00.000Z</published><updated>2008-11-17T14:16:19.695Z</updated><title type='text'>LinuxLive Report</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;PostgreSQL had a booth in the .Org Village at LinuxLive/MacLive on Thursday, Friday and Saturday of last week.&lt;br /&gt;&lt;br /&gt;Greg Stark and I attended all three days, and brought badges, pins and shirts from the UK conference, as well as signs, flyers and demo hardware from our office. Mark Cave-Ayland split his time between our booth and his companies on all three days. Simon Riggs joined us on the Friday, during which time he was interviewed by the Ubuntu guys for their regular podcast. Gianni Ciolli joined us on the Saturday.&lt;br /&gt;&lt;br /&gt;The show was pretty quiet, with both .Org and commercial stands commenting similarly. We did see a fairly steady stream of people throughout all three days however, with roughly a 50/50 split between existing users stopping for a chat, advice or to find out what's going to be in 8.4, and potential new users. By far the most popular question asked was 'why should I use PostgreSQL instead of MySQL', second to which were questions about replication (ie. when will we see PostgreSQL RAC? !!).&lt;br /&gt;&lt;br /&gt;Things we should have taken but don't have include:&lt;br /&gt;&lt;br /&gt;- PG vs. MySQL flyers&lt;br /&gt;- PG.EU flyers. What is it, mailing lists, conferences etc.&lt;br /&gt;- 'Famous users' poster&lt;br /&gt;- 'What's new in 8.4' poster&lt;br /&gt;- Usage example posters (eg. company Foo use PG + Slony to do whizz bang stuff).&lt;br /&gt;- Elephant Juice (after seeing people getting merry on 'Drupal Drops'!)&lt;br /&gt;&lt;br /&gt;Thanks to all those who helped out, and 'hi' to anyone that stopped by the booth, and to the guys from Debian, OpenBSD/OpenSSH, UKUUG, Bongo, OpenNMS and anyone else we were hanging out with!&lt;br /&gt;&lt;br /&gt;Dodgy pics from the phone at &lt;a href="http://www.flickr.com/photos/29058417@N03/"&gt;http://www.flickr.com/photos/29058417@N03/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-5512126828839044604?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/5512126828839044604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/5512126828839044604'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2008/10/linuxlive-report.html' title='LinuxLive Report'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-5486738664385121505</id><published>2008-02-21T14:04:00.000Z</published><updated>2008-11-17T14:05:59.713Z</updated><title type='text'>UK PostgreSQL Conference 2008</title><content type='html'>&lt;span class="Apple-style-span"  style=" -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:Times;"&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;So finally after years of on-off discussions at the pub, Simon Riggs and I have finally got the first ever UK PostgreSQL Conference organised! It will be on April the 2nd, in central Birmingham. The theme is 'PostgreSQL in the UK'.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;So, to avoid disappointment, visit the &lt;/span&gt;&lt;/span&gt;&lt;a title="The UK PostgreSQL Conference Website" href="http://www.postgresql.org.uk/"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;conference website&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt; and book your place today!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-5486738664385121505?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/5486738664385121505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/5486738664385121505'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2008/02/uk-postgresql-conference-2008.html' title='UK PostgreSQL Conference 2008'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-8393699570595489843</id><published>2007-09-27T13:48:00.001+01:00</published><updated>2009-03-27T11:54:25.636Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgadmin'/><title type='text'>Setting up Slony-I with pgAdmin</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;pgAdmin has had the ability to create and manage Slony-I replication clusters for some time, however it is designed to allow the user to work directly with the lower-level Slony concepts such as listens and paths. This is pretty flexible, but isn't particularly user-friendly. We are hoping to include some wizards in the future to make it much easier to setup and modify clusters, but in the meantime here's a long overdue walkthrough using the existing features to create a 3 node replication cluster.&lt;br /&gt;&lt;br /&gt;In this example, a master server is setup with two direct slaves. This example was written and tested using Slony-I v1.2.11 and PostgreSQL 8.2.5, running on a single Windows XP machine. The PostgreSQL pgbench utility is used to generate the test schema and workload.&lt;br /&gt;&lt;br /&gt;1) Create 3 databases, master, slave1 and slave2 and ensure pl/pgsql is setup in each.&lt;br /&gt;&lt;br /&gt;2) Create a pgbench schema in the master database:&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&amp;gt; pgbench -i -U postgres master&lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;3) Add a primary key called history_pkey to the history table on the tid, bid and aid columns.&lt;br /&gt;&lt;br /&gt;4) Create a schema-only dump of the master database, and load it into slave1 and slave2:&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&amp;gt; pg_dump -s -U postgres master &gt; schema.sql&lt;br /&gt;&amp;gt; psql -U postgres slave1 &amp;lt; psql -U postgres slave2&lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;5) Create Slony config files for each slon engine (daemon on *nix). The files should contain just the following two lines: &lt;/span&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;cluster_name='pgbench'&lt;br /&gt;conn_info='host=127.0.0.1 port=5432 user=postgres dbname=master' &lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Create a file for each database, adjusting the dbname parameter as required and adding any other connection options that may be needed.  (Windows only) Install the Slony-I service:  &amp;gt; slon -regservice Slony-I&lt;br /&gt;&lt;br /&gt;6) Register each of the engines (this is only necessary on Windows - on *nix the slon daemons may be started individually and given the path to the config file on the command line using the -f option):&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&gt; slon -addengine Slony-I C:\slony\master.conf&lt;br /&gt;&gt; slon -addengine Slony-I C:\slony\slave1.conf&lt;br /&gt;&gt; slon -addengine Slony-I C:\slony\slave2.conf&lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;7) In pgAdmin under the Replication node in the master database, create a new Slony-I cluster using the following options:&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Join existing cluster: Unchecked&lt;br /&gt;Cluster name: pgbench&lt;br /&gt;Local node: 1 Master node&lt;br /&gt;Admin node: 99 Admin node&lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;8) Under the Replication node, create a Slony-I cluster in each of the slave databases using the following options:&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Join existing cluster: Checked&lt;br /&gt;Server: &amp;lt;Select the server containing the master database&amp;gt;&lt;br /&gt;Database: master&lt;br /&gt;Cluster name: pgbench&lt;br /&gt;Local node: 10 Slave node 1&lt;br /&gt;Admin node: 99 - Admin node&lt;/span&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Join existing cluster: Checked&lt;br /&gt;Server: &amp;lt;Select the server containing the master database&amp;gt;&lt;br /&gt;Database: master&lt;br /&gt;Cluster name: pgbench&lt;br /&gt;Local node: 20 Slave node 2&lt;br /&gt;Admin node: 99 - Admin node&lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;9) Create Paths on the master to both slaves, and on each slave back to the master. Create the paths under each node on the master, using the connection strings specified in the slon config files. Note that future restructuring of the cluster may require additional paths to be defined.&lt;br /&gt;&lt;br /&gt;10) Create a Replication Set on the master using the following settings:&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;ID: 1&lt;br /&gt;Comment: pgbench set&lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;11) Add the tables to the replication set using the following settings:&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Table: public.accounts&lt;br /&gt;ID: 1&lt;br /&gt;Index: accounts_pkey&lt;br /&gt;&lt;br /&gt;Table: public.branches&lt;br /&gt;ID: 2&lt;br /&gt;Index: branches_pkey&lt;br /&gt;&lt;br /&gt;Table: public.history&lt;br /&gt;ID: 3&lt;br /&gt;Index: history_pkey&lt;br /&gt;&lt;br /&gt;Table: public.tellers&lt;br /&gt;ID: 4&lt;br /&gt;Index: tellers_pkey&lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;12) On the master node, create a new subscription for each slave using the following options:&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Origin: 1&lt;br /&gt;Provider: 1 - Master node&lt;br /&gt;Receiver: 10 - Slave node 1&lt;br /&gt;&lt;br /&gt;Origin: 1&lt;br /&gt;Provider: 1 - Master node&lt;br /&gt;Receiver: 20 - Slave node 2&lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;13) Start the slon service (or daemons on *nix):&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&gt; net start Slony-I&lt;/span&gt;&lt;/blockquote&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;14) Initial replication should begin and can be monitored on the statistics tab in pgAdmin for each node. The pgbench utility may be run against the master database to generate a test workload.&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=";font-family:verdana;font-size:13;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-8393699570595489843?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/8393699570595489843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/8393699570595489843'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2007/09/setting-up-slony-i-with-pgadmin.html' title='Setting up Slony-I with pgAdmin'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-6625339376410603569</id><published>2007-08-06T13:44:00.000+01:00</published><updated>2008-11-17T13:44:50.810Z</updated><title type='text'>OpenSSL on Windows</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Verdana; font-size: 13px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;div class="serendipity_entry_body" style="font-family: verdana, arial, helvetica, sans-serif; "&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;OK, to get the usual intro over and done with - blog, neglected, back now, very sorry, won't do it again.&lt;/p&gt;&lt;br /&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;And now onto business... Ben West reported a problem with pgAdmin III v.1.8.0 Beta 2 on Windows which seems to have gained a dependency on MSVCR71.DLL (that's the Visual C++ runtime library for VC++ 7.1). pgAdmin is built with VC++ 8 these days so we really don't want to ship the 7.1 runtimes. After a little investigation, it seems that the latest builds of OpenSSL from &lt;a target="_blank" href="http://web.archive.org/web/20071013161353/http://www.slproweb.com/products/Win32OpenSSL.html" style="color: rgb(0, 51, 102); text-decoration: underline; "&gt;Shining Light Productions&lt;/a&gt; are built using VC++ 7.1 &lt;img src="http://web.archive.org/web/20071013161353/http://people.planetpostgresql.org/dpage/templates/default/img/emoticons/sad.png" alt=":-(" class="emoticon" style="display: inline; vertical-align: bottom; " /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;So, it seems we need to build OpenSSL ourselves now to avoid this issue. I struggled to find the details of how to do that, so after finding the relevant info elsewhere, I'll repeat it here for future reference...&lt;/p&gt;&lt;/div&gt;&lt;div class="serendipity_entry_extended" style="font-family: verdana, arial, helvetica, sans-serif; "&gt;&lt;a id="extended"&gt;&lt;/a&gt;&lt;br /&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;So, here's how it's done. You will need something to unpack the OpenSSL source code (such as tar with gzip support), and a perl installation, as well as VC++.&lt;/p&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Download the &lt;a target="_blank" href="http://web.archive.org/web/20071013161353/http://www.openssl.org/source/" style="color: rgb(0, 51, 102); text-decoration: underline; "&gt;OpenSSL Source&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Start a Visual Studio command prompt for the version of Visual C++ you need to compile against (8.0 for us, otherwise known as 2005).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Unpack the OpenSSL source, and CD into the source directory.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Configure the source code:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;C:\openssl-0.9.8e&gt; perl configure VC-WIN32&lt;br /&gt;&lt;/i&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Generate assembler code for speed:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;C:\openssl-0.9.8e&gt; ms\do_masm&lt;br /&gt;&lt;/i&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Finally, the libraries can be built:&lt;br /&gt;&lt;i&gt;&lt;br /&gt;C:\openssl-0.9.8e&gt; nmake -f ms\ntdll.mak&lt;/i&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;And that's it! The OpenSSL DLLs should be found in the out32dll directory.&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-6625339376410603569?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/6625339376410603569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/6625339376410603569'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2007/08/openssl-on-windows.html' title='OpenSSL on Windows'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-3986427304589440752</id><published>2006-12-07T13:40:00.000Z</published><updated>2008-11-17T13:42:12.070Z</updated><title type='text'>Joining EnterpriseDB</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Times; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;div class="serendipity_entry_body"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;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.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="serendipity_entry_extended"&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;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.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;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.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Anyway, enough rambling - if you want to know more about EnterpriseDB, checkout the &lt;/span&gt;&lt;/span&gt;&lt;a href="http://web.archive.org/web/20070114074228/http://www.enterprisedb.com/" title="EnterpriseDB Website"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;website&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;, or (for reasons that I still find somewhat baffling), the marketing guys decided to mention me in a &lt;/span&gt;&lt;/span&gt;&lt;a href="http://web.archive.org/web/20070114074228/http://www.enterprisedb.com/news_events/press_releases/05_12_06.do" title="EnterpriseDB press release"&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;press release&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-family: verdana;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-3986427304589440752?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/3986427304589440752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/3986427304589440752'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2006/12/joining-enterprisedb.html' title='Joining EnterpriseDB'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-505714320728410787</id><published>2006-07-09T13:39:00.000+01:00</published><updated>2008-11-17T13:39:55.665Z</updated><title type='text'>Thought for the night...</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: verdana; font-size: 13px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;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:&lt;/p&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;&lt;/p&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;&lt;i&gt;&lt;b&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;&lt;i&gt;&lt;b&gt;What's the use-case for a Jim Nasby?&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;&lt;span class="Apple-style-span" style="font-style: italic; font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;&lt;/p&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;&lt;i&gt;&lt;b&gt;&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;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...&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-505714320728410787?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/505714320728410787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/505714320728410787'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2006/07/thought-for-night.html' title='Thought for the night...'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-7652454271184789468</id><published>2006-07-05T13:37:00.001+01:00</published><updated>2009-03-27T11:54:53.211Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgadmin'/><title type='text'>pgAdmin gets plastic surgery</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);font-family:Verdana;font-size:13;"  &gt;&lt;div class="serendipity_entry_body" style="font-family: verdana,arial,helvetica,sans-serif;"&gt;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 &lt;a href="http://web.archive.org/web/20060715233426/http://www.theregister.co.uk/2006/07/04/self_driving_golf/" style="color: rgb(0, 51, 102); text-decoration: underline;"&gt;Lizard Alliance&lt;/a&gt; to be used as a crash test dummy, but no, I've just been lazy and haven't written anything recently.&lt;br /&gt;&lt;br /&gt;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...&lt;br /&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="serendipity_entry_extended" style="font-family: verdana,arial,helvetica,sans-serif;"&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;" align="baseline"&gt;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.&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;" align="baseline"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;" align="baseline"&gt;&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;" align="center"&gt;&lt;img src="http://web.archive.org/web/20060715233426/http://people.planetpostgresql.org/dpage/uploads/pgadmin-dock.png" /&gt;&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;" align="left"&gt;&lt;br /&gt;Anyhoo, that's enough for now. I'm leaving for the &lt;a href="http://web.archive.org/web/20060715233426/http://conference.postgresql.org/" style="color: rgb(0, 51, 102); text-decoration: underline;"&gt;PostgreSQL Anniversary Conference&lt;/a&gt; early tomorrow morning so need to go and pack...&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-7652454271184789468?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7652454271184789468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7652454271184789468'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2006/07/pgadmin-gets-plastic-surgery.html' title='pgAdmin gets plastic surgery'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-2341492634876401714</id><published>2006-03-15T13:36:00.000Z</published><updated>2008-11-17T13:37:37.059Z</updated><title type='text'>Random Ramblings</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: verdana; font-size: 13px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;Some random noise for the old blog...&lt;/p&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;First off, an &lt;a href="http://web.archive.org/web/20061011130551/http://searchopensource.techtarget.com/originalContent/0,289142,sid39_gci1172668,00.html" style="color: rgb(0, 51, 102); text-decoration: underline; "&gt;article by Jason Gilmore&lt;/a&gt; discusses 5 outdated reasons why people don't choose PostgreSQL. pgAdmin gets a mention under the &lt;i&gt;No professional development and administration tools&lt;/i&gt; section. The article was picked up and discussed in depth on &lt;a href="http://web.archive.org/web/20061011130551/http://developers.slashdot.org/article.pl?sid=06/03/14/2112210" style="color: rgb(0, 51, 102); text-decoration: underline; "&gt;Slashdot.&lt;/a&gt;&lt;/p&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;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 day.&lt;a href="http://web.archive.org/web/20061011130551/http://www.jo-jos-jewellery.co.uk/" style="color: rgb(0, 51, 102); text-decoration: underline; "&gt;www.jo-jos-jewellery.co.uk&lt;/a&gt; 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 &lt;a href="http://web.archive.org/web/20061011130551/https://developer.paypal.com/" style="color: rgb(0, 51, 102); text-decoration: underline; "&gt;resources for developers&lt;/a&gt;, including an extremely useful sandbox version of their site for developers to test and experiment with.&lt;/p&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;'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...&lt;/p&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;&lt;img src="http://web.archive.org/web/20061011130551/http://people.planetpostgresql.org/dpage/templates/default/img/emoticons/smile.png" alt=":-)" class="emoticon" style="display: inline; vertical-align: bottom; " /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-2341492634876401714?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2341492634876401714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2341492634876401714'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2006/03/random-ramblings.html' title='Random Ramblings'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-2382980165662246665</id><published>2006-03-07T13:33:00.001Z</published><updated>2009-03-27T11:55:28.025Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgadmin'/><title type='text'>pgAdmin III v1.4.2 Released</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);font-family:Verdana;font-size:13;"  &gt;&lt;div class="serendipity_entry_body" style="font-family: verdana,arial,helvetica,sans-serif;"&gt;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:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://web.archive.org/web/20060715233412/http://www.pgadmin.org/" target="_blank" style="color: rgb(0, 51, 102); text-decoration: underline;"&gt;http://www.pgadmin.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;pgAdmin can be downloaded free of charge from:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://web.archive.org/web/20060715233412/http://www.pgadmin.org/download/" target="_blank" style="color: rgb(0, 51, 102); text-decoration: underline;"&gt;http://www.pgadmin.org/download/&lt;/a&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="serendipity_entry_extended" style="font-family: verdana,arial,helvetica,sans-serif;"&gt;&lt;a id="extended"&gt;&lt;/a&gt;&lt;br /&gt;This version is a bug fix release containing the following changes:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Fix a typo in the admin pack README [August Zajonc].&lt;/li&gt;&lt;li&gt;Fix serial column detection for 8.1 per Kris Jurka.&lt;/li&gt;&lt;li&gt;Mask the password when logging the connection string.&lt;/li&gt;&lt;li&gt;Properly escape single quotes in connection strings.&lt;/li&gt;&lt;li&gt;Re-arrange the Win32 dependencies so that iconv, libxml2 and wxwidgets are located in $PGADIR/../pgadmin3-deps/.&lt;/li&gt;&lt;li&gt;Properly enable the redo button in the Query Tool when appropriate, per PromoTrade.&lt;/li&gt;&lt;li&gt;Add missing files to the Unix tarball, per Andrus - xtra/wxbuild/*, src/utils/precomp.cpp, src/main/pgAdmin3.rc.&lt;/li&gt;&lt;li&gt;Read config files in the local encoding scheme.&lt;/li&gt;&lt;li&gt;Display the definition of set returning procedures correctly.&lt;/li&gt;&lt;li&gt;Fix drop procedure by including IN/OUT parameter flags in the name.&lt;/li&gt;&lt;li&gt;Fix role SQL - correctly define CREATEROLE/NOCREATEROLE per Andrus.&lt;/li&gt;&lt;li&gt;Honour the copy quoting setting properly in the SQL results pane.&lt;/li&gt;&lt;li&gt;Set the initial Unicode/Local charset options correctly in the Export dialogue.&lt;/li&gt;&lt;li&gt;Fix PK detection in EditGrid per Andrus Moor.&lt;/li&gt;&lt;li&gt;Fix Bitmap Index explain per Alexander Kirpa.&lt;/li&gt;&lt;li&gt;Use ELSIF not ELSEIF in pgagent.sql for compatibility with 7.x servers [Glen Sasek].&lt;/li&gt;&lt;li&gt;Exclude system schemas by name rather than OID, so that 'public' can be safely renamed.&lt;/li&gt;&lt;li&gt;fix slony node statistics.&lt;/li&gt;&lt;li&gt;Fix: Unsubscribe set on receiver.&lt;/li&gt;&lt;li&gt;Another wxComboBox(2.6.2) related fix.&lt;/li&gt;&lt;/ul&gt;&lt;i&gt;Dave Page&lt;br /&gt;pgAdmin Development Team&lt;/i&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-2382980165662246665?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2382980165662246665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2382980165662246665'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2006/03/pgadmin-iii-v142-released.html' title='pgAdmin III v1.4.2 Released'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-1464214873588354973</id><published>2006-02-28T13:27:00.001Z</published><updated>2009-03-27T11:55:44.239Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgadmin'/><title type='text'>Speeding up the pgAdmin query tool</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:Times;"&gt;&lt;div class="serendipity_entry_body"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;The pgAdmin query tool (see the bottom two screenshots &lt;/span&gt;&lt;/span&gt;&lt;a href="http://web.archive.org/web/20070114074338/http://www.pgadmin.org/screenshots/data.php"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;here&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;) 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.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="serendipity_entry_extended"&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;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: &lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;51243ms + 65343ms.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;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.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;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.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;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.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;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!!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  style="font-family:verdana;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;And before I forget, many thanks to Ed for his hard work.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-1464214873588354973?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/1464214873588354973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2006/02/speeding-up-pgadmin-query-tool.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/1464214873588354973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/1464214873588354973'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2006/02/speeding-up-pgadmin-query-tool.html' title='Speeding up the pgAdmin query tool'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-4019056575549871580</id><published>2006-01-17T13:27:00.001Z</published><updated>2009-03-27T11:56:04.933Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgadmin'/><title type='text'>www.pgadmin.org gets a facelift</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);font-family:verdana;font-size:13;"  &gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;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.&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;Nothing spectacular, just:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;an update of the colour scheme to match the current version of pgAdmin&lt;/li&gt;&lt;li&gt;a re-write of the framework code and CSS&lt;/li&gt;&lt;li&gt;a whole heap of reorganising of content in order to split some of the excessively long pages down into multiple smaller ones.&lt;/li&gt;&lt;li&gt;the addition of the 1.4 and development documentation, updated hourly from SVN&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;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.&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;Anyhoo, check it out at &lt;a title="http://www.pgadmin.org" href="http://web.archive.org/web/20061011130551/http://www.pgadmin.org/" style="color: rgb(0, 51, 102); text-decoration: underline;"&gt;http://www.pgadmin.org&lt;/a&gt;. Enjoy.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-4019056575549871580?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/4019056575549871580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/4019056575549871580'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2006/01/wwwpgadminorg-gets-facelift.html' title='www.pgadmin.org gets a facelift'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-6922199920593202095</id><published>2005-11-02T13:25:00.001Z</published><updated>2009-03-27T11:56:37.389Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgadmin'/><category scheme='http://www.blogger.com/atom/ns#' term='slony'/><title type='text'>A jolly in Tokyo</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);font-family:verdana;font-size:13;"  &gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;So, as part of our work porting Slony-I to Windows, and adding full support to pgAdmin, Andreas, Magnus and I were invited to present our work at a seminar in Tokyo, organised by Hiroshi Saito and his employer, SKC. We met in the departure lounge at London Heathrow from where we flew to Narita, Tokyo on Wednesday last week. Hiroshi met us at the airport, and brought us back to our hotel in Shimbashi.&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;The first evening we attended a welcome party with various members of the Japan PostgreSQL Users Group or JPUG for short. After a good meal and plenty of food it was off to bed to recover from the 30 hour first day!&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;" align="baseline"&gt;On Friday we travelled by train to the seminar, and after an Italian lunch(!!) proceeded to give our talks to around 70 JPUG members. I spoke first on replication in general, and then on the Slony porting project and how we worked. An hour later, Magnus took to the stage and discussed the details of porting slon in more depth, and then gave a perfectly executed demonstration of Slony-I running on Windows. Finally, Andreas discussed the new management features added to pgAdmin.&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;" align="baseline"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;" align="center"&gt;&lt;img src="http://web.archive.org/web/20061011130551/http://people.planetpostgresql.org/dpage/uploads/jpug..png" style="border-style: none; border-width: 0px; float: left; padding-left: 5px; padding-right: 5px;" height="0" width="0" /&gt;&lt;img src="http://web.archive.org/web/20061011130551/http://people.planetpostgresql.org/dpage/uploads/jpug.png" /&gt;&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;" align="center"&gt;[From left to right, Andreas Pflug, Magnus Hagander, myself and Hiroshi Saito]&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;" align="center"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;After the presentation, we headed down to the restaurant in the building for and evening reception with beer, buffet and even a little bingo. Lot's of business cards were exchanged with a variety of PostgreSQL users and developers, and even one of the Firebird team!!&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;On Saturday, we spent a day sight-seeing, mainly in Kamakura where we visted a couple of temples and a very large cast iron Buddha. Lunch was Korean barbeque, following which we took a trip back to Tokyo station on the Shinkansen, or Bullet Train. A few beers in the 'Victorian Pub' across the courtyard from the hotel entrance, and it was off to bed before the journey back to the UK, Sweden and Germany in the morning.&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;All told, an excellent trip on which we were welcomed by our extremely hospitable Japanese friends. Many thanks in particular to Hiroshi Saito and SKC, not to mention the rest of the JPUG members.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-6922199920593202095?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/6922199920593202095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/6922199920593202095'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2005/11/jolly-in-tokyo.html' title='A jolly in Tokyo'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-190181589656665924</id><published>2005-09-16T12:29:00.001+01:00</published><updated>2009-03-27T11:57:00.863Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgadmin'/><category scheme='http://www.blogger.com/atom/ns#' term='slony'/><title type='text'>Slony-I on Windows</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);font-family:verdana;font-size:13;"  &gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;Magnus pinged me last night and was kind enough to point out how neglected my blog had become recently, so I figured I'd better write a new entry before the cobwebs become too thick to see through. In my defence, I've been incredibly busy recently with upcoming releases of psqlODBC, pgInstaller, pgAdmin and PostgreSQL, not to mention being busy in my day job as well!&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;So, in order to put things write I figured I'd mention the 'other' project I've been working on recently, the Windows port of Slony-I. A bunch of us (well, myself, Magnus Hagander and Andreas Pflug) were assembled into a team by Hiroshi Saito to port Slony-I to Windows, update the documentation, sort out the regression tests, and add full support to pgAdmin. Just before lunch, I posted the final patch (the documentation) of that little lot to the Slony mailing list for review, and finally, the end is in sight! Bar a couple of minor improvements to make, thats pretty much the project completed - so come the next major Slony release, you'll be able to replicate you PostgreSQL databases to and from your Windows boxen.&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;So, effort now moves to our presentation. Part of the deal with Hiroshi is that we present our work to the Japan PostgreSQL Users Group (JPUG), so at the end of October the three of us will be jetting off to Tokyo for a few days of trains, sushi and sake. I can't wait to get there &lt;img src="http://web.archive.org/web/20061011130551/http://people.planetpostgresql.org/dpage/templates/default/img/emoticons/smile.png" alt=":-)" class="emoticon" style="display: inline; vertical-align: bottom;" /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-190181589656665924?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/190181589656665924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/190181589656665924'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2005/09/slony-i-on-windows.html' title='Slony-I on Windows'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-787756523335692882</id><published>2005-08-29T13:22:00.001+01:00</published><updated>2009-03-27T11:57:14.870Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgadmin'/><title type='text'>Hello Solaris, I'm pgAdmin III....</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);font-family:verdana;font-size:13;"  &gt;For a while now we've had anecdotal reports of people compiling and running pgAdmin III on Solaris systems, a few successfully and a few unfortunately not. I was recently given the use of a Sparc box running Solaris 10 and asked to sort things out properly, so being the eager-to-please kind of chap that I am decided to do just that. The owner of the box had tried numerous combinations of configure options for &lt;a href="http://web.archive.org/web/20061011130551/http://www.wxwidgets.org/" style="color: rgb(0, 51, 102); text-decoration: underline;"&gt;wxWidgets&lt;/a&gt; (the cross platform API pgAdmin is built on), but had only managed to build an executable that crashed whenever a modal dialogue was closed.&lt;br /&gt;&lt;br /&gt;So, after some investigation by myself and Andreas Pflug, I produced a reproduceable test case of the problem using the wxWidgets 'dialogs' sample, and emailled it to the wx developers list, along with details of some linking problems I'd also found. After some discussion, and speculation that the problems might have been caused by GTK being compiled by Sun's compiler and everything else by GNU's GCC, the problem was solved by Mike Wetherell, who committed a fix to the wxWidgets CVS, along with further fixes to resolve the linking issues.&lt;br /&gt;&lt;br /&gt;So, using a wxWidgets snapshot, coupled with the latest pgAdmin snapshot (containing a couple of other compilation and linking fixes), pgAdmin sprang to life both on the Sparc box, and the x86 Solaris box I built in the office &lt;img src="http://web.archive.org/web/20061011130551/http://people.planetpostgresql.org/dpage/templates/default/img/emoticons/smile.png" alt=":-)" class="emoticon" style="display: inline; vertical-align: bottom;" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p style="margin: 0px; font-family: verdana,arial,helvetica,sans-serif; padding-bottom: 0px;"&gt;'Enough of the yacking' I hear you cry, and 'how do I build it then'? Well, simple - here's what I installed:&lt;/p&gt;&lt;br /&gt;&lt;a href="http://web.archive.org/web/20061011130551/http://www.postgresql.org/ftp/source/v8.0.3/" style="color: rgb(0, 51, 102); text-decoration: underline;"&gt;PostgreSQL 8.0.3&lt;/a&gt; configured with:&lt;br /&gt;&lt;br /&gt;./configure --enable-thread-safety --with-openssl --without-readline&lt;br /&gt;&lt;br /&gt;&lt;a href="http://web.archive.org/web/20061011130551/http://people.planetpostgresql.org/dpage/%7Eftp://ftp.wxwidgets.org/pub/CVS_HEAD/files/" style="color: rgb(0, 51, 102); text-decoration: underline;"&gt;wxWidgets CVS snapshot&lt;/a&gt; from 2005-09-26 (or later, use the 'All' version) configured with:&lt;br /&gt;&lt;br /&gt;./configure --with-gtk --enable-gtk2 --enable-unicode --enable-mimetype=no&lt;br /&gt;&lt;br /&gt;&lt;a href="http://web.archive.org/web/20061011130551/http://developer.pgadmin.org/snapshots/src/" style="color: rgb(0, 51, 102); text-decoration: underline;"&gt;pgAdmin SVN snapshot&lt;/a&gt; from 2005-09-27 (or later), configured with:&lt;br /&gt;&lt;br /&gt;./configure&lt;br /&gt;&lt;br /&gt;There you have it - enjoy &lt;img src="http://web.archive.org/web/20061011130551/http://people.planetpostgresql.org/dpage/templates/default/img/emoticons/smile.png" alt=":-)" class="emoticon" style="display: inline; vertical-align: bottom;" /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-787756523335692882?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/787756523335692882/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2005/08/hello-solaris-im-pgadmin-iii.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/787756523335692882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/787756523335692882'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2005/08/hello-solaris-im-pgadmin-iii.html' title='Hello Solaris, I&apos;m pgAdmin III....'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-7181503816091283047</id><published>2005-07-22T12:28:00.000+01:00</published><updated>2008-11-17T12:28:59.528Z</updated><title type='text'>psqlODBC grows up</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: verdana; font-size: 13px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;If you've been following the development of psqlODBC at all, you'll probably know the Anoop Kumar from Pervasive Postgres has been working hard to update the PostgreSQL ODBC driver to use the standard libpq interface to communicate with PostgreSQL. The first version of the driver was released as a snapshot version about a week ago, and has been put through it's paces since then. A few memory leaks and other bugs have been fixed, and things are looking pretty darn good so far, considering how large these changes are.&lt;/p&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;There are immediate benefits to this change. First, psqlODBC now supports the v3 wire protocol now used by PostgreSQL, and when v4 is produced as it inevitabley will be, we'll automatically be able to support that as well. Second, we now benefit from other features that libpq provides - for example, support for &lt;a title="Libpq environment variables" href="http://web.archive.org/web/20061011130551/http://www.postgresql.org/docs/8.0/interactive/libpq-envars.html" style="color: rgb(0, 51, 102); text-decoration: underline; "&gt;environment variables&lt;/a&gt; like PGUSER and PGDATABASE and support for &lt;a title="Libpq password files" href="http://web.archive.org/web/20061011130551/http://www.postgresql.org/docs/8.0/interactive/libpq-pgpass.html" style="color: rgb(0, 51, 102); text-decoration: underline; "&gt;password files&lt;/a&gt;. It should also support authentication methods like Kerberos with little or no extra work.&lt;/p&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;One of the most requested features of psqlODBC is SSL support. Thanks to Anoop's hard work, I was able to add support for SSL to the driver in a little over an hour today - that will be included from the next snapshot release, 08.01.0003, which will probably be produced sometime next week.&lt;/p&gt;&lt;p style="font-family: verdana, arial, helvetica, sans-serif; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-bottom: 0px; "&gt;Anyhoo, if you get a minute, grab the latest &lt;a title="psqlODBC Snapshots" href="http://web.archive.org/web/20061011130551/http://www.postgresql.org/ftp/odbc/versions/snapshots/" style="color: rgb(0, 51, 102); text-decoration: underline; "&gt;snapshot&lt;/a&gt;, and give it a whirl. Bug reports to pgsql-odbc@postgresql.org please!&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-7181503816091283047?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7181503816091283047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7181503816091283047'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2005/07/psqlodbc-grows-up.html' title='psqlODBC grows up'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-7705033664276064627</id><published>2005-05-25T12:27:00.001+01:00</published><updated>2009-03-27T11:57:30.292Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgadmin'/><title type='text'>It's Alive!</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);font-family:verdana;font-size:13;"  &gt;Finally, after 2 weeks of frantic hacking between paid work, pgAgent is ready for testing! Anyone who follows the pgAdmin development work will already know this, however for those that don't, pgAgent is a job scheduler for PostgreSQL. Running as a service on windows and a daemon on *nix systems, it allows you to schedule jobs consisting of one or more SQL or shell/batch steps which run in sequence. Multi threading allows multiple jobs to run in parallel, and a nifty connection pooling mechanism ensures efficient resource usage on your server. Each job defined may have one or more schedules attached to it, each of which is based on an enhanced cron-style format. Management is from the pgAdmin console (of course), and the agents themselves can run on one or more machines at once.&lt;br /&gt;&lt;br /&gt;Anyhoo, if you wanna give it a try, grab a snapshot from &lt;a href="http://web.archive.org/web/20061011130551/http://developer.pgadmin.org/snapshots/" style="color: rgb(0, 51, 102); text-decoration: underline;"&gt;http://developer.pgadmin.org/snapshots/&lt;/a&gt; and schedule away! Feedback is welcome of course - please send any to &lt;a href="mailto:pgadmin-hackers@postgresql.org" style="color: rgb(0, 51, 102); text-decoration: underline;"&gt;pgadmin-hackers@postgresql.org&lt;/a&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-7705033664276064627?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7705033664276064627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/7705033664276064627'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2005/05/its-alive.html' title='It&apos;s Alive!'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-2873849281400123732</id><published>2005-05-05T12:26:00.001+01:00</published><updated>2009-03-27T11:57:44.923Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='pgadmin'/><title type='text'>pgAdmin moves to Subversion</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51);font-family:verdana;font-size:13;"  &gt;So there I am, committing a whole heap of changes to the pgAdmin build system when Andreas Pflug emails me and suggest that whilst I'm at it, we could restructure the source tree to fix various issues that have cropped up since the project started. Good idea I think, however as anyone who has used it knows, you cannot move files and directories in CVS without losing the continuity of the history.&lt;br /&gt;&lt;br /&gt;Subversion kept getting lots of good recommendations, and as it happens I was also replacing the main developement server, so after discussion and some playing with a test installation of Subversion for a while, we decide to migrate to it at the same time as we migrate to the new machine.&lt;br /&gt;&lt;br /&gt;I won't write a full howto here, but I will include a warning about a gotcha that caught me out - to get the &lt;a href="http://web.archive.org/web/20061011130551/http://viewcvs.sourceforge.net/" style="color: rgb(0, 51, 102); text-decoration: underline;"&gt;ViewCVS&lt;/a&gt; web interface runnng you need to install &lt;a href="http://web.archive.org/web/20061011130551/http://www.swig.org/" style="color: rgb(0, 51, 102); text-decoration: underline;"&gt;SWIG&lt;/a&gt; first, and then build and install the Subversion Python bindings - instructions for which are hidden away in subversion/bindings/swig/INSTALL in the Subversion source tarball. You will also need to use ViewCVS 1.0-dev, straight from the CVS.&lt;br /&gt;&lt;br /&gt;So, yesterday it all went live, and so far, so good. I've made a heap of commits updating documentation and build scripts etc. and Andreas got in on the act with some source restructuring this afternoon. The only problems so far have been in ViewCVS. The first was my fault - diff's weren't working, and after 30 minutes or so of Googling and trying to understand the Python code (I don't speak Python yet), I realised it was because I hadn't installed GNU diffutils on the new dev box. D'oh! The second problem still needs investigation - the CVS Graph buttons are not showing up. It seems this is a known problem though.&lt;br /&gt;&lt;br /&gt;Anyway, if you wanna take a look, head over to &lt;a href="http://web.archive.org/web/20061011130551/http://svn.pgadmin.org/" style="color: rgb(0, 51, 102); text-decoration: underline;"&gt;http://svn.pgadmin.org&lt;/a&gt;, or point your Subversion client at svn://svn.pgadmin.org/&lt;br /&gt;&lt;br /&gt;By strange coincidence I see that the old "let's move to a new source control program" discussion is resurfacing on pgsql-hackers.... I wonder where it'll go this time?&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-2873849281400123732?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/2873849281400123732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2005/05/pgadmin-moves-to-subversion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2873849281400123732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/2873849281400123732'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2005/05/pgadmin-moves-to-subversion.html' title='pgAdmin moves to Subversion'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-5993431503505296174</id><published>2005-04-19T12:24:00.000+01:00</published><updated>2008-11-17T12:25:08.774Z</updated><title type='text'>Support rant - Dave goes 'off on one'!!!</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: verdana; font-size: 13px; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; "&gt;&lt;b&gt;Warning:&lt;/b&gt; The following rant is not aimed at anyone in particular. It applies to a very small minority of the people I deal with on a daily basis who have unfortunately found a great way to cheese me off. I have been very careful to try not to make it sound like I don't respect end-users in general, however, if any of it does sound that way, it is entirely unintentional and I apologise in advance!&lt;br /&gt;&lt;br /&gt;It's a fact of life that if you publically contribute to an Open Source project, then your inbox is going to bloat. Google currently has around 2000 hits for my primary email address in the web and groups databases, which means that that address is probably on a fair percentage of the spam address lists in the world- certainly it seems that way given that I can receive 200 or more junk messages on a bad day! &lt;br /&gt;&lt;br /&gt;That's not what this rant is about though - I've long since given up complaining about spam and setup various filters instead that keep the majority of it from hitting my inbox at all. This rant is about support. Like many other people involved on OSS projects, I spend a great deal of time writing code and documentation, fixing bugs and helping users out, all for the fun of working on the project. What really irks me though, are the few users that cannot be bothered to take the time to help themselves and simply send a private email demanding immediate help with their 'problem'. Consider the following email, typical of a dozen or more I might receive in a week:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dear Save,&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;I need Postgre for my prject. Tell me where I can download the Postgre and how to set it up for my project.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;I expect you immediate attention in this matter.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Sincerly xyz&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;OK, first off, my name is Dave. Not Save but Dave with a 'D' for doughnut. Why should I be bothered to help you (for free) if you can't be bothered to get my name right? You would be amazed how often people do this - and it's not like Dave is a particularly unusual name.&lt;br /&gt;&lt;br /&gt;Second, you got the project name wrong. OK, I'll grant you that we in the Open Source business have an annoying habit of giving projects cryptic names, but c'mon, Google has 5.75 &lt;i&gt;million&lt;/i&gt; pages with PostgreSQL in them - surely that's a clue?&lt;br /&gt;&lt;br /&gt;Right, third. Spelling &amp;amp; grammar. It's one thing if you're not an English speaker - heck, your English is probably far better than I'll ever manage to speak your language - but if you're going to demand help from someone, then it wouldn't hurt to check for at least the most glaring errors before hitting send. There really is no reason to spell the same word 14 different ways in the same message!&lt;br /&gt;&lt;br /&gt;Next up, why are you mailing me directly? I'm one of a hundred or more people working on PostgreSQL, and nowhere is my email address listed as a support resource. OK, so I could maybe understand this more if it was a pgAdmin query given that I started the project (not that that makes it OK), but this is a PostgreSQL query.&lt;br /&gt;&lt;br /&gt;Next one - downloading PostgreSQL. Really, how hard is it to go to the website and click 'Download'? A very wise PostgreSQL hacker recently said to me 'if someone cannot figure out that for themselves, what hope do they have of running a DBMS?'. &lt;br /&gt;&lt;br /&gt;OK, number 6. 'Tell me how to set it up for my project'. WTF? I really do see this one quite often. How on earth am I expected to tell you anything about your project - and even if you had remembered to tell me what it was, why would I want to provide free consultancy? Bug fixing and a little guidance is one thing, but I'm not about to do your job as well as mine!&lt;br /&gt;&lt;br /&gt;Finally, number 7. My immediate attention is expected? Yup, I'll give it my immediate attention - click, drag, drop, empty trash. Done. Next please.&lt;br /&gt;&lt;br /&gt;OK, so it probably sounds like I've got a downer on everyone that asks for help - that is absolutely &lt;b&gt;not&lt;/b&gt; the case. Although Eric Raymond puts it best in his paper &lt;a href="http://web.archive.org/web/20061011130551/http://www.catb.org/~esr/faqs/smart-questions.html" style="color: rgb(0, 51, 102); text-decoration: underline; "&gt;How To Ask Questions The Smart Way&lt;/a&gt;, here's a few simple hints to avoid cheesing off the people you want a little help from:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Try to help yourself first. Check the website, the docs, Google Web/Google Groups. Above all, make sure you don't end up asking questions that are answered in easily accessible places such as FAQs, or worse, the project homepage.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Ask in the right place. Check the website for the project - there will almost certainly be support forums or other resources listed somewhere. Only contact the author directly as an absolute last resort.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Describe your problem clearly, and simply. Include system configuration details such as OS and software versions. If reporting a bug, try to include a procedure with which the bug may be reproduced.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Don't demand help. I personally take great exception to that, and I'm sure most other people do as well. Taking that sort of tone with me is a privilege reserved solely for my wife and my boss!&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Don't expect your task to be done for you. Hackers and other users will usually help with problems, but not lazyness!&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;So there you go. How to piss off a hacker and how to get help in one simple rant! &lt;br /&gt;&lt;br /&gt;&lt;em&gt;This blog entry has been checked by an independent PostgreSQL hacker. Please send any objections to the sentiments held within to /dev/null&lt;/em&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-5993431503505296174?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/5993431503505296174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/5993431503505296174'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2005/04/support-rant-dave-goes-off-on-one.html' title='Support rant - Dave goes &apos;off on one&apos;!!!'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-3645070705954691807.post-4073309296997815536</id><published>2005-04-10T12:21:00.000+01:00</published><updated>2008-11-17T12:25:29.781Z</updated><title type='text'>Err, OK then - a blog</title><content type='html'>&lt;span class="Apple-style-span"   style="color: rgb(51, 51, 51);   -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: 2px; font-family:verdana;font-size:13px;"&gt;So there I am on a Saturday afternoon having just sent the kids off on a brief holiday with the in-laws, helping my brother sort out a DNS snafu with one of his sites (&lt;a href="http://web.archive.org/web/20061011130551/http://www.endurancelife.com/" style="color: rgb(0, 51, 102); text-decoration: underline; "&gt;Endurance Life&lt;/a&gt;), when Devrim GUNDUZ pings me on ICQ. &lt;br /&gt;&lt;br /&gt;"Morning Dave" &lt;br /&gt;&lt;br /&gt;he says, followed by &lt;br /&gt;&lt;br /&gt;"do you want to start a blog on PlanetPostgreSQL?". &lt;br /&gt;&lt;br /&gt;My instant reaction is along the lines of: &lt;br /&gt;&lt;br /&gt;"what's the point? Who'd want to read my drivel?" &lt;br /&gt;&lt;br /&gt;and well, I'm still not convinced that anyone would! Still, Devrim pointed out that as one of the PostgreSQL webmasters, pgAdmin lead developer and a pgInstaller developer I might actually have something vaguely interesting to say, so for some reason that still completely escapes me, I said "OK, why not". I'm damn sure I'll get the mickey taken out of me by the anti-bloggers at work but who cares? So, anyway; I'm Dave Page and well, I guess this is my shiny new blog!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3645070705954691807-4073309296997815536?l=pgsnake.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pgsnake.blogspot.com/feeds/4073309296997815536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://pgsnake.blogspot.com/2005/04/err-ok-then-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/4073309296997815536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3645070705954691807/posts/default/4073309296997815536'/><link rel='alternate' type='text/html' href='http://pgsnake.blogspot.com/2005/04/err-ok-then-blog.html' title='Err, OK then - a blog'/><author><name>Dave Page</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_5d50ZFJBYts/SSFgfwteWZI/AAAAAAAAAAY/c_QaSOlWvSM/S220/davepage.jpg'/></author><thr:total>0</thr:total></entry></feed>
