Return-Path: X-Original-To: apmail-hive-commits-archive@www.apache.org Delivered-To: apmail-hive-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 806AF18AD1 for ; Wed, 8 Jul 2015 01:56:58 +0000 (UTC) Received: (qmail 19305 invoked by uid 500); 8 Jul 2015 01:56:56 -0000 Delivered-To: apmail-hive-commits-archive@hive.apache.org Received: (qmail 19230 invoked by uid 500); 8 Jul 2015 01:56:56 -0000 Mailing-List: contact commits-help@hive.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: hive-dev@hive.apache.org Delivered-To: mailing list commits@hive.apache.org Received: (qmail 18305 invoked by uid 99); 8 Jul 2015 01:56:55 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 08 Jul 2015 01:56:55 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 8D0B0E3C41; Wed, 8 Jul 2015 01:56:55 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: sershe@apache.org To: commits@hive.apache.org Date: Wed, 08 Jul 2015 01:57:18 -0000 Message-Id: In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [25/31] hive git commit: HIVE-11184: Lineage - ExprProcFactory#getExprString may throw NullPointerException (Jimmy, reviewed by Chao) HIVE-11184: Lineage - ExprProcFactory#getExprString may throw NullPointerException (Jimmy, reviewed by Chao) Project: http://git-wip-us.apache.org/repos/asf/hive/repo Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/ac9adfdd Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/ac9adfdd Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/ac9adfdd Branch: refs/heads/llap Commit: ac9adfdd3aaff1f89d9aa62545eb01fdff3bef20 Parents: b963769 Author: Jimmy Xiang Authored: Mon Jul 6 09:14:23 2015 -0700 Committer: Jimmy Xiang Committed: Tue Jul 7 11:39:20 2015 -0700 ---------------------------------------------------------------------- .../ql/optimizer/lineage/ExprProcFactory.java | 21 +++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hive/blob/ac9adfdd/ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/ExprProcFactory.java ---------------------------------------------------------------------- diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/ExprProcFactory.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/ExprProcFactory.java index 46fe5db..455a525 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/ExprProcFactory.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/lineage/ExprProcFactory.java @@ -203,12 +203,19 @@ public class ExprProcFactory { LineageCtx lctx, Operator inpOp, Predicate cond) { if (expr instanceof ExprNodeColumnDesc) { ExprNodeColumnDesc col = (ExprNodeColumnDesc) expr; - String columnName = col.getColumn(); - ColumnInfo ci = rs.getColumnInfo(columnName); - String alias = ci != null ? ci.getAlias() : columnName; - String internalName = ci != null ? ci.getInternalName() : columnName; + String internalName = col.getColumn(); + String alias = internalName; + String tabAlias = col.getTabAlias(); + ColumnInfo ci = rs.getColumnInfo(internalName); + if (ci != null) { + if (ci.getAlias() != null) { + alias = ci.getAlias(); + } + if (ci.getTabAlias() != null) { + tabAlias = ci.getTabAlias(); + } + } Dependency dep = lctx.getIndex().getDependency(inpOp, internalName); - String tabAlias = ci != null ? ci.getTabAlias() : col.getTabAlias(); if ((tabAlias == null || tabAlias.startsWith("_") || tabAlias.startsWith("$")) && (dep != null && dep.getType() == DependencyType.SIMPLE)) { List baseCols = dep.getBaseCols(); @@ -235,8 +242,8 @@ public class ExprProcFactory { } } if (alias.startsWith("_")) { - ci = inpOp.getSchema().getColumnInfo(columnName); - if (ci != null) { + ci = inpOp.getSchema().getColumnInfo(internalName); + if (ci != null && ci.getAlias() != null) { alias = ci.getAlias(); } }