[TRAFODION-2901] take one in column list as source for output
Project: http://git-wip-us.apache.org/repos/asf/trafodion/repo Commit: http://git-wip-us.apache.org/repos/asf/trafodion/commit/00378f9b Tree: http://git-wip-us.apache.org/repos/asf/trafodion/tree/00378f9b Diff: http://git-wip-us.apache.org/repos/asf/trafodion/diff/00378f9b Branch: refs/heads/master Commit: 00378f9bdc18f649cc3314e445a1e2ee5810eceb Parents: c8c5bce Author: Guhaiyan <[email protected]> Authored: Fri Jun 1 01:43:21 2018 +0000 Committer: Guhaiyan <[email protected]> Committed: Fri Jun 1 01:43:21 2018 +0000 ---------------------------------------------------------------------- core/sql/optimizer/RelExpr.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/trafodion/blob/00378f9b/core/sql/optimizer/RelExpr.cpp ---------------------------------------------------------------------- diff --git a/core/sql/optimizer/RelExpr.cpp b/core/sql/optimizer/RelExpr.cpp index edad4dd..7f881d8 100644 --- a/core/sql/optimizer/RelExpr.cpp +++ b/core/sql/optimizer/RelExpr.cpp @@ -13331,10 +13331,6 @@ void GenericUpdate::pushdownCoveredExpr(const ValueIdSet &outputExpr, localExprs += *setOfValuesReqdByParent ; localExprs += exprsInDerivedClasses_; - ValueIdSet original_output; - if (avoidHalloween() && child(0) && child(0)->getGroupAttr()) - original_output = child(0)->getGroupAttr()->getCharacteristicOutputs(); - // --------------------------------------------------------------------- // Check which expressions can be evaluated by my child. // Modify the Group Attributes of those children who inherit some of @@ -13354,9 +13350,10 @@ void GenericUpdate::pushdownCoveredExpr(const ValueIdSet &outputExpr, ValueId exprId; ValueId atLeastOne; - for (exprId = original_output.init(); - original_output.next(exprId); - original_output.advance(exprId)) + ValueIdSet output_source = child(0)->getTableDescForExpr()->getColumnList(); + for (exprId = output_source.init(); + output_source.next(exprId); + output_source.advance(exprId)) { atLeastOne = exprId; if (!(exprId.getItemExpr()->doesExprEvaluateToConstant(FALSE, TRUE)))
