Repository: trafodion
Updated Branches:
  refs/heads/master c7d2301d7 -> e6e8956cf


Changes to update queue sizes and add dynamic queue resizing to some missing 
operators.
(cherry picked from commit f26c0f448a6adf5cdefddc74c4ba840b030e8cf5)

Conflicts:

        core/sql/generator/Generator.cpp
        core/sql/generator/Generator.h
        core/sql/sqlcomp/nadefaults.cpp


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

Branch: refs/heads/master
Commit: a111065fc659d1b82233cd78607820f3a8bd74c6
Parents: 1650c78
Author: Sandhya Sundaresan <sand...@apache.org>
Authored: Wed Aug 29 04:33:10 2018 +0000
Committer: Sandhya Sundaresan <sand...@apache.org>
Committed: Wed Aug 29 04:33:10 2018 +0000

----------------------------------------------------------------------
 core/sql/executor/ExSequence.cpp    | 38 +++++++++++++++--------------
 core/sql/executor/ExSequence.h      |  6 +++--
 core/sql/executor/ExTranspose.cpp   | 39 ++++++++++++++----------------
 core/sql/executor/ExTranspose.h     |  6 +++--
 core/sql/executor/ex_union.cpp      | 41 +++++++++++++++++---------------
 core/sql/executor/ex_union.h        |  7 ++++--
 core/sql/generator/GenRelUpdate.cpp |  2 ++
 core/sql/generator/Generator.cpp    | 19 +++++++++++++--
 core/sql/generator/Generator.h      | 24 +++++++++++++++++++
 core/sql/optimizer/Inlining.cpp     | 26 ++++++++++----------
 core/sql/sqlcomp/DefaultConstants.h |  3 +--
 core/sql/sqlcomp/nadefaults.cpp     | 24 +++++++++----------
 12 files changed, 143 insertions(+), 92 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafodion/blob/a111065f/core/sql/executor/ExSequence.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExSequence.cpp b/core/sql/executor/ExSequence.cpp
index 327fb96..bc29779 100644
--- a/core/sql/executor/ExSequence.cpp
+++ b/core/sql/executor/ExSequence.cpp
@@ -289,22 +289,8 @@ ExSequenceTcb::ExSequenceTcb (const ExSequenceTdb &  myTdb,
   qchild_  = child_tcb.getParentQueue(); 
 
   // Allocate the queue to communicate with parent
-  qparent_.down = new(space) ex_queue(ex_queue::DOWN_QUEUE,
-    myTdb.initialQueueSizeDown_,
-    myTdb.criDescDown_,
-    space);
-
-  // Allocate the private state in each entry of the down queue
-  ExSequencePrivateState *p 
-    = new(space) ExSequencePrivateState(this);
-  qparent_.down->allocatePstate(p, this);
-  delete p;
-
-  qparent_.up = new(space) ex_queue(ex_queue::UP_QUEUE,
-    myTdb.initialQueueSizeUp_,
-    myTdb.criDescUp_,
-    space);
-
+ 
+ allocateParentQueues(qparent_,TRUE);
   // Intialized processedInputs_ to the next request to process
   processedInputs_ = qparent_.down->getTailIndex();
 
@@ -375,6 +361,8 @@ void ExSequenceTcb::registerSubtasks()
       ex_assert( clusterDb_ , "Unlimited following and no clusterDb_") ;
       clusterDb_->ioEventHandler_ = ioEventHandler_ ;
     }
+    // the parent queues will be resizable, so register a resize subtask.
+    registerResizeSubtasks();
 };
 
 // Free Resources
@@ -1510,7 +1498,7 @@ void ExSequenceTcb::updateDiagsArea(  ExeErrorCode rc_)
 // Constructor and destructor private state
 //
 ExSequencePrivateState::ExSequencePrivateState
