You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by db...@apache.org on 2015/08/21 02:36:57 UTC

[1/3] incubator-trafodion git commit: [TRAFODION-1460] Enable EXPLAIN IN RMS feature by default

Repository: incubator-trafodion
Updated Branches:
  refs/heads/master 5f9c7b31f -> adcae2545


[TRAFODION-1460] Enable EXPLAIN IN RMS feature by default

EXPLAIN_IN_RMS is now enabled by default. The explain plan
can now be obtained from a different session using

explain for qid <qid>
explain options 'f' for qid <qid>

The explain fragment in packed format is retained in RMS shared
segment till the query is deallocated.


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

Branch: refs/heads/master
Commit: 3b214579d8fca9aa59a4e1553da556582e96630e
Parents: 5f9c7b3
Author: selvaganesang <se...@esgyn.com>
Authored: Wed Aug 19 20:25:45 2015 +0000
Committer: selvaganesang <se...@esgyn.com>
Committed: Wed Aug 19 20:33:07 2015 +0000

----------------------------------------------------------------------
 core/sql/cli/SessionDefaults.cpp | 3 ---
 core/sql/cli/SessionDefaults.h   | 9 ---------
 core/sql/cli/Statement.cpp       | 7 ++++---
 core/sql/executor/ex_control.cpp | 7 -------
 core/sql/sqlcomp/nadefaults.cpp  | 2 +-
 5 files changed, 5 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/3b214579/core/sql/cli/SessionDefaults.cpp
----------------------------------------------------------------------
diff --git a/core/sql/cli/SessionDefaults.cpp b/core/sql/cli/SessionDefaults.cpp
index 2e2b94d..bc5bd13 100644
--- a/core/sql/cli/SessionDefaults.cpp
+++ b/core/sql/cli/SessionDefaults.cpp
@@ -139,7 +139,6 @@ SessionDefaults::SessionDefaults(CollHeap * heap)
        cancelLogging_(TRUE),
        suspendLogging_(TRUE),
        aqrWarn_(0),
-       explainInRMS_(FALSE),
        redriveCTAS_(FALSE),
        callEmbeddedArkcmp_(FALSE),
        exsmTraceLevel_(0),
@@ -226,7 +225,6 @@ SessionDefaults::SessionDefaults(CollHeap * heap)
   setParentQidSystem(NULL, 0);
   setWmsProcess(FALSE);
   aqrInfo_ = new(heap) AQRInfo(heap);
-  setExplainInRMS(FALSE);
   setRtsTimeout(rtsTimeout_);
   setStatisticsViewType(SQLCLI_PERTABLE_STATS);
   setReclaimTotalMemorySize(DEFAULT_RECLAIM_MEMORY_AFTER);
@@ -1689,7 +1687,6 @@ void SessionDefaults::beginSession()
   setParentQid(NULL, 0);
   setParentQidSystem(NULL, 0);
   setWmsProcess(FALSE);
-  setExplainInRMS(FALSE);
   setStatisticsViewType(SQLCLI_PERTABLE_STATS);
   setReclaimTotalMemorySize(DEFAULT_RECLAIM_MEMORY_AFTER);
   setReclaimFreeMemoryRatio(DEFAULT_RECLAIM_FREE_MEMORY_RATIO);

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/3b214579/core/sql/cli/SessionDefaults.h
----------------------------------------------------------------------
diff --git a/core/sql/cli/SessionDefaults.h b/core/sql/cli/SessionDefaults.h
index 7581cc9..2520165 100644
--- a/core/sql/cli/SessionDefaults.h
+++ b/core/sql/cli/SessionDefaults.h
@@ -571,13 +571,6 @@ public:
 
   AQRInfo * aqrInfo() { return aqrInfo_; }
 
