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

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

<item>
    <title>What's in a version number?</title>
    <link>http://blog.hagander.net/archives/134-Whats-in-a-version-number.html</link>
            <category>MySQL</category>
            <category>PostgreSQL</category>
    
    <comments>http://blog.hagander.net/archives/134-Whats-in-a-version-number.html#comments</comments>
    <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=134</wfw:comment>

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

    <author>nospam@example.com (Magnus Hagander)</author>
    <content:encoded>
    &lt;p&gt;The other day I came across &lt;i&gt;yet another&lt;/i&gt; company (who shall remain nameless, but are certainly not alone) who support using PostgreSQL as a backend for their product. And the support &lt;i&gt;only&lt;/i&gt; version &lt;i&gt;8.2.3&lt;/i&gt;. While I prefer using 8.3 on all production servers today, I find it perfectly normal and acceptable that they don&#039;t support that, and only 8.2. What is &lt;i&gt;not&lt;/i&gt; acceptable to me is only supporting 8.2.3. The 8.2 branch is currently at 8.2.11, and there are several critical bugs - including security issues - patched in these versions. I would not recommend &lt;i&gt;any&lt;/i&gt; customer of mine to use 8.2.&lt;i&gt;3&lt;/i&gt; today.&lt;/p&gt;

So why is this? The only reason I can think of is that these company simply haven&#039;t bothered to figure out how the version numbering of the products actually works. For those who don&#039;t know, a quick intro to the &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/www.postgresql.org/support/versioning&#039;]);&quot;  href=&quot;http://www.postgresql.org/support/versioning&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;PostgreSQL system&lt;/a&gt;:
&lt;ul&gt;
    &lt;li&gt;Major versions are 8.0, 8.1, 8.2, 8.3 (no, you cannot reasonably claim to support &quot;PostgreSQL version 8&quot;, which is also not uncommon, because that includes potentially incompatible future version)&lt;/li&gt;
    &lt;li&gt;Minor versions are 8.2.1, 8.2.2, 8.2.3 etc.&lt;/li&gt;
    &lt;li&gt;Minor versions contain &lt;i&gt;only critical fixes&lt;/i&gt;. There are &lt;i&gt;never&lt;/i&gt; new features introduced. There are &lt;i&gt;almost never&lt;/i&gt; any kind of incompatible changes introduced (I say almost never, because it &lt;i&gt;has&lt;/i&gt; happened when required to plug a security issue)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This should make it fairly obvious that it is &lt;i&gt;counterproductive&lt;/i&gt; to support only 8.2.3. Because you are basically forcing the customers &lt;i&gt;not&lt;/i&gt; to apply critical security fixes.&lt;/p&gt;

&lt;p&gt;The fact that different databases follow different patterns here obviously makes it a little bit harder for the vendor. For example, it would &lt;i&gt;not&lt;/i&gt; make sense to say you support &lt;i&gt;MySQL 5.1&lt;/i&gt;. Because that can include both beta and release candidate versions. And they do regularly introduce new features and change behavior between versions like 5.1.x and 5.1.y. That&#039;s just how their numbering works. I don&#039;t personally like that way of numbering releases, but if I was putting out a product saying which versions of MySQL I support, I&#039;d certainly read up on exactly how the version numbers work first.&lt;/p&gt;

&lt;p&gt;If you cannot take the time to figure out how the release process of your database product works, why does it matter that you put in the version number &lt;i&gt;at all&lt;/i&gt;? It&#039;s not likely it&#039;s properly supported anyway. That statement should be about &quot;once tested with version x&quot;, not actually supported...&lt;/p&gt;

&lt;p&gt;And to finish off: what I&#039;d &lt;i&gt;like&lt;/i&gt; to see is &quot;we support version 8.2 starting at version 8.2.3&quot; for example. That clearly identifies which major release is supported (8.2). And it also indicates that &lt;i&gt;vendor&lt;/i&gt; takes it upon themselves to make sure their product continue working if the customer applies relevant security patches (AKA minor releases).&lt;/p&gt;