-(const ExSequenceTcb *  tcb)
+()
 {
   matchCount_ = 0;
   step_ = ExSequenceTcb::ExSeq_EMPTY;
@@ -1524,5 +1512,19 @@ ex_tcb_private_state * 
ExSequencePrivateState::allocate_new
 (const ex_tcb *tcb)
 {
   return new(((ex_tcb*)tcb)->getSpace()) 
-    ExSequencePrivateState((ExSequenceTcb*) tcb);
+    ExSequencePrivateState();
 };
+
+
+////////////////////////////////////////////////////////////////////////
+// Redefine virtual method allocatePstates, to be used by dynamic queue
+// resizing, as well as the initial queue construction.
+////////////////////////////////////////////////////////////////////////
+ex_tcb_private_state * ExSequenceTcb::allocatePstates(
+     Lng32 &numElems,      // inout, desired/actual elements
+     Lng32 &pstateLength)  // out, length of one element
+{
+  PstateAllocator<ExSequencePrivateState> pa;
+
+  return pa.allocatePstates(this, numElems, pstateLength);
+}

http://git-wip-us.apache.org/repos/asf/trafodion/blob/a111065f/core/sql/executor/ExSequence.h
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExSequence.h b/core/sql/executor/ExSequence.h
index daf324f..dec0069 100644
--- a/core/sql/executor/ExSequence.h
+++ b/core/sql/executor/ExSequence.h
@@ -204,7 +204,9 @@ public:
   
   virtual Int32 numChildren() const;
   virtual const ex_tcb* getChild(Int32 pos) const;
-
+  virtual ex_tcb_private_state * allocatePstates(
+       Lng32 &numElems,      // inout, desired/actual elements
+       Lng32 &pstateLength); // out, length of one element
 private:
   const ex_tcb * childTcb_;
   
@@ -361,7 +363,7 @@ class ExSequencePrivateState : public ex_tcb_private_state
   friend class ExSequenceTcb;
 
 public:
-  ExSequencePrivateState(const ExSequenceTcb * tcb);
+  ExSequencePrivateState();
   ex_tcb_private_state * allocate_new(const ex_tcb * tcb);
   ~ExSequencePrivateState();
 

http://git-wip-us.apache.org/repos/asf/trafodion/blob/a111065f/core/sql/executor/ExTranspose.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExTranspose.cpp 
b/core/sql/executor/ExTranspose.cpp
index ae2d2ff..2545462 100644
--- a/core/sql/executor/ExTranspose.cpp
+++ b/core/sql/executor/ExTranspose.cpp
@@ -124,30 +124,13 @@ ExTransposeTcb::ExTransposeTcb(const ExTransposeTdb 
&transTdbLocal,
   childQueue_.down->allocateAtps(glob->getSpace());
   
   // Allocate the queue to communicate with parent
-  // (Child allocates queue to communicate with Child)
-  //
-  qParent_.down = new(space) ex_queue(ex_queue::DOWN_QUEUE,
-                                     transTdb().queueSizeDown_,
-                                     transTdb().criDescDown_,
-                                     space);
-
-  // Allocate the private state in each entry of the down queue
-  //
-  ExTransposePrivateState privateState(this);
-  qParent_.down->allocatePstate(&privateState, this);
-
-
+ 
+  allocateParentQueues(qParent_,TRUE);
   // Initialize processedInputs_ to refer to the queue entry
   // which will be used next.
   //
   processedInputs_ = qParent_.down->getHeadIndex();
   
-  // Allocate a queue to communicate with the parent node.
-  //
-  qParent_.up = new(space) ex_queue(ex_queue::UP_QUEUE,
-                                   transTdb().queueSizeUp_,
-                                   transTdb().criDescUp_,
-                                   space);
 
   // fixup all expressions expressions
   //
@@ -238,6 +221,8 @@ void ExTransposeTcb::registerSubtasks()
   // (had returned WORK_OK).
   //
   sched->registerInsertSubtask(sWorkUp, this, childQueue_.up);
+ // the parent queues will be resizable, so register a resize subtask.
+  registerResizeSubtasks();
 }
 
 // ExTransposeTcb::start() ------------------------------------------
@@ -628,7 +613,7 @@ ExTransposeTcb::processError()
 
 // Constructor and destructor for ExTransposePrivateState
 //
-ExTransposePrivateState::ExTransposePrivateState(const ExTransposeTcb *) 
+ExTransposePrivateState::ExTransposePrivateState() 
 {
   init();
 }
@@ -656,6 +641,18 @@ ex_tcb_private_state *
 ExTransposePrivateState::allocate_new(const ex_tcb *tcb)
 {
   return new(((ex_tcb *)tcb)->getSpace())
-    ExTransposePrivateState((ExTransposeTcb *)tcb);
+    ExTransposePrivateState();
 }
 
+////////////////////////////////////////////////////////////////////////
+// Redefine virtual method allocatePstates, to be used by dynamic queue
+// resizing, as well as the initial queue construction.
+////////////////////////////////////////////////////////////////////////
+ex_tcb_private_state * ExTransposeTcb::allocatePstates(
+     Lng32 &numElems,      // inout, desired/actual elements
+     Lng32 &pstateLength)  // out, length of one element
+{
+  PstateAllocator<ExTransposePrivateState> pa;
+
+  return pa.allocatePstates(this, numElems, pstateLength);
+}

http://git-wip-us.apache.org/repos/asf/trafodion/blob/a111065f/core/sql/executor/ExTranspose.h
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExTranspose.h b/core/sql/executor/ExTranspose.h
index a2a537a..b574d15 100644
--- a/core/sql/executor/ExTranspose.h
+++ b/core/sql/executor/ExTranspose.h
@@ -267,7 +267,9 @@ public:
     if(pos == 0) return childTcb_;
     return NULL;
   }
