Repository: trafodion
Updated Branches:
  refs/heads/master c13cd58a6 -> 88e4752c2


[TRAFODION-2983] Be careful to preserve inputs needed for output computation


Project: http://git-wip-us.apache.org/repos/asf/trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafodion/commit/3375ecb3
Tree: http://git-wip-us.apache.org/repos/asf/trafodion/tree/3375ecb3
Diff: http://git-wip-us.apache.org/repos/asf/trafodion/diff/3375ecb3

Branch: refs/heads/master
Commit: 3375ecb3ece47f5d883d1d81608740589f3fc809
Parents: 17a6a5c
Author: Dave Birdsall <[email protected]>
Authored: Thu Mar 8 00:05:45 2018 +0000
Committer: Dave Birdsall <[email protected]>
Committed: Thu Mar 8 00:05:45 2018 +0000

----------------------------------------------------------------------
 core/sql/generator/GenPreCode.cpp | 6 ++++--
 core/sql/optimizer/RelExpr.cpp    | 2 ++
 2 files changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafodion/blob/3375ecb3/core/sql/generator/GenPreCode.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenPreCode.cpp 
b/core/sql/generator/GenPreCode.cpp
index 208ca0b..9832c44 100644
--- a/core/sql/generator/GenPreCode.cpp
+++ b/core/sql/generator/GenPreCode.cpp
@@ -1154,12 +1154,14 @@ VEGReference::replaceVEGReference(const ValueIdSet 
&origAvailableValues,
 
   if (VEG_DEBUG)
     {
-      NAString av,iv,vb;
+      NAString av,iv,vb,vr;
       availableValues.unparse(av);
       inputValues.unparse(iv);
       valuesToBeBound.unparse(vb);
+      ValueIdSet thisVegRef(getValueId());
+      thisVegRef.unparse(vr);
       cout << endl;
-         cout << "VEGReference " << getValueId() << " :" << endl;
+      cout << "VEGReference " << getValueId() << " (" << vr << "):" << endl;
       cout << "AV: " << av << endl;
       cout << "IV: " << iv << endl;
       cout << "VB: " << vb << endl;

http://git-wip-us.apache.org/repos/asf/trafodion/blob/3375ecb3/core/sql/optimizer/RelExpr.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/RelExpr.cpp b/core/sql/optimizer/RelExpr.cpp
index 3a3e457..5096b8b 100644
--- a/core/sql/optimizer/RelExpr.cpp
+++ b/core/sql/optimizer/RelExpr.cpp
@@ -7812,6 +7812,8 @@ NABoolean GroupByAgg::tryToPullUpPredicatesInPreCodeGen(
   myLocalExpr += child(0).getGroupAttr()->getCharacteristicInputs();
   myLocalExpr += groupExpr();
   myLocalExpr += aggregateExpr();
+  // make sure we can still produce our characteristic outputs too
+  myLocalExpr += getGroupAttr()->getCharacteristicOutputs();
           
   // consider only preds that we can evaluate in the parent
   if (optionalMap)

Reply via email to