&lt;p&gt;Ok, that&#039;s enough ranting for today...&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Thu, 15 Jan 2009 13:30:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hagander.net/archives/134-guid.html</guid>
    <category>mysql</category>
<category>postgresql</category>

</item>
<item>
    <title>On the topic of release quality</title>
    <link>http://blog.hagander.net/archives/128-On-the-topic-of-release-quality.html</link>
            <category>MySQL</category>
            <category>PostgreSQL</category>
    
    <comments>http://blog.hagander.net/archives/128-On-the-topic-of-release-quality.html#comments</comments>
    <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=128</wfw:comment>

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

    <author>nospam@example.com (Magnus Hagander)</author>
    <content:encoded>
    &lt;p&gt;This post was inspired by &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/monty-says.blogspot.com/2008/11/oops-we-did-it-again-mysql-51-released.html&#039;]);&quot;  href=&quot;http://monty-says.blogspot.com/2008/11/oops-we-did-it-again-mysql-51-released.html&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;Montys post&lt;/a&gt; about MySQL release 5.1, and the many discussions it has created both around the web and offline. The question mainly being - why has nobody made such a post about PostgreSQL yet? Is it because it hasn&#039;t happened, or just because nobody has posted about it.&lt;/p&gt;

&lt;p&gt;We all know that there is no such thing as bug-free software. This obviously includes both PostgreSQL and MySQL, as well as all the commercial competitors - claiming anything else is clearly untrue. But what I find remarkable from Montys post are mainly:&lt;/p&gt;