-
+  virtual ex_tcb_private_state * allocatePstates(
+       Lng32 &numElems,      // inout, desired/actual elements
+       Lng32 &pstateLength); // out, length of one element
 protected:
   
   // The child TCB of this Transpose node.
@@ -329,7 +331,7 @@ class ExTransposePrivateState : public ex_tcb_private_state
 
 public:
 
-  ExTransposePrivateState(const ExTransposeTcb * tcb); 
+  ExTransposePrivateState(); 
 
   ex_tcb_private_state * allocate_new(const ex_tcb * tcb);
 

http://git-wip-us.apache.org/repos/asf/trafodion/blob/a111065f/core/sql/executor/ex_union.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ex_union.cpp b/core/sql/executor/ex_union.cpp
index 74a3f4d..1cfe82d 100644
--- a/core/sql/executor/ex_union.cpp
+++ b/core/sql/executor/ex_union.cpp
@@ -135,22 +135,10 @@ ex_union_tcb::ex_union_tcb(const ex_union_tdb &  
union_tdb,  //
   ex_cri_desc * to_parent_cri;
   to_parent_cri = childQueues_[0].up->getCriDesc();
   
-  // Allocate the queue to communicate with parent
-  qparent.down = new(space) ex_queue(ex_queue::DOWN_QUEUE,
-                                    union_tdb.queueSizeDown_,
-                                    union_tdb.criDescDown_,
-                                    space);
+  
+  allocateParentQueues(qparent,TRUE);
 
-  // Allocate the private state in each entry of the down queue
-  ex_union_private_state p(this);
-  qparent.down->allocatePstate(&p, this);
   processedInputs_ = qparent.down->getHeadIndex();
-
-  qparent.up = new(space) ex_queue(ex_queue::UP_QUEUE,
-                                  union_tdb.queueSizeUp_,
-                                  union_tdb.criDescUp_,
-                                  space);
-
   // fixup left expression
   if (moveExpr(0))
     (void) moveExpr(0)->fixup(0, getExpressionMode(), this,
@@ -207,7 +195,6 @@ void ex_union_tcb::registerSubtasks()
   sched->registerInsertSubtask(sWorkDown, this, qparent.down,"DN");
   sched->registerUnblockSubtask(sWorkDown, this, childQueues_[0].down);
   sched->registerUnblockSubtask(sWorkDown, this, childQueues_[1].down);
-
   // cancellations are handled by the complaints department
   sched->registerCancelSubtask(sCancel, this, qparent.down,"CN");
 
@@ -215,6 +202,8 @@ void ex_union_tcb::registerSubtasks()
   sched->registerUnblockSubtask(sWorkUp, this, qparent.up,"UP");
   sched->registerInsertSubtask(sWorkUp, this, childQueues_[0].up);
   sched->registerInsertSubtask(sWorkUp, this, childQueues_[1].up);
+  // the parent queues will be resizable, so register a resize subtask.
+  registerResizeSubtasks();
 }
 
 ///////////////////////////////////////////////////////////
@@ -1120,7 +1109,8 @@ void ex_o_union_tcb::registerSubtasks()
   sched->registerUnblockSubtask(sWorkUp, this, qparent.up,"UP");
   sched->registerInsertSubtask(sWorkUp, this, childQueues_[0].up);
   sched->registerInsertSubtask(sWorkUp, this, childQueues_[1].up);
-
+  // the parent queues will be resizable, so register a resize subtask.
+  registerResizeSubtasks();
 } // ex_o_union_tcb::registerSubtasks
 
 //////////////////////////////////////////////////////////////