-  void setExplainInRMS(NABoolean v = TRUE)
-  {
-    explainInRMS_ = v;
-  }
-
-  NABoolean isExplainInRMS() { return explainInRMS_; }
-
   Lng32 getStatisticsViewType() { return statisticsViewType_; }
   void setStatisticsViewType(Lng32 type) 
   { 
@@ -766,8 +759,6 @@ private:
   NABoolean suspendLogging_;              // suspended's session
   NABoolean callEmbeddedArkcmp_;       // call the procedural interface and don't send a message to the arkcmp process.
   AQRInfo * aqrInfo_;
-  NABoolean explainInRMS_;  // Flag to trigger copying of explain fragment to the RMS shared
-                            // segment
   Lng32 statisticsViewType_;     // Statistics view type which could be different from the collection statistics type
 /*
   Memory manager will start to reclaim space when the below conditions are met

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/3b214579/core/sql/cli/Statement.cpp
----------------------------------------------------------------------
diff --git a/core/sql/cli/Statement.cpp b/core/sql/cli/Statement.cpp
index f9575c1..462e226 100644
--- a/core/sql/cli/Statement.cpp
+++ b/core/sql/cli/Statement.cpp
@@ -1973,11 +1973,12 @@ Lng32 Statement::unpackAndInit(ComDiagsArea &diagsArea,
   SessionDefaults *sessionDefaults =
        context_->getSessionDefaults();
   if (statsGlobals != NULL && stmtStats_ != NULL && root_tdb != NULL 
-        && getUniqueStmtId() != NULL 
-        && sessionDefaults->isExplainInRMS())
+        && getUniqueStmtId() != NULL) 
   {
     ex_root_tdb *rootTdb = getRootTdb();
-    if (rootTdb->explainInRms() &&
+    //root_tdb is not unpacked for SHOWPLAN and 
+    // explain fragment can't be obtained for such prepared queries
+    if (!rootTdb->isPacked() && rootTdb->explainInRms() &&
         rootTdb->getFragDir()->getExplainFragDirEntry
                  (fragOffset, fragLen, topNodeOffset) == 0)
     {

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/3b214579/core/sql/executor/ex_control.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ex_control.cpp b/core/sql/executor/ex_control.cpp
index 357ecfd..d8e62b0 100644
--- a/core/sql/executor/ex_control.cpp
+++ b/core/sql/executor/ex_control.cpp
@@ -366,13 +366,6 @@ short ExControlTcb::work()
                           currContext->getSessionDefaults()->setStatisticsViewType(SQLCLI_PERTABLE_STATS);
                         }
 		      }
-		    else if (strcmp(value[1], "EXPLAIN_IN_RMS") == 0)
-		      {
-                        NABoolean explainInRMS = TRUE;
-			if (strcmp(value[2], "OFF") == 0)
-                            explainInRMS = FALSE;
-			currContext->getSessionDefaults()->setExplainInRMS(explainInRMS);
-                      }
 		    else if (strcmp(value[1], "MARIAQUEST_PROCESS") == 0)
 		      {
 			if (strcmp(value[2], "ON") == 0)

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/3b214579/core/sql/sqlcomp/nadefaults.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/nadefaults.cpp b/core/sql/sqlcomp/nadefaults.cpp
index ab55264..2520d6c 100644
--- a/core/sql/sqlcomp/nadefaults.cpp
+++ b/core/sql/sqlcomp/nadefaults.cpp
@@ -1374,7 +1374,7 @@ SDDkwd__(EXE_DIAGNOSTIC_EVENTS,		"OFF"),
 
   DDkwd__(EXPLAIN_DISPLAY_FORMAT,		"EXTERNAL"),
 
-  DDkwd__(EXPLAIN_IN_RMS, 		        "OFF"),
+  DDkwd__(EXPLAIN_IN_RMS, 		        "ON"),
 
   DDui___(EXPLAIN_OUTPUT_ROW_SIZE,   "80"),
 


[3/3] incubator-trafodion git commit: Merge [TRAFODION-1460] PR 61 Enable EXPLAIN IN RMS by default

Posted by db...@apache.org.
Merge [TRAFODION-1460] PR 61 Enable EXPLAIN IN RMS by default


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

Branch: refs/heads/master
Commit: adcae2545c08286d4c018bb427fe66c0e0d77f3d
Parents: 5f9c7b3 daa0a47
Author: Dave Birdsall <db...@apache.org>
Authored: Fri Aug 21 00:35:53 2015 +0000
Committer: Dave Birdsall <db...@apache.org>
Committed: Fri Aug 21 00:35:53 2015 +0000

----------------------------------------------------------------------
 core/sql/cli/SessionDefaults.cpp | 3 ---
 core/sql/cli/SessionDefaults.h   | 9 ---------
 core/sql/cli/Statement.cpp       | 7 ++++---
 core/sql/executor/ExExplain.cpp  | 9 +++++++++
 core/sql/executor/ex_control.cpp | 7 -------
 core/sql/sqlcomp/nadefaults.cpp  | 2 +-
 6 files changed, 14 insertions(+), 23 deletions(-)
----------------------------------------------------------------------



[2/3] incubator-trafodion git commit: [TRAFODION-1460] - Allowing 'CURRENT' for qid

Posted by db...@apache.org.
[TRAFODION-1460] - Allowing 'CURRENT' for qid

Within the same session, you can use

explain option 'f' for qid current

to display the explain plan of the recently compiled or executed statement.


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

Branch: refs/heads/master
Commit: daa0a478b57672c9855bbb3f3fa6c62da0b7a507
Parents: 3b21457
Author: selvaganesang <se...@esgyn.com>
Authored: Wed Aug 19 22:10:03 2015 +0000
Committer: selvaganesang <se...@esgyn.com>
Committed: Wed Aug 19 22:10:03 2015 +0000

----------------------------------------------------------------------
 core/sql/executor/ExExplain.cpp | 9 +++++++++
 1 file changed, 9 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/daa0a478/core/sql/executor/ExExplain.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExExplain.cpp b/core/sql/executor/ExExplain.cpp
index 8a271e6..28c64ce 100644
--- a/core/sql/executor/ExExplain.cpp
+++ b/core/sql/executor/ExExplain.cpp
@@ -1503,6 +1503,7 @@ RtsExplainFrag *ExExplainTcb::sendToSsmp()
   RtsExplainReq *explainReq;
   CliGlobals *cliGlobals = getGlobals()->castToExExeStmtGlobals()->
                         castToExMasterStmtGlobals()->getCliGlobals();
+  ContextCli *context = cliGlobals->currContext();
   if (cliGlobals->getStatsGlobals() == NULL)
   {
     // Runtime Stats not running.
@@ -1512,6 +1513,14 @@ RtsExplainFrag *ExExplainTcb::sendToSsmp()
     return NULL;
   }
 
+  ExMasterStats *masterStats;
+
+  if (strcasecmp(qid_, "CURRENT") == 0) {
+     if (context->getStats() != NULL && (masterStats = context->getStats()->getMasterStats()) != NULL) {
+        setQid(masterStats->getQueryId(), masterStats->getQueryIdLen()); 
+     }
+  }
+
   // Verify that we have valid parameters for each kind of request. If not, fill in the diagsArea
   // and return NULL.
   ExSsmpManager *ssmpManager = cliGlobals->getSsmpManager();