&lt;ul&gt;
    &lt;li&gt;MySQL 5.1 has been released with &lt;strong&gt;known&lt;/strong&gt; critical bugs (crash/wrong result). As far as I know, this has never been done with PostgreSQL (at least if we&#039;re talking &quot;modern times&quot;, since after the product became reasonably stable). And certainly not the number of issues that Monty has listed for MySQL 5.1 - it&#039;s not just one or two!&lt;/li&gt;
    &lt;li&gt;There are also critical bugs that were present in 5.0, that &lt;strong&gt;still&lt;/strong&gt; haven&#039;t been fixed in 5.1. &lt;/li&gt;
    &lt;li&gt;We already know that MySQL 5.0 was released &quot;too early&quot;. We already know that MySQL 5.1 was declared RC &quot;too early&quot;. It&#039;s remarkable that 5.1 was &lt;strong&gt;also&lt;/strong&gt; released &quot;too early&quot; in that case - and for non-technical reasons again. In theory, this &quot;can&#039;t happen&quot; with the PostgreSQL release model, since it&#039;s based only on when the features are &quot;ready&quot;, not when you need a new release for some other reasons. That&#039;s in theory. I know in the past we have tried to schedule releases around certain conferences and such, for better announcement effects. In practice, though, I think this has only led to a release being &lt;strong&gt;postponed&lt;/strong&gt;, never being rushed.&lt;/li&gt;
    &lt;li&gt;MySQL apparantly keep some bug reports hidden from the public (the referenced bug &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/bugs.mysql.com/bug.php?id=37936&#039;]);&quot;  href=&quot;http://bugs.mysql.com/bug.php?id=37936&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;37936&lt;/a&gt; for example). How&#039;s that for open... I approve of keeping them hidden for security bugs only - but if that bug is a security bug, it&#039;s clearly taken way too long to fix, given the dates on bugs around it.&lt;/li&gt;
    &lt;li&gt;I still think they&#039;ve designed their version numbering system to deliberately confuse the customers about what is a beta, what is a release candidate and what is a release. What is so easy with either labeling them as PostgreSQL does (8.3beta, 8.3RC, 8.3.0), or using the in open source popular system of using even-numbered releases for stable releases and odd numbers for beta/testing releases?&lt;/li&gt;
    &lt;li&gt;It took them over a year to get from Release Candidate to release.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, there are &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/hideandsql.com/?p=21&#039;]);&quot;  href=&quot;http://hideandsql.com/?p=21&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;several&lt;/a&gt; &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/fakeamelia.blogspot.com/2008/12/monty-rants-or-yet-another-case-of.html&#039;]);&quot;  href=&quot;http://fakeamelia.blogspot.com/2008/12/monty-rants-or-yet-another-case-of.html&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;posts&lt;/a&gt; I found that are questioning Montys post, saying that the quality is just fine - and backing this up with actual experiences in deploying 5.1. I do think both sides are right here - it&#039;s perfectly possible to deploy 5.1 without hitting these bugs, as they are &quot;corner-case&quot; issues. But that does not decrease the importance of having releases without &lt;strong&gt;known&lt;/strong&gt; bugs in them. And if there &lt;strong&gt;are&lt;/strong&gt; known bugs, they should at least be listed &lt;strong&gt;very clearly&lt;/strong&gt; in the release notes/announcement. Not doing this is, IMHO, &lt;strong&gt;simply irresponsible&lt;/strong&gt;. Especially least for a database server which is supposed to safeguard all your work...&lt;/p&gt;

&lt;h3 id=&quot;toc0&quot;&gt;So how does PostgreSQL measure up&lt;/h3&gt;
 &lt;br /&gt;&lt;a href=&quot;http://blog.hagander.net/archives/128-On-the-topic-of-release-quality.html#extended&quot;&gt;Continue reading &quot;On the topic of release quality&quot;&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 01 Dec 2008 13:54:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hagander.net/archives/128-guid.html</guid>
    <category>mysql</category>
<category>postgresql</category>

</item>
<item>
    <title>A new MySQL gotcha</title>
    <link>http://blog.hagander.net/archives/78-A-new-MySQL-gotcha.html</link>
            <category>MySQL</category>
            <category>PostgreSQL</category>
    
    <comments>http://blog.hagander.net/archives/78-A-new-MySQL-gotcha.html#comments</comments>
    <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=78</wfw:comment>

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

    <author>nospam@example.com (Magnus Hagander)</author>
    <content:encoded>
    At least it&#039;s new for me, and it&#039;s not on &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/sql-info.de/mysql/gotchas.html&#039;]);&quot;  href=&quot;http://sql-info.de/mysql/gotchas.html&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;the list&lt;/a&gt;. Bugged a colleague of mine today, and we were both very surprised for a while until we figured it out. Ok, it&#039;s not very complex, but the deal was that:
&lt;pre&gt;&lt;code&gt;SELECT CAST(1 as CHAR)&lt;/code&gt;&lt;/pre&gt;

works, but
&lt;pre&gt;&lt;code&gt;SELECT CAST (1 as CHAR)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;does not (syntax error!)&lt;/p&gt;

&lt;p&gt;Now, CAST is already &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/dev.mysql.com/doc/refman/5.1/en/cast-functions.html&#039;]);&quot;  href=&quot;http://dev.mysql.com/doc/refman/5.1/en/cast-functions.html&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;horribly limited&lt;/a&gt; in MySQL (who came up with the idea that you shouldn&#039;t be able to cast to all available types if it&#039;s reasonable to do the conversion?! Like from int to text...), but this is just too much. Since when does whitespace before a parenthesis matter in SQL?! Sheesh...&lt;/p&gt;

Yet another reason to prefer PostgreSQL... 
    </content:encoded>

    <pubDate>Thu, 17 Apr 2008 23:00:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hagander.net/archives/78-guid.html</guid>
    <category>mysql</category>
<category>postgresql</category>

</item>
<item>
    <title>Not quite open source</title>
    <link>http://blog.hagander.net/archives/77-Not-quite-open-source.html</link>
            <category>MySQL</category>
            <category>PostgreSQL</category>
    
    <comments>http://blog.hagander.net/archives/77-Not-quite-open-source.html#comments</comments>
    <wfw:comment>http://blog.hagander.net/wfwcomment.php?cid=77</wfw:comment>

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

    <author>nospam@example.com (Magnus Hagander)</author>
    <content:encoded>
    &lt;p&gt;I found a &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/jcole.us/blog/archives/2008/04/14/just-announced-mysql-to-launch-new-features-only-in-mysql-enterprise/&#039;]);&quot;  href=&quot;http://jcole.us/blog/archives/2008/04/14/just-announced-mysql-to-launch-new-features-only-in-mysql-enterprise/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;couple&lt;/a&gt; of &lt;a onclick=&quot;_gaq.push([&#039;_trackPageview&#039;, &#039;/extlink/www.mysqlperformanceblog.com/2008/04/15/partially-opensourced/&#039;]);&quot;  href=&quot;http://www.mysqlperformanceblog.com/2008/04/15/partially-opensourced/&quot; onclick=&quot;window.open(this.href, &#039;_blank&#039;); return false;&quot;&gt;posts&lt;/a&gt; over on Planet MySQL today about some new announcement from the dolphin-herders. Apparantly, the Sun/MySQL combination is now starting to push at least some features for Enterprise customers only. AFAIK this isn&#039;t entirely new, since they&#039;ve had some tools previously only available to enterprise customers, but I guess this would be a first for actual server code. (Though the way patches are moved between Enterprise and Community never really made sense to me, that&#039;s probably because I didn&#039;t study it in enough detail)&lt;/p&gt;

&lt;p&gt;From what I can tell, this puts MySQL more towards the situation that PostgreSQL has with EnterpriseDB (and their now renamed product Postgres Plus Advanced Server) and some other companies. This is a proprietary product that sits on top of an open source foundation that is PostgreSQL. Now, EnterpriseDB initially marketed this product as opensource - which was incorrect, and they got quite a bit of bad press about it. The question is, what will Sun/MySQL do now. Will they continue to market their Enterprise product as Open Source, which it obviously isn&#039;t, or will they change that?&lt;/p&gt;

&lt;p&gt;It is also interesting to note that this would not be possible if MySQL was licensed as pure GPL. With the current model, this is only possible for Sun/MySQL to do, and no other company. Unlike PostgreSQL which is BSD licensed, and allows any company to create this kind of proprietary derived product. If I was a contributor to MySQL (which I&#039;m not), I would consider this quite unfair. But that&#039;s what you get with the dual licensing model used by MySQL, and this is why contributors have to sign away their rights to Sun/MySQL. It&#039;s not surprising to me that this happens, and it&#039;s one of the reasons I haven&#039;t liked the MySQL licensing model from the start. The other side of the coin would be a pure GPL license, which would not allow anybody at all to create a proprietary derived product - but that&#039;s a whole different debate to take on...&lt;/p&gt;

&lt;p&gt;So is this a dealbreaker? Well, I don&#039;t know exactly which features they are talking about in this case (since I&#039;m not a Sun/MySQL partner), but there was talk of it being things around backups. IMHO, such extremely core functionality really should be in the main product - which is how PostgreSQL has it today. But more importantly, if this is the new path Sun/MySQL is going to be heading down with their products, I can see how that will be a problem for a number of their customers.&lt;/p&gt;

&lt;p&gt;And if you&#039;re one of them - you&#039;re always welcome to cross over and join us over here by the elephant...&lt;/p&gt;

 
    </content:encoded>

    <pubDate>Mon, 14 Apr 2008 23:00:00 +0000</pubDate>
    <guid isPermaLink="false">http://blog.hagander.net/archives/77-guid.html</guid>
    <category>mysql</category>
<category>postgresql</category>

</item>

</channel>
</rss>