@@ -1233,7 +1223,8 @@ void ex_c_union_tcb::registerSubtasks()
     sched->registerInsertSubtask(sWorkUp, this, childQueues_[i].up);
 
   workUpEvent_ = sched->registerNonQueueSubtask(sWorkUp, this);
-
+  // the parent queues will be resizable, so register a resize subtask.
+  registerResizeSubtasks();
 } // ex_union_tcb::registerSubtasks()
 
 ExWorkProcRetcode ex_c_union_tcb::condWorkDown()
@@ -1581,7 +1572,7 @@ void ex_c_union_tcb::processEODErrorOrWarning(NABoolean 
isWarning)
 
 // Constructor and destructor for union_private_state
 //
-ex_union_private_state::ex_union_private_state(const ex_union_tcb *) 
+ex_union_private_state::ex_union_private_state() 
 {
   init();
 }
@@ -1601,6 +1592,18 @@ ex_union_private_state::~ex_union_private_state()
 
 ex_tcb_private_state * ex_union_private_state::allocate_new(const ex_tcb *tcb)
 {
-  return new(((ex_tcb *)tcb)->getSpace()) ex_union_private_state((ex_union_tcb 
*) tcb);
+  return new(((ex_tcb *)tcb)->getSpace()) ex_union_private_state();
 }
 
+////////////////////////////////////////////////////////////////////////
+// Redefine virtual method allocatePstates, to be used by dynamic queue
+// resizing, as well as the initial queue construction.
+////////////////////////////////////////////////////////////////////////
+ex_tcb_private_state * ex_union_tcb::allocatePstates(
+     Lng32 &numElems,      // inout, desired/actual elements
+     Lng32 &pstateLength)  // out, length of one element
+{
+  PstateAllocator<ex_union_private_state> pa;
+
+  return pa.allocatePstates(this, numElems, pstateLength);
+}

http://git-wip-us.apache.org/repos/asf/trafodion/blob/a111065f/core/sql/executor/ex_union.h
----------------------------------------------------------------------
diff --git a/core/sql/executor/ex_union.h b/core/sql/executor/ex_union.h
index 279ff07..557d560 100644
--- a/core/sql/executor/ex_union.h
+++ b/core/sql/executor/ex_union.h
@@ -195,6 +195,9 @@ virtual const ex_tcb* getChild(Int32 pos) const
   virtual Int32 numChildren() const { return union_tdb().numChildren(); }
 //  virtual const ex_tcb* getChild(int pos) const;
   virtual Int32 hasNoOutputs() const {return FALSE;};
