Merge [TRAFODION-2913] PR 1403 Tweak some MDAM-related heuristics
diff --git a/core/sql/optimizer/ScanOptimizer.cpp b/core/sql/optimizer/ScanOptimizer.cpp
index 5ca7d86..9265a55 100644
--- a/core/sql/optimizer/ScanOptimizer.cpp
+++ b/core/sql/optimizer/ScanOptimizer.cpp
@@ -3124,8 +3124,7 @@
const ValueIdSet nonKeyColumnSet,
const Disjuncts &curDisjuncts,
const IndexDesc * indexDesc,
- const ValueIdSet externalInputs,
- NABoolean mdamFlag)
+ const ValueIdSet externalInputs)
{
NABoolean canDoMdam = TRUE;
@@ -3135,11 +3134,6 @@
// Check whether MDAM can be considered for this node:
// -----------------------------------------------------------------------
- if(CURRSTMT_OPTDEFAULTS->indexEliminationLevel() != OptDefaults::MINIMUM
- AND mdamFlag == MDAM_OFF)
- canDoMdam = FALSE;
-
- else
if (NOT indexDesc->getNAFileSet()->isKeySequenced())
{
// -----------------------------------------------------------
@@ -3477,17 +3471,6 @@
return ScanForceWildCard::MDAM_OFF;
}
- // The Index elimination project added the MdamFlag which can force
- // MDAM off
- //
- if(CURRSTMT_OPTDEFAULTS->indexEliminationLevel() != OptDefaults::MINIMUM
- AND fileScan.getMdamFlag() == MDAM_OFF
- && (CmpCommon::getDefault(RANGESPEC_TRANSFORMATION) != DF_ON )
- )
- {
- return ScanForceWildCard::MDAM_OFF;
- }
-
// If the number of disjuncts exceeds the maximum, MDAM is forced OFF
//
if(fileScan.getDisjuncts().entries() > MDAM_MAX_NUM_DISJUNCTS) {
@@ -4166,7 +4149,6 @@
else
{
ValueIdSet externalInputs = getExternalInputs();
- NABoolean mdamFlag = getMdamFlag();
if (NOT partKeyPreds.isEmpty())
{
@@ -4174,8 +4156,7 @@
nonKeyColumnSet,
*curDisjuncts,
indexDesc,
- externalInputs,
- mdamFlag);
+ externalInputs);
}
else
{
@@ -4183,8 +4164,7 @@
nonKeyColumnSet,
getDisjuncts(),
indexDesc,
- externalInputs,
- mdamFlag);
+ externalInputs);
}
}
diff --git a/core/sql/optimizer/ScanOptimizer.h b/core/sql/optimizer/ScanOptimizer.h
index 29bafd2..d6f445e 100644
--- a/core/sql/optimizer/ScanOptimizer.h
+++ b/core/sql/optimizer/ScanOptimizer.h
@@ -387,8 +387,7 @@
const ValueIdSet nonKeyColumnSet,
const Disjuncts &curDisjuncts,
const IndexDesc * indexDesc,
- const ValueIdSet externalInputs,
- NABoolean mdamFlag);
+ const ValueIdSet externalInputs);
// get and set various probing counters for all partitions.
diff --git a/core/sql/sqlcomp/nadefaults.cpp b/core/sql/sqlcomp/nadefaults.cpp
index a75c20b..ea2d8d4 100644
--- a/core/sql/sqlcomp/nadefaults.cpp
+++ b/core/sql/sqlcomp/nadefaults.cpp
@@ -1877,7 +1877,7 @@
// mdam off on open source at this point
XDDkwd__(MDAM_SCAN_METHOD, "ON"),
- DDflt0_(MDAM_SELECTION_DEFAULT, "0.5"),
+ DDflt0_(MDAM_SELECTION_DEFAULT, "8.0"),
// Overhead charge for a subset in the rewritten MDAM costing code
DDflt0_(MDAM_SUBSET_FACTOR, "8.0"),