[TRAFODION-1700] [TRAFODION-1847] fixes - commit #2 Changed hbase_filter_preds to 'on' in core/TEST029 and core/TEST056 to make the test pass. This CQD is set to '2' in sql/regress/tools/sbdefs.
The merge update columns were not bound in the right order and that was causing the executor/TEST015 to fail. Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/2fb283bf Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/2fb283bf Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/2fb283bf Branch: refs/heads/master Commit: 2fb283bf4248dcc2107c2435197746874e19794e Parents: a8210ea Author: selvaganesang <[email protected]> Authored: Sat Feb 27 21:02:11 2016 +0000 Committer: selvaganesang <[email protected]> Committed: Sat Feb 27 21:02:11 2016 +0000 ---------------------------------------------------------------------- core/sql/optimizer/BindRelExpr.cpp | 5 ++++- core/sql/optimizer/RelExpr.cpp | 2 +- core/sql/optimizer/RelUpdate.h | 10 +++++----- core/sql/regress/core/EXPECTED056.SB | 6 ++++++ core/sql/regress/core/TEST029 | 2 +- core/sql/regress/core/TEST056 | 2 ++ 6 files changed, 19 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/2fb283bf/core/sql/optimizer/BindRelExpr.cpp ---------------------------------------------------------------------- diff --git a/core/sql/optimizer/BindRelExpr.cpp b/core/sql/optimizer/BindRelExpr.cpp index c0b3788..ab347a7 100644 --- a/core/sql/optimizer/BindRelExpr.cpp +++ b/core/sql/optimizer/BindRelExpr.cpp @@ -10265,6 +10265,9 @@ RelExpr* Insert::xformUpsertToMerge(BindWA *bindWA) ValueId tgtValueId = assignExpr->child(0)->castToItemExpr()->getValueId(); NAColumn *col = tgtValueId.getNAColumn( TRUE ); NABoolean copySetAssign = FALSE; + if (col->isSystemColumn()) + continue; + else if (! col->isClusteringKey()) { // In case of aligned format we need to bind in the new = old values @@ -10287,7 +10290,7 @@ RelExpr* Insert::xformUpsertToMerge(BindWA *bindWA) setAssign = (ItemExpr *)assignExpr; setCount++; if (setCount > 1) - setAssign = new(bindWA->wHeap()) ItemList(setAssign,setAssignPrev); + setAssign = new(bindWA->wHeap()) ItemList(setAssignPrev, setAssign); } } } http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/2fb283bf/core/sql/optimizer/RelExpr.cpp ---------------------------------------------------------------------- diff --git a/core/sql/optimizer/RelExpr.cpp b/core/sql/optimizer/RelExpr.cpp index 2b21ae4..fafc600 100644 --- a/core/sql/optimizer/RelExpr.cpp +++ b/core/sql/optimizer/RelExpr.cpp @@ -12797,7 +12797,7 @@ MergeUpdate::MergeUpdate(const CorrName &name, ItemExpr *where) : Update(name,tabId,otype,child,setExpr,NULL,oHeap), insertCols_(insertCols), insertValues_(insertValues), - where_(where) + where_(where), xformedUpsert_(FALSE) { setCacheableNode(CmpMain::BIND); http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/2fb283bf/core/sql/optimizer/RelUpdate.h ---------------------------------------------------------------------- diff --git a/core/sql/optimizer/RelUpdate.h b/core/sql/optimizer/RelUpdate.h index 3eea633..dbd8a06 100644 --- a/core/sql/optimizer/RelUpdate.h +++ b/core/sql/optimizer/RelUpdate.h @@ -143,8 +143,7 @@ GenericUpdate(const CorrName &name, noIMneeded_(FALSE), useMVCC_(FALSE), useSSCC_(FALSE), - preconditionTree_(NULL), - xformedUpsert_(FALSE) + preconditionTree_(NULL) {} // copy ctor @@ -542,8 +541,6 @@ GenericUpdate(const CorrName &name, { precondition_ = pc; exprsInDerivedClasses_ += precondition_; } virtual ItemExpr * insertValues() { return NULL;} - NABoolean xformedUpsert() {return xformedUpsert_;} - void setXformedUpsert() {xformedUpsert_ = TRUE;} protected: @@ -932,7 +929,6 @@ private: ItemExpr *preconditionTree_; ValueIdSet precondition_; - NABoolean xformedUpsert_; }; @@ -1446,10 +1442,14 @@ public: ItemExpr * insertCols() {return insertCols_;} virtual ItemExpr * insertValues() { return insertValues_;} + + NABoolean xformedUpsert() {return xformedUpsert_;} + void setXformedUpsert() {xformedUpsert_ = TRUE;} private: ItemExpr *insertCols_; ItemExpr *insertValues_; ItemExpr *where_; + NABoolean xformedUpsert_; }; http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/2fb283bf/core/sql/regress/core/EXPECTED056.SB ---------------------------------------------------------------------- diff --git a/core/sql/regress/core/EXPECTED056.SB b/core/sql/regress/core/EXPECTED056.SB index 4ddfcd4..9ddfb83 100755 --- a/core/sql/regress/core/EXPECTED056.SB +++ b/core/sql/regress/core/EXPECTED056.SB @@ -2025,6 +2025,9 @@ T056T56_COL T056T56_COL2 T056T56_COL3 T056T56_COL4 --- 1 row(s) selected. >> +>>cqd hbase_filter_preds 'on' ; + +--- SQL operation complete. >>create table t056t57 (a1 numeric(2,2) signed default 0 not null); --- SQL operation complete. @@ -2149,6 +2152,9 @@ A1 .00 --- 1 row(s) selected. +>>cqd hbase_filter_preds '2' ; + +--- SQL operation complete. >> >>obey TEST056(tests4); >>obey test056(test4OLTops); http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/2fb283bf/core/sql/regress/core/TEST029 ---------------------------------------------------------------------- diff --git a/core/sql/regress/core/TEST029 b/core/sql/regress/core/TEST029 index 88a53a4..adfc463 100755 --- a/core/sql/regress/core/TEST029 +++ b/core/sql/regress/core/TEST029 @@ -39,7 +39,7 @@ obey TEST029(ddbMX); drop table MT; create table MT(a int); -- empty table, for NULL data source #ifMX - +cqd hbase_filter_preds 'on' ; log LOG029 clear; obey TEST029(tests); obey TEST029(ddbMXMP); http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/2fb283bf/core/sql/regress/core/TEST056 ---------------------------------------------------------------------- diff --git a/core/sql/regress/core/TEST056 b/core/sql/regress/core/TEST056 index 823f66e..29085bb 100755 --- a/core/sql/regress/core/TEST056 +++ b/core/sql/regress/core/TEST056 @@ -806,6 +806,7 @@ alter table t056t56 add column t056t56_col3 pic 9 default +00; alter table t056t56 add column t056t56_col4 decimal default 0; select * from t056t56; +cqd hbase_filter_preds 'on' ; create table t056t57 (a1 numeric(2,2) signed default 0 not null); showddl t056t57; insert into t056t57 default values; @@ -830,6 +831,7 @@ create table t056t61 (a1 numeric(2,2) default -0.0 not null); showddl t056t61; insert into t056t61 default values; select * from t056t61; +cqd hbase_filter_preds '2' ; ?section test4ddl ------------------------------------------------
