<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: PostgreSQL adds windowing functions and common table expressions</title>
	<atom:link href="http://www.xaprb.com/blog/2009/01/21/postgresql-adds-windowing-functions-and-common-table-expressions/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.xaprb.com/blog/2009/01/21/postgresql-adds-windowing-functions-and-common-table-expressions/</link>
	<description>Stay curious!</description>
	<lastBuildDate>Thu, 09 Feb 2012 20:41:20 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Mark</title>
		<link>http://www.xaprb.com/blog/2009/01/21/postgresql-adds-windowing-functions-and-common-table-expressions/#comment-18061</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Wed, 24 Mar 2010 13:49:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=782#comment-18061</guid>
		<description>I&#039;m starting to see the light with Postgresql myself.  There are two major knocks to mysql in developing my application. 1) It doesn&#039;t support recursive queries, which allows me to avoid cursors without thinking too hard.  2)  It doesn&#039;t support dbi link-like functionality where I can query another database from a different vendor without using an ETL tool. 3) It&#039;s not quite ANSI-SQL IMHO.   MySql comes in front in terms of error handling now that they&#039;ve added signal.  And also they can natively support clusters via their NDB engine.  (Which I have yet to fool around with but I don&#039;t hear much about it).  Performance I haven&#039;t had enough exposure to comment on.</description>
		<content:encoded><![CDATA[<p>I&#8217;m starting to see the light with Postgresql myself.  There are two major knocks to mysql in developing my application. 1) It doesn&#8217;t support recursive queries, which allows me to avoid cursors without thinking too hard.  2)  It doesn&#8217;t support dbi link-like functionality where I can query another database from a different vendor without using an ETL tool. 3) It&#8217;s not quite ANSI-SQL IMHO.   MySql comes in front in terms of error handling now that they&#8217;ve added signal.  And also they can natively support clusters via their NDB engine.  (Which I have yet to fool around with but I don&#8217;t hear much about it).  Performance I haven&#8217;t had enough exposure to comment on.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: VLDG</title>
		<link>http://www.xaprb.com/blog/2009/01/21/postgresql-adds-windowing-functions-and-common-table-expressions/#comment-16354</link>
		<dc:creator>VLDG</dc:creator>
		<pubDate>Wed, 29 Apr 2009 22:08:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=782#comment-16354</guid>
		<description>CTE&#039;s is great : I discover this in Firebird 2.1 and it&#039;s great SQL enhancement :)</description>
		<content:encoded><![CDATA[<p>CTE&#8217;s is great : I discover this in Firebird 2.1 and it&#8217;s great SQL enhancement :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Xaprb</title>
		<link>http://www.xaprb.com/blog/2009/01/21/postgresql-adds-windowing-functions-and-common-table-expressions/#comment-15731</link>
		<dc:creator>Xaprb</dc:creator>
		<pubDate>Fri, 23 Jan 2009 19:14:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=782#comment-15731</guid>
		<description>&quot;Can you elaborate on why left-deep nested-loops query plans makes it easier?&quot;

Hey, I had a disclaimer there!  I love disclaimers.

I wasn&#039;t being precise with my language.  What I mean is something more like the following: A storage engine API in general isn&#039;t to blame, but MySQL&#039;s has caused a gripe or two from storage engine writers whose engines have extra intelligence that ought to live at a lower level than the server layer in MySQL.  And I&#039;m being cavalier in my original text, and conflating that with the difficulty the nested-loop plan causes for more intricate queries.  Let me shift the blame and go completely off-topic to distract readers from my carelessness:

The nested-loop query plan may be part of the reason MySQL doesn&#039;t currently support FULL OUTER JOIN.  FULL OUTER JOIN is perfectly possible with the storage engine API.  The server does IN() subqueries with the storage engine API in a suboptimal way.

Feel the cognitive dissonance!  Just try forming a coherent argument against that!</description>
		<content:encoded><![CDATA[<p>&#8220;Can you elaborate on why left-deep nested-loops query plans makes it easier?&#8221;</p>
<p>Hey, I had a disclaimer there!  I love disclaimers.</p>
<p>I wasn&#8217;t being precise with my language.  What I mean is something more like the following: A storage engine API in general isn&#8217;t to blame, but MySQL&#8217;s has caused a gripe or two from storage engine writers whose engines have extra intelligence that ought to live at a lower level than the server layer in MySQL.  And I&#8217;m being cavalier in my original text, and conflating that with the difficulty the nested-loop plan causes for more intricate queries.  Let me shift the blame and go completely off-topic to distract readers from my carelessness:</p>
<p>The nested-loop query plan may be part of the reason MySQL doesn&#8217;t currently support FULL OUTER JOIN.  FULL OUTER JOIN is perfectly possible with the storage engine API.  The server does IN() subqueries with the storage engine API in a suboptimal way.</p>
<p>Feel the cognitive dissonance!  Just try forming a coherent argument against that!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shlomi Noach</title>
		<link>http://www.xaprb.com/blog/2009/01/21/postgresql-adds-windowing-functions-and-common-table-expressions/#comment-15725</link>
		<dc:creator>Shlomi Noach</dc:creator>
		<pubDate>Thu, 22 Jan 2009 11:21:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=782#comment-15725</guid>
		<description>@Lukas,

Of course, you are right. I was referring to the SQL implementation part. Still other issues are with locking (how do you coordinate locks between different engines?), transactions (rolling back and synchronous commit for two different transactional engines), backup types and more.</description>
		<content:encoded><![CDATA[<p>@Lukas,</p>
<p>Of course, you are right. I was referring to the SQL implementation part. Still other issues are with locking (how do you coordinate locks between different engines?), transactions (rolling back and synchronous commit for two different transactional engines), backup types and more.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andy</title>
		<link>http://www.xaprb.com/blog/2009/01/21/postgresql-adds-windowing-functions-and-common-table-expressions/#comment-15723</link>
		<dc:creator>Andy</dc:creator>
		<pubDate>Thu, 22 Jan 2009 08:21:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.xaprb.com/blog/?p=782#comment-15723</guid>
		<description>depesz.com has a good post on CTE&#039;s in PG 8.4 as well:
&lt;a href=&quot;http://www.depesz.com/index.php/2008/10/07/waiting-for-84-common-table-expressions-with-queries/&quot; rel=&quot;nofollow&quot;&gt;http://www.depesz.com/index.php/2008/10/07/waiting-for-84-common-table-expressions-with-queries/&lt;/a&gt;

And the Postgres documentation:
&lt;a href=&quot;http://developer.postgresql.org/pgdocs/postgres/queries-with.html&quot; rel=&quot;nofollow&quot;&gt;http://developer.postgresql.org/pgdocs/postgres/queries-with.html&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>depesz.com has a good post on CTE&#8217;s in PG 8.4 as well:<br />
<a href="http://www.depesz.com/index.php/2008/10/07/waiting-for-84-common-table-expressions-with-queries/" rel="nofollow">http://www.depesz.com/index.php/2008/10/07/waiting-for-84-common-table-expressions-with-queries/</a></p>
<p>And the Postgres documentation:<br />
<a href="http://developer.postgresql.org/pgdocs/postgres/queries-with.html" rel="nofollow">http://developer.postgresql.org/pgdocs/postgres/queries-with.html</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>