+  virtual ex_tcb_private_state * allocatePstates(
+       Lng32 &numElems,      // inout, desired/actual elements
+       Lng32 &pstateLength); // out, length of one element
 protected:
 
   const ex_tcb       *tcbLeft_;      // left tcb
@@ -386,8 +389,8 @@ class ex_union_private_state : public ex_tcb_private_state
   void           init();        // initialize state
 
 public:
-
-  ex_union_private_state(const ex_union_tcb * tcb); //constructor
+  
+  ex_union_private_state(); //constructor
   ex_tcb_private_state * allocate_new(const ex_tcb * tcb);
   ~ex_union_private_state();  // destructor
 

http://git-wip-us.apache.org/repos/asf/trafodion/blob/a111065f/core/sql/generator/GenRelUpdate.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenRelUpdate.cpp 
b/core/sql/generator/GenRelUpdate.cpp
index b8ae57f..b571125 100644
--- a/core/sql/generator/GenRelUpdate.cpp
+++ b/core/sql/generator/GenRelUpdate.cpp
@@ -2926,6 +2926,8 @@ short HbaseInsert::codeGen(Generator *generator)
          // operator. On seeing that, executor will flush the buffers.
          generator->setVSBBInsert(TRUE);
        }
+      if (xformedEffUpsert())
+        generator->setEffTreeUpsert(TRUE);
 
       //setting parametes for hbase bulk load integration
       hbasescan_tdb->setIsTrafodionLoadPrep(this->getIsTrafLoadPrep());

http://git-wip-us.apache.org/repos/asf/trafodion/blob/a111065f/core/sql/generator/Generator.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/Generator.cpp b/core/sql/generator/Generator.cpp
index d9e736a..4cbb8bf 100644
--- a/core/sql/generator/Generator.cpp
+++ b/core/sql/generator/Generator.cpp
@@ -312,7 +312,22 @@ void Generator::initTdbFields(ComTdb *tdb)
       dynQueueSizeValuesAreValid_ = TRUE;
     }
 
-  if (getRightSideOfOnlj() && makeOnljRightQueuesBig_)
+  if  (ActiveSchemaDB()->getDefaults().getToken(DYN_QUEUE_RESIZE_OVERRIDE) == 
DF_ON)
+    {
+      tdb->setQueueResizeParams(tdb->getMaxQueueSizeDown(), 
tdb->getMaxQueueSizeUp(),
+                                queueResizeLimit_,queueResizeFactor_);
+    }
+  //Typically the sequence operaotr may have to deal with a large numer of 
rows when 
+  //it's part of the IM tree that performs elimination of dups. 
+  if ((tdb->getNodeType() == ComTdb::ex_SEQUENCE_FUNCTION) && 
isEffTreeUpsert())
+    {
+     tdb->setQueueResizeParams(tdb->getMaxQueueSizeDown(), 
tdb->getMaxQueueSizeUp(),
+                                queueResizeLimit_,queueResizeFactor_); 
+    }
+   // Make the size of the upQ of ONLJ the same as that of the upQ
+   // of the right child. 
+   if ((tdb->getNodeType() == ComTdb::ex_ONLJ || getRightSideOfOnlj()) 
+        && makeOnljRightQueuesBig_)
     {
       tdb->setQueueResizeParams(onljRightSideDownQueue_,
                                onljRightSideUpQueue_,
@@ -343,7 +358,7 @@ void Generator::initTdbFields(ComTdb *tdb)
                               queueResizeLimit_,
                               queueResizeFactor_);
   }
-
+ 
   tdb->setTdbId(getAndIncTdbId());
 
   tdb->setPlanVersion(ComVersion_GetCurrentPlanVersion());

