Happy to fix the sentence and the link. I pointed out the name change just so you would review it, so please don't apologize!
One more question: why am I not finding getQualifiedAliases() in the SemanticAnalyzer class? It turns up in OpProcFactory.java with javadoc comments, but I can't find it anywhere in the API docs -- not even in the index (Hive 0.12.0 API <http://hive.apache.org/docs/r0.12.0/api/>): *getQMap()*<http://hive.apache.org/docs/r0.12.0/api/org/apache/hadoop/hive/ql/QTestUtil.html#getQMap()> - Method in class org.apache.hadoop.hive.ql.QTestUtil<http://hive.apache.org/docs/r0.12.0/api/org/apache/hadoop/hive/ql/QTestUtil.html> *getQualifiedName()*<http://hive.apache.org/docs/r0.12.0/api/org/apache/hadoop/hive/serde2/typeinfo/TypeInfo.html#getQualifiedName()> - Method in class org.apache.hadoop.hive.serde2.typeinfo.TypeInfo<http://hive.apache.org/docs/r0.12.0/api/org/apache/hadoop/hive/serde2/typeinfo/TypeInfo.html>String representing the qualified type name.*getQualifiers()*<http://hive.apache.org/docs/r0.12.0/api/org/apache/hive/service/cli/thrift/TTypeQualifiers.html#getQualifiers()> - Method in class org.apache.hive.service.cli.thrift.TTypeQualifiers<http://hive.apache.org/docs/r0.12.0/api/org/apache/hive/service/cli/thrift/TTypeQualifiers.html> *getQualifiersSize()*<http://hive.apache.org/docs/r0.12.0/api/org/apache/hive/service/cli/thrift/TTypeQualifiers.html#getQualifiersSize()> - Method in class org.apache.hive.service.cli.thrift.TTypeQualifiers<http://hive.apache.org/docs/r0.12.0/api/org/apache/hive/service/cli/thrift/TTypeQualifiers.html> Most mysterious. -- Lefty On Tue, Dec 10, 2013 at 2:35 PM, Harish Butani <hbut...@hortonworks.com>wrote: > I can see why you would rename. > > But this sentence is not correct: > 'Hive enforces the predicate pushdown rules by these methods in the > SemanticAnalyzer and JoinPPD classes:' > > It should be: > Hive enforces the rules by these methods in the SemanticAnalyzer and > JoinPPD classes: > > (The implementation involves both predicate pushdown and analyzing join > conditions) > Sorry about this. > > So the link should say 'Hive Outer Join Behavior' > > regards, > Harish. > > > On Dec 10, 2013, at 2:01 PM, Lefty Leverenz <leftylever...@gmail.com> > wrote: > > How's this? Hive > Implementation<https://cwiki.apache.org/confluence/display/Hive/OuterJoinBehavior#OuterJoinBehavior-HiveImplementation> > > Also, I moved the link on the Design Docs > page<https://cwiki.apache.org/confluence/display/Hive/DesignDocs>from > *Proposed* to *Other*. (It's called SQL Outer Join Predicate Pushdown > Rules <https://cwiki.apache.org/confluence/display/Hive/OuterJoinBehavior> > which > doesn't match the title, but seems okay because it's more descriptive.) > > -- Lefty > > > On Tue, Dec 10, 2013 at 7:27 AM, Harish Butani <hbut...@hortonworks.com>wrote: > >> You are correct, it is plural. >> >> regards, >> Harish. >> >> On Dec 10, 2013, at 4:03 AM, Lefty Leverenz <leftylever...@gmail.com> >> wrote: >> >> Okay, then monospace with "()" after the method name is a good way to >> show them: parseJoinCondition() and getQualifiedAlias() ... but I only >> found the latter pluralized, instead of singular, so should it be >> getQualifiedAliases() or am I missing something? >> >> trunk> *grep -nr 'getQualifiedAlias' ./ql/src/java/* | grep -v 'svn'* >>> >>> ./ql/src/java/org/apache/hadoop/hive/ql/ppd/OpProcFactory.java:221: * >>>> the comments for getQualifiedAliases function. >>> >>> ./ql/src/java/org/apache/hadoop/hive/ql/ppd/OpProcFactory.java:230: >>>> Set<String> aliases = getQualifiedAliases((JoinOperator) nd, owi >>> >>> ./ql/src/java/org/apache/hadoop/hive/ql/ppd/OpProcFactory.java:242: >>>> // be pushed down per getQualifiedAliases >>> >>> ./ql/src/java/org/apache/hadoop/hive/ql/ppd/OpProcFactory.java:471: >>>> private Set<String> getQualifiedAliases(JoinOperator op, RowResolver >>>> rr) { >>> >>> >>> >> -- Lefty >> >> >> On Mon, Dec 9, 2013 at 2:12 PM, Harish Butani <hbut...@hortonworks.com>wrote: >> >>> Looks good. Thanks for doing this. >>> >>> Minor point: >>> >>> *Rule 1:* During *QBJoinTree* construction in Plan Gen, the parse Join >>> Condition logic applies this rule. >>> *Rule 2:* During *JoinPPD* (Join Predicate Pushdown) the get Qualified >>> Alias logic applies this rule. >>> >>> FYI 'parseJoinCondition' and 'getQualifiedAlias' are methods in the >>> SemanticAnalyzer and JoinPPD classes respectively. >>> Writing these as separate words maybe confusing. You are better judge of >>> how to represent this(quoted/bold etc.) >>> >>> regards, >>> Harish. >>> >>> >>> On Dec 9, 2013, at 1:52 AM, Lefty Leverenz <leftylever...@gmail.com> >>> wrote: >>> >>> The Outer Join Behavior >>> wikidoc< >>> https://cwiki.apache.org/confluence/display/Hive/OuterJoinBehavior>is >>> >>> done, with links from the Design >>> Docs <https://cwiki.apache.org/confluence/display/Hive/DesignDocs> page >>> and >>> the Joins doc< >>> https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Joins#LanguageManualJoins-JoinOptimization >>> > >>> . >>> >>> Harish (or anyone else) would you please review the changes I made to >>> the definition >>> for "Null Supplying >>> table"< >>> https://cwiki.apache.org/confluence/display/Hive/OuterJoinBehavior#OuterJoinBehavior-Definitions >>> > >>> >>> ? >>> >>> -- Lefty >>> >>> >>> On Mon, Dec 2, 2013 at 6:46 PM, Thejas Nair <the...@hortonworks.com> >>> wrote: >>> >>> :) >>> >>> >>> On Mon, Dec 2, 2013 at 6:18 PM, Lefty Leverenz <leftylever...@gmail.com> >>> wrote: >>> >>> Easy as 3.14159.... (I can take a hint.) >>> >>> -- Lefty >>> >>> >>> On Mon, Dec 2, 2013 at 5:34 PM, Thejas Nair <the...@hortonworks.com> >>> >>> wrote: >>> >>> >>> FYI, Harish has a written a very nice doc describing predicate push >>> down rules for join. I have attached it to the design doc page. It >>> will be very useful for anyone looking at joins. >>> >>> >>> >>> https://cwiki.apache.org/confluence/download/attachments/27362075/OuterJoinBehavior.html >>> >>> >>> (any help converting it to wiki format from html is welcome!). >>> >>> -- >>> CONFIDENTIALITY NOTICE >>> NOTICE: This message is intended for the use of the individual or >>> >>> entity to >>> >>> which it is addressed and may contain information that is confidential, >>> privileged and exempt from disclosure under applicable law. If the >>> >>> reader >>> >>> of this message is not the intended recipient, you are hereby notified >>> >>> that >>> >>> any printing, copying, dissemination, distribution, disclosure or >>> forwarding of this communication is strictly prohibited. If you have >>> received this communication in error, please contact the sender >>> >>> immediately >>> >>> and delete it from your system. Thank You. >>> >>> >>> -- >>> CONFIDENTIALITY NOTICE >>> NOTICE: This message is intended for the use of the individual or entity >>> to >>> which it is addressed and may contain information that is confidential, >>> privileged and exempt from disclosure under applicable law. If the reader >>> of this message is not the intended recipient, you are hereby notified >>> that >>> any printing, copying, dissemination, distribution, disclosure or >>> forwarding of this communication is strictly prohibited. If you have >>> received this communication in error, please contact the sender >>> immediately >>> and delete it from your system. Thank You. >>> >>> >>> >>> CONFIDENTIALITY NOTICE >>> NOTICE: This message is intended for the use of the individual or entity >>> to which it is addressed and may contain information that is confidential, >>> privileged and exempt from disclosure under applicable law. If the reader >>> of this message is not the intended recipient, you are hereby notified that >>> any printing, copying, dissemination, distribution, disclosure or >>> forwarding of this communication is strictly prohibited. If you have >>> received this communication in error, please contact the sender immediately >>> and delete it from your system. Thank You. >>> >> >> >> >> CONFIDENTIALITY NOTICE >> NOTICE: This message is intended for the use of the individual or entity >> to which it is addressed and may contain information that is confidential, >> privileged and exempt from disclosure under applicable law. If the reader >> of this message is not the intended recipient, you are hereby notified that >> any printing, copying, dissemination, distribution, disclosure or >> forwarding of this communication is strictly prohibited. If you have >> received this communication in error, please contact the sender immediately >> and delete it from your system. Thank You. >> > > > > CONFIDENTIALITY NOTICE > NOTICE: This message is intended for the use of the individual or entity > to which it is addressed and may contain information that is confidential, > privileged and exempt from disclosure under applicable law. If the reader > of this message is not the intended recipient, you are hereby notified that > any printing, copying, dissemination, distribution, disclosure or > forwarding of this communication is strictly prohibited. If you have > received this communication in error, please contact the sender immediately > and delete it from your system. Thank You. >