<?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: Null-Aware Anti-Join</title>
	<atom:link href="http://structureddata.org/2008/05/22/null-aware-anti-join/feed/" rel="self" type="application/rss+xml" />
	<link>http://structureddata.org/2008/05/22/null-aware-anti-join/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=null-aware-anti-join</link>
	<description>Data, Databases, Performance &#38; Scalability</description>
	<lastBuildDate>Mon, 30 Jan 2012 17:05:12 -0500</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Adrian Angelov</title>
		<link>http://structureddata.org/2008/05/22/null-aware-anti-join/#comment-16013</link>
		<dc:creator>Adrian Angelov</dc:creator>
		<pubDate>Wed, 02 Feb 2011 13:47:09 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=64#comment-16013</guid>
		<description>Hi Greg,
thanks for the provided info.

I&#039;m pretty sceptical about all the Oracle slogans - &#039;The Information Company&#039; and so on.

Searching the Oracle database 11gR2 documentation for:

- antijoin ( http://www.oracle.com/pls/db112/search?remark=quick_search&amp;word=antijoin )
returns 6 entries. Only one of these 6 entries provides a clue what antijoin is
http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/statements_10002.htm#i2182875

- null aware
the first match : &quot;Null aware antijoins&quot; specified in &quot;Table 1-5 Optimizer Features for Oracle Database 11g Releases&quot;
on http://download.oracle.com/docs/cd/E11882_01/server.112/e17110/initparams164.htm#REFRN10141
and that&#039;s the only meaningful search result.

Using the Oracle database 11gR2 documentation there is no way to know what&#039;s all about when &#039;Null aware antijoins&#039; are involved.
Organizations buy the software, pay support fees every year ... have Metalink access.
Ouch, it hurts, there is nothing about &#039;Null aware antijoin&#039; on Metalink too.

Just one bug with the following description:

Bug 9929660 
&quot;
Description
    Incorrect Join information not invalidated properly in the case of null aware
    antijoin queries.
&quot;
And there is no way to understand this description since null aware antijoin is not documented( the customer who is trying to investigate for bugs that might affect his shop would just ignore this bug).

Why Oracle doesn&#039;t document such new optimizer improvements in the documentation by providing 
- examples in the first place(the way you did it) - I&#039;m sure that the new feature was tested using examples, so examples are available for sure.
- the purpose of the improvment - &#039;Null aware antijoins&#039; name of an improvement sounds great but when you don&#039;t know the meaning, what&#039;s the purpose to be mentioned.

It&#039;s embarrassing that Oracle just mentions an improvement and that&#039;s all. There is nothing else that will give some light what&#039;s this improvement and how customers could benefit from it.

What&#039;s you opinion? Why it is the way as it is now?
(as of now knowledge sharing of such improvements is not documented but posted on blogs, forums, oak table members&#039; books and so on. 
It&#039;s for sure that Oracle has the knowledge and it&#039;s not so hard to publish it in the documentation )


I&#039;m very thankful for your Oracle database related inputs and the the way it influences me. 

Just curious, why it is not the way it seems right to me.

Thanks again.</description>
		<content:encoded><![CDATA[<p>Hi Greg,<br />
thanks for the provided info.</p>
<p>I&#8217;m pretty sceptical about all the Oracle slogans &#8211; &#8216;The Information Company&#8217; and so on.</p>
<p>Searching the Oracle database 11gR2 documentation for:</p>
<p>- antijoin ( <a href="http://www.oracle.com/pls/db112/search?remark=quick_search&#038;word=antijoin" rel="nofollow">http://www.oracle.com/pls/db112/search?remark=quick_search&#038;word=antijoin</a> )<br />
returns 6 entries. Only one of these 6 entries provides a clue what antijoin is<br />
<a href="http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/statements_10002.htm#i2182875" rel="nofollow">http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/statements_10002.htm#i2182875</a></p>
<p>- null aware<br />
the first match : &#8220;Null aware antijoins&#8221; specified in &#8220;Table 1-5 Optimizer Features for Oracle Database 11g Releases&#8221;<br />
on <a href="http://download.oracle.com/docs/cd/E11882_01/server.112/e17110/initparams164.htm#REFRN10141" rel="nofollow">http://download.oracle.com/docs/cd/E11882_01/server.112/e17110/initparams164.htm#REFRN10141</a><br />
and that&#8217;s the only meaningful search result.</p>
<p>Using the Oracle database 11gR2 documentation there is no way to know what&#8217;s all about when &#8216;Null aware antijoins&#8217; are involved.<br />
Organizations buy the software, pay support fees every year &#8230; have Metalink access.<br />
Ouch, it hurts, there is nothing about &#8216;Null aware antijoin&#8217; on Metalink too.</p>
<p>Just one bug with the following description:</p>
<p>Bug 9929660<br />
&#8221;<br />
Description<br />
    Incorrect Join information not invalidated properly in the case of null aware<br />
    antijoin queries.<br />
&#8221;<br />
And there is no way to understand this description since null aware antijoin is not documented( the customer who is trying to investigate for bugs that might affect his shop would just ignore this bug).</p>
<p>Why Oracle doesn&#8217;t document such new optimizer improvements in the documentation by providing<br />
- examples in the first place(the way you did it) &#8211; I&#8217;m sure that the new feature was tested using examples, so examples are available for sure.<br />
- the purpose of the improvment &#8211; &#8216;Null aware antijoins&#8217; name of an improvement sounds great but when you don&#8217;t know the meaning, what&#8217;s the purpose to be mentioned.</p>
<p>It&#8217;s embarrassing that Oracle just mentions an improvement and that&#8217;s all. There is nothing else that will give some light what&#8217;s this improvement and how customers could benefit from it.</p>
<p>What&#8217;s you opinion? Why it is the way as it is now?<br />
(as of now knowledge sharing of such improvements is not documented but posted on blogs, forums, oak table members&#8217; books and so on.<br />
It&#8217;s for sure that Oracle has the knowledge and it&#8217;s not so hard to publish it in the documentation )</p>
<p>I&#8217;m very thankful for your Oracle database related inputs and the the way it influences me. </p>
<p>Just curious, why it is not the way it seems right to me.</p>
<p>Thanks again.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg Rahn</title>
		<link>http://structureddata.org/2008/05/22/null-aware-anti-join/#comment-211</link>
		<dc:creator>Greg Rahn</dc:creator>
		<pubDate>Thu, 29 May 2008 17:48:27 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=64#comment-211</guid>
		<description>The current anti-join is not &quot;broken&quot; it just does not work with every possible case because of transformation restrictions.  This is why the null-aware anti-join was created.  Think of it as a new type of join; a superset of what previously existed.

If you are asking if there will be a null-aware version of the previous transformations that were not null-aware, the answer would be yes.</description>
		<content:encoded><![CDATA[<p>The current anti-join is not &#8220;broken&#8221; it just does not work with every possible case because of transformation restrictions.  This is why the null-aware anti-join was created.  Think of it as a new type of join; a superset of what previously existed.</p>
<p>If you are asking if there will be a null-aware version of the previous transformations that were not null-aware, the answer would be yes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Todor Botev</title>
		<link>http://structureddata.org/2008/05/22/null-aware-anti-join/#comment-214</link>
		<dc:creator>Todor Botev</dc:creator>
		<pubDate>Thu, 29 May 2008 08:17:20 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=64#comment-214</guid>
		<description>My question comes down to: why just not &quot;fix&quot; the regular anti join so that the nulls are handled correctly?

If the null-aware path is followed consistently, we should end up with virtually all transformations doubled with there null-aware twins, schoudn&#039;t we?</description>
		<content:encoded><![CDATA[<p>My question comes down to: why just not &#8220;fix&#8221; the regular anti join so that the nulls are handled correctly?</p>
<p>If the null-aware path is followed consistently, we should end up with virtually all transformations doubled with there null-aware twins, schoudn&#8217;t we?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg Rahn</title>
		<link>http://structureddata.org/2008/05/22/null-aware-anti-join/#comment-210</link>
		<dc:creator>Greg Rahn</dc:creator>
		<pubDate>Wed, 28 May 2008 21:01:52 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=64#comment-210</guid>
		<description>I believe it comes down to how NULL is treated and the restrictions around how the query can be transformed if its presence is allowed.   If you read the patent application, starting at [0035] &lt;em&gt;The Bane of Nulls&lt;/em&gt;, you will see some examples are worked.  Specifically:
&lt;blockquote&gt;[0041] Suppose T1.x has the following set of values: {NULL,5,8,11}.  Query Q2, the transformed query generated by regular anti-join unnesting, incorrectly returns {NULL,5}.
[0042] Suppose the subquery in Q1 returns the following set of values {7,8,11} and T1.x has the same set of values {NULL,5,8,11}.  The correct result of Q1 is {5}.  Regular anti-join unnesting again incorrectly returns {NULL,5}.
&lt;/blockquote&gt;

Both of these cases demonstrate how the presence of NULL with a regular anti-join produce incorrect results.

I&#039;m not sure if I understand your second question.  If an anti-join is made null-aware, is it not a null-aware anti-join?</description>
		<content:encoded><![CDATA[<p>I believe it comes down to how NULL is treated and the restrictions around how the query can be transformed if its presence is allowed.   If you read the patent application, starting at [0035] <em>The Bane of Nulls</em>, you will see some examples are worked.  Specifically:</p>
<blockquote><p>[0041] Suppose T1.x has the following set of values: {NULL,5,8,11}.  Query Q2, the transformed query generated by regular anti-join unnesting, incorrectly returns {NULL,5}.<br />
[0042] Suppose the subquery in Q1 returns the following set of values {7,8,11} and T1.x has the same set of values {NULL,5,8,11}.  The correct result of Q1 is {5}.  Regular anti-join unnesting again incorrectly returns {NULL,5}.
</p></blockquote>
<p>Both of these cases demonstrate how the presence of NULL with a regular anti-join produce incorrect results.</p>
<p>I&#8217;m not sure if I understand your second question.  If an anti-join is made null-aware, is it not a null-aware anti-join?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Todor Botev</title>
		<link>http://structureddata.org/2008/05/22/null-aware-anti-join/#comment-209</link>
		<dc:creator>Todor Botev</dc:creator>
		<pubDate>Wed, 28 May 2008 06:56:16 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=64#comment-209</guid>
		<description>Thanks for the good post!

What do you think - why is the Null-Aware Anti-Join so special that it deserves a specially named query transformation? The &quot;regular&quot; Anti-Join can just be also null-aware, can&#039;t it? Or is there any standard (patent) preventing that?</description>
		<content:encoded><![CDATA[<p>Thanks for the good post!</p>
<p>What do you think &#8211; why is the Null-Aware Anti-Join so special that it deserves a specially named query transformation? The &#8220;regular&#8221; Anti-Join can just be also null-aware, can&#8217;t it? Or is there any standard (patent) preventing that?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ken Roytman</title>
		<link>http://structureddata.org/2008/05/22/null-aware-anti-join/#comment-215</link>
		<dc:creator>Ken Roytman</dc:creator>
		<pubDate>Fri, 23 May 2008 15:04:10 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=64#comment-215</guid>
		<description>Very cool article.  I like the link straight to the patent application.

Your blog is a joy to read.  Thank you for your contributions!</description>
		<content:encoded><![CDATA[<p>Very cool article.  I like the link straight to the patent application.</p>
<p>Your blog is a joy to read.  Thank you for your contributions!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brian Tkatch</title>
		<link>http://structureddata.org/2008/05/22/null-aware-anti-join/#comment-212</link>
		<dc:creator>Brian Tkatch</dc:creator>
		<pubDate>Thu, 22 May 2008 11:45:03 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=64#comment-212</guid>
		<description>Nice write-up. Thanx.</description>
		<content:encoded><![CDATA[<p>Nice write-up. Thanx.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rob van Wijk</title>
		<link>http://structureddata.org/2008/05/22/null-aware-anti-join/#comment-213</link>
		<dc:creator>Rob van Wijk</dc:creator>
		<pubDate>Thu, 22 May 2008 08:30:48 +0000</pubDate>
		<guid isPermaLink="false">http://structureddata.org/?p=64#comment-213</guid>
		<description>That&#039;s great news. Rewriting those &quot;not in&quot; queries on nullable columns is apparently not needed anymore in 11g.

Thanks for the excellent article.

Regards,
Rob.</description>
		<content:encoded><![CDATA[<p>That&#8217;s great news. Rewriting those &#8220;not in&#8221; queries on nullable columns is apparently not needed anymore in 11g.</p>
<p>Thanks for the excellent article.</p>
<p>Regards,<br />
Rob.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced (User agent is rejected)
Database Caching using disk: basic
Object Caching 385/385 objects using disk: basic

Served from: structureddata.org @ 2012-02-09 17:38:08 -->