http://git-wip-us.apache.org/repos/asf/trafodion/blob/a111065f/core/sql/generator/Generator.h
----------------------------------------------------------------------
diff --git a/core/sql/generator/Generator.h b/core/sql/generator/Generator.h
index 2c0ac9e..1c778e3 100644
--- a/core/sql/generator/Generator.h
+++ b/core/sql/generator/Generator.h
@@ -247,6 +247,8 @@ class Generator : public NABasicObject
     // If Hive tables are accessed at runtime
     , HIVE_ACCESS              = 0x00000400
     , CONTAINS_FAST_EXTRACT    = 0x00000800
+    , EFF_TREE_UPSERT          = 0x00001000
+
   };
  
   // Each operator node receives some tupps in its input atp and
@@ -1297,6 +1299,28 @@ public:
       flags2_ &= ~RI_INLINING_FOR_TRAF_IUD ;
   }
 
+
+  NABoolean isMinmaxOptWithRangeOfValues() {
+   
+     return (flags2_ & MINMAX_WITH_RANGE_OF_VALUES ) != 0;
+  }
+
+  void setMinmaxOptWithRangeOfValues(NABoolean v)
+  {
+    v ? flags2_ |= MINMAX_WITH_RANGE_OF_VALUES:
+      flags2_ &= ~MINMAX_WITH_RANGE_OF_VALUES;
+  }
+NABoolean isEffTreeUpsert() {
+   
+     return (flags2_ & EFF_TREE_UPSERT ) != 0;
+  }
+
+  void setEffTreeUpsert(NABoolean v)
+  {
+    v ? flags2_ |= EFF_TREE_UPSERT:
+      flags2_ &= ~EFF_TREE_UPSERT;
+  }
+
   inline Int64 getPlanId();
   inline Lng32 getExplainNodeId() const;
   inline Lng32 getNextExplainNodeId();

