Reworks

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

Branch: refs/heads/master
Commit: 64d1e33063bd2957b5c71b47c2608a7ac2852c9f
Parents: ee91b33
Author: Dave Birdsall <[email protected]>
Authored: Mon Apr 23 21:51:24 2018 +0000
Committer: Dave Birdsall <[email protected]>
Committed: Mon Apr 23 21:51:24 2018 +0000

----------------------------------------------------------------------
 core/sql/optimizer/NormRelExpr.cpp          |  5 ++++-
 core/sql/regress/compGeneral/EXPECTED015.SB | 18 +++++++++---------
 2 files changed, 13 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafodion/blob/64d1e330/core/sql/optimizer/NormRelExpr.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/NormRelExpr.cpp 
b/core/sql/optimizer/NormRelExpr.cpp
index 89504a2..115b406 100644
--- a/core/sql/optimizer/NormRelExpr.cpp
+++ b/core/sql/optimizer/NormRelExpr.cpp
@@ -2855,11 +2855,14 @@ RelExpr* Join::transformSemiJoin(NormWA& normWARef)
         haveSignificantReduction = TRUE;
       CostScalar innerAllowance =
         
((ActiveSchemaDB()->getDefaults()).getAsDouble(SEMIJOIN_TO_INNERJOIN_INNER_ALLOWANCE));
+      NABoolean haveSmallInner = FALSE;
+      if ((innerRowCount < innerAllowance) && (!noInnerStats))
+        haveSmallInner = TRUE;
 
       if (preds.isEmpty() && 
          ((child(1)->getGroupAttr()->getNumBaseTables() == 0) ||
            haveSignificantReduction ||
-           (innerRowCount < innerAllowance) ||
+           haveSmallInner ||
            (CmpCommon::getDefault(SEMIJOIN_TO_INNERJOIN_TRANSFORMATION) == 
DF_ON)))
   {                     
     CollHeap *stmtHeap = CmpCommon::statementHeap() ;

http://git-wip-us.apache.org/repos/asf/trafodion/blob/64d1e330/core/sql/regress/compGeneral/EXPECTED015.SB
----------------------------------------------------------------------
diff --git a/core/sql/regress/compGeneral/EXPECTED015.SB 
b/core/sql/regress/compGeneral/EXPECTED015.SB
index b5e11d4..c1a3076 100755
--- a/core/sql/regress/compGeneral/EXPECTED015.SB
+++ b/core/sql/regress/compGeneral/EXPECTED015.SB
@@ -535,8 +535,8 @@ TRAFODION_SCAN    T10         1.000E+005   100000 fragm
 OPERATOR          TAB_NAME    CARDINALITY  MAX_CARDINALITY
 ----------------  ----------  -----------  ---------------
 
-ROOT                          1.250E+004   100000 fragm   
-TRAFODION_SCAN    T10         1.250E+004   100000 fragm   
+ROOT                          1.000E+004   10000 fragme   
+TRAFODION_SCAN    T10         1.000E+004   10000 fragme   
 
 --- 2 row(s) selected.
 >>select count(*) from (SELECT * FROM t10 WHERE d like 'one%') as t;
@@ -557,8 +557,8 @@ TRAFODION_SCAN    T10         1.250E+004   100000 fragm
 OPERATOR          TAB_NAME    CARDINALITY  MAX_CARDINALITY
 ----------------  ----------  -----------  ---------------
 
-ROOT                          8.750E+004   100000 fragm   
-TRAFODION_SCAN    T10         8.750E+004   100000 fragm   
+ROOT                          1.000E+005   100000 fragm   
+TRAFODION_SCAN    T10         1.000E+005   100000 fragm   
 
 --- 2 row(s) selected.
 >>select count(*) from (SELECT * FROM t10 WHERE d not like 'one%') as t;
@@ -1174,8 +1174,8 @@ TRAFODION_SCAN    T10         1.000E+000   1 fragment_i
 OPERATOR          TAB_NAME    CARDINALITY  MAX_CARDINALITY
 ----------------  ----------  -----------  ---------------
 
-ROOT                          1.250E+004   12500 fragme   
-TRAFODION_SCAN    T10         1.250E+004   12500 fragme   
+ROOT                          1.000E+004   10000 fragme   
+TRAFODION_SCAN    T10         1.000E+004   10000 fragme   
 
 --- 2 row(s) selected.
 >> -- min(1e5, 1e4) should = 1e4
@@ -1202,8 +1202,8 @@ TRAFODION_SCAN    T10         1.000E+000   1 fragment_i
 OPERATOR          TAB_NAME    CARDINALITY  MAX_CARDINALITY
 ----------------  ----------  -----------  ---------------
 
-ROOT                          1.000E+000   10000 fragme   
-TRAFODION_SCAN    T10         1.000E+000   10000 fragme   
+ROOT                          1.000E+000   100000 fragm   
+TRAFODION_SCAN    T10         1.000E+000   100000 fragm   
 
 --- 2 row(s) selected.
 >> -- min(1e4, 1e5) should = 1e4
@@ -2297,7 +2297,7 @@ OPERATOR
 ----------------
 
 ROOT            
-HYBRID_HASH_SEMI
+HYBRID_HASH_JOIN
 
 --- 2 row(s) selected.
 >>

Reply via email to