http://git-wip-us.apache.org/repos/asf/trafodion/blob/a111065f/core/sql/optimizer/Inlining.cpp
----------------------------------------------------------------------
diff --git a/core/sql/optimizer/Inlining.cpp b/core/sql/optimizer/Inlining.cpp
index e93e33b..89b0d50 100644
--- a/core/sql/optimizer/Inlining.cpp
+++ b/core/sql/optimizer/Inlining.cpp
@@ -2165,19 +2165,21 @@ RelExpr *GenericUpdate::createIMNodes(BindWA *bindWA,
     // are flowing to this update node.
     // This is also the case when updates are being driven 
     // by rowsets.
-    // The fix is to unconditionally block the ordered union
+    // Changing this code that  unconditionally blocked the ordered union
     // to handle all cases of IM updates.
-    // Note that this may cause performance issues. Improving
-    // the performance is an RFE at the moment. 
-    //if (this->getInliningInfo().isInActionOfRowTrigger() ||
-    //   bindWA->getHostArraysArea())
-    //{
-       ((Union *)indexOp)->setBlockedUnion();
-    //}
-    //else
-    //{
-    //   ((Union *)indexOp)->setOrderedUnion();
-    //}
+    //We can use the ordered union in the case where we have the sequence 
operator 
+    // in the tree on the left side to remove duplicates before it flows to 
the 
+    // IM tree. This is to improve performance.
+    // 
+    if (this->getInliningInfo().isInActionOfRowTrigger() ||
+        (bindWA->getHostArraysArea() && !isEffUpsert))
+    {
+      ((Union *)indexOp)->setBlockedUnion();
+    }
+    else
+    {
+      ((Union *)indexOp)->setOrderedUnion();
+    }
 
     // Add a root just to be consistent, so all returns from this method
     // are topped with a RelRoot.

http://git-wip-us.apache.org/repos/asf/trafodion/blob/a111065f/core/sql/sqlcomp/DefaultConstants.h
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/DefaultConstants.h 
b/core/sql/sqlcomp/DefaultConstants.h
index 2098024..290205f 100644
--- a/core/sql/sqlcomp/DefaultConstants.h
+++ b/core/sql/sqlcomp/DefaultConstants.h
@@ -383,7 +383,7 @@ enum DefaultConstants
   DYN_QUEUE_RESIZE_INIT_DOWN,
   DYN_QUEUE_RESIZE_INIT_UP,
   DYN_QUEUE_RESIZE_LIMIT,
-
+  DYN_QUEUE_RESIZE_OVERRIDE,
   // -------------------------------------------------------------------------
   // Enable 'ON' or disable 'OFF' considering hash joins of any form
   // -------------------------------------------------------------------------
@@ -2115,7 +2115,6 @@ enum DefaultConstants
   GEN_ONLJ_SET_QUEUE_RIGHT,
   GEN_ONLJ_SET_QUEUE_LEFT,
 
-
   
   SORT_REC_THRESHOLD,
   SORT_MERGE_BUFFER_UNIT_56KB,

http://git-wip-us.apache.org/repos/asf/trafodion/blob/a111065f/core/sql/sqlcomp/nadefaults.cpp
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/nadefaults.cpp b/core/sql/sqlcomp/nadefaults.cpp
index e56efa5..b5aea4a 100644
--- a/core/sql/sqlcomp/nadefaults.cpp
+++ b/core/sql/sqlcomp/nadefaults.cpp
@@ -1119,6 +1119,7 @@ SDDui___(CYCLIC_ESP_PLACEMENT,                  "1"),
   DDui2__(DYN_QUEUE_RESIZE_INIT_DOWN,          "4"),
   DDui2__(DYN_QUEUE_RESIZE_INIT_UP,            "4"),
   DDui1__(DYN_QUEUE_RESIZE_LIMIT,              "9"),
+  DDkwd__(DYN_QUEUE_RESIZE_OVERRIDE,             "OFF"),
 
   DDkwd__(EID_SPACE_USAGE_OPT,                 "OFF"),
 
@@ -1319,7 +1320,7 @@ SDDkwd__(EXE_DIAGNOSTIC_EVENTS,           "OFF"),
   DDui1__(GEN_MJ_BUFFER_SIZE,                  "32768"),
   DDui1__(GEN_MJ_NUM_BUFFERS,                  "1"),
   DDui1__(GEN_MJ_SIZE_DOWN,                    "2"),
-  DDui1__(GEN_MJ_SIZE_UP,                      "1024"),
+  DDui1__(GEN_MJ_SIZE_UP,                      "2048"),
   DDui1__(GEN_ONLJ_BUFFER_SIZE,                        "5120"),
   DDui1__(GEN_ONLJ_LEFT_CHILD_QUEUE_DOWN,       "4"),
   DDui1__(GEN_ONLJ_LEFT_CHILD_QUEUE_UP,         "2048"),
@@ -1328,7 +1329,7 @@ SDDkwd__(EXE_DIAGNOSTIC_EVENTS,           "OFF"),
   DDui1__(GEN_ONLJ_RIGHT_SIDE_QUEUE_UP,         "2048"),
   DDkwd__(GEN_ONLJ_SET_QUEUE_LEFT,              "ON"),
   DDkwd__(GEN_ONLJ_SET_QUEUE_RIGHT,             "ON"),
-  DDui1__(GEN_ONLJ_SIZE_DOWN,                  "2048"),
+  DDui1__(GEN_ONLJ_SIZE_DOWN,                  "8"),
   DDui1__(GEN_ONLJ_SIZE_UP,                    "2048"),
   DDipcBu(GEN_PA_BUFFER_SIZE,                  "31000"),
   DDui1__(GEN_PA_NUM_BUFFERS,                  "5"),
@@ -1338,10 +1339,10 @@ SDDkwd__(EXE_DIAGNOSTIC_EVENTS,         "OFF"),
   DDui1__(GEN_PROBE_CACHE_SIZE_UP,              "2048"),
   DDui1__(GEN_SAMPLE_SIZE_DOWN,                        "16"),
   DDui1__(GEN_SAMPLE_SIZE_UP,                  "16"),
-  DDui1__(GEN_SEQFUNC_BUFFER_SIZE,             "5120"),
-  DDui1__(GEN_SEQFUNC_NUM_BUFFERS,             "5"),
-  DDui1__(GEN_SEQFUNC_SIZE_DOWN,               "16"),
-  DDui1__(GEN_SEQFUNC_SIZE_UP,                 "16"),
+  DDui1__(GEN_SEQFUNC_BUFFER_SIZE,             "10240"),
+  DDui1__(GEN_SEQFUNC_NUM_BUFFERS,             "10"),
+  DDui1__(GEN_SEQFUNC_SIZE_DOWN,               "512"),
+  DDui1__(GEN_SEQFUNC_SIZE_UP,                 "2048"),
   DDui1__(GEN_SGBY_BUFFER_SIZE,                        "5120"),
   DDui1__(GEN_SGBY_NUM_BUFFERS,                        "5"),
   DDui1__(GEN_SGBY_SIZE_DOWN,                  "2048"),
@@ -1360,7 +1361,7 @@ SDDkwd__(EXE_DIAGNOSTIC_EVENTS,           "OFF"),
   DDui1__(GEN_SORT_MAX_BUFFER_SIZE,            "5242880"),
   DDui1__(GEN_SORT_MAX_NUM_BUFFERS,             "160"),
   DDui1__(GEN_SORT_NUM_BUFFERS,                        "2"),
-  DDui1__(GEN_SORT_SIZE_DOWN,                  "2"),
+  DDui1__(GEN_SORT_SIZE_DOWN,                  "8"),
   DDui1__(GEN_SORT_SIZE_UP,                    "1024"),
   DDkwd__(GEN_SORT_TOPN,                       "ON"),
   DDui1__(GEN_SORT_TOPN_THRESHOLD,              "10000"),
@@ -1381,8 +1382,8 @@ SDDkwd__(EXE_DIAGNOSTIC_EVENTS,           "OFF"),
   DDui1__(GEN_TRAN_SIZE_UP,                    "4"),
   DDui1__(GEN_TRSP_BUFFER_SIZE,                        "10240"),
   DDui1__(GEN_TRSP_NUM_BUFFERS,                        "5"),
-  DDui1__(GEN_TRSP_SIZE_DOWN,                  "16"),
-  DDui1__(GEN_TRSP_SIZE_UP,                    "16"),
+  DDui1__(GEN_TRSP_SIZE_DOWN,                  "2048"),
+  DDui1__(GEN_TRSP_SIZE_UP,                    "2048"),
   DDui1__(GEN_TUPL_BUFFER_SIZE,                        "1024"),
   DDui1__(GEN_TUPL_NUM_BUFFERS,                        "4"),
   DDui1__(GEN_TUPL_SIZE_DOWN,                  "2048"),
@@ -1403,9 +1404,8 @@ SDDkwd__(EXE_DIAGNOSTIC_EVENTS,           "OFF"),
 
   DDui1__(GEN_UN_BUFFER_SIZE,                  "10240"),
   DDui1__(GEN_UN_NUM_BUFFERS,                  "5"),
-  DDui1__(GEN_UN_SIZE_DOWN,                    "8"),
-  DDui1__(GEN_UN_SIZE_UP,                      "16"),
-
+  DDui1__(GEN_UN_SIZE_DOWN,                    "2048"),
+  DDui1__(GEN_UN_SIZE_UP,                      "2048"),
 
 
   // When less or equal to this CQD (5000 rows by default), a partial root 

Reply via email to