[ 
https://issues.apache.org/jira/browse/TRAFODION-2263?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15552376#comment-15552376
 ] 

ASF GitHub Bot commented on TRAFODION-2263:
-------------------------------------------

Github user DaveBirdsall commented on a diff in the pull request:

    https://github.com/apache/incubator-trafodion/pull/746#discussion_r82224007
  
    --- Diff: core/sql/cli/Statement.cpp ---
    @@ -4517,61 +3343,58 @@ RETCODE Statement::execute(CliGlobals * cliGlobals, 
Descriptor * input_desc,
                      }
     
                  }
    -         
    -
    -
              } 
    -      // done deciding if this query needs to be monitored and 
    -      // registered with WMS.
    -      // now execute it.
    -      if (masterStats != NULL)
    -   {
    -     masterStats->setIsBlocking();
    -     masterStats->setStmtState(STMT_EXECUTE_);
    -   }
     
    -      Int32 rc = root_tcb->execute(cliGlobals, statementGlobals_,
    -                              input_desc, diagsPtr, reExecute);
    -
    -      if (masterStats != NULL)
    -   masterStats->setNotBlocking();
    -      if (rc < 0)
    -   retcode = ERROR;
    -      // "diagsPtr" is modified by the foregoing call.
    -      // If "diagsPtr" is NULL, there are no diags to merge
    -      // into "diagsArea".  Otherwise, "diagsPtr" is not NULL and does
    -      // point to a diags area from which we: 1) avoid the SQL function
    -      // 2) copy the ComCondition objects over.  Then we decrement
    -      // the reference count to indicate we're done with that
    -      // ComDiagsArea.
    +            // done deciding if this query needs to be monitored and 
    +            // registered with WMS.
    +            // now execute it.
    +            if (masterStats != NULL)
    +              {
    +                masterStats->setIsBlocking();
    +                masterStats->setStmtState(STMT_EXECUTE_);
    +              }
    +            
    +            Int32 rc = root_tcb->execute(cliGlobals, statementGlobals_,
    +                                         input_desc, diagsPtr, reExecute);
    +            
    +            if (masterStats != NULL)
    +              masterStats->setNotBlocking();
    +            if (rc < 0)
    +              retcode = ERROR;
    +            // "diagsPtr" is modified by the foregoing call.
    +            // If "diagsPtr" is NULL, there are no diags to merge
    +            // into "diagsArea".  Otherwise, "diagsPtr" is not NULL and 
does
    +            // point to a diags area from which we: 1) avoid the SQL 
function
    +            // 2) copy the ComCondition objects over.  Then we decrement
    +            // the reference count to indicate we're done with that
    +            // ComDiagsArea.
            
    -      if (diagsPtr)
    -   {
    -     diagsArea.mergeAfter(*diagsPtr);
    -     diagsPtr->decrRefCount();    
    -     diagsPtr = NULL;
    -   }
    +            if (diagsPtr)
    +              {
    +                diagsArea.mergeAfter(*diagsPtr);
    +                diagsPtr->decrRefCount();    
    +                diagsPtr = NULL;
    +              }
            
    -      if (retcode == ERROR)
    -   {
    -     root_tcb->cancel(statementGlobals_,diagsPtr);
    -     state_ = ERROR_;
    -     break;
    -   }
    -      else
    -   {
    -     if (retcode == 0 && diagsArea.mainSQLCODE() > 0)
    -       // It's a warning. So return 1. 
    -       retcode = (RETCODE)1;
    -     setState(OPEN_);
    -     readyToReturn = TRUE;
    -     break;
    -   }
    -    }
    -  break;
    -   
    -   case RE_EXECUTE_:                 // on error 60
    -   case RE_EXECUTE_AFTER_RECOMPILE_: // on plan version error
    +            if (retcode == ERROR)
    +              {
    +                root_tcb->cancel(statementGlobals_,diagsPtr);
    +                state_ = ERROR_;
    +                break;
    +              }
    +            else
    +              {
    +                if (retcode == 0 && diagsArea.mainSQLCODE() > 0)
    +                  // It's a warning. So return 1. 
    +                  retcode = (RETCODE)1;
    +                setState(OPEN_);
    +                readyToReturn = TRUE;
    +                break;
    +              }
    +          }
    +        break;
    +          
    +   case RE_EXECUTE_:                
          {
            // save lnil & stuff
    --- End diff --
    
    I'm guessing "lnil" refers to late name input list? Perhaps the comment 
should be updated.


> Move Similarity check for hive tables to master executor root operator
> ----------------------------------------------------------------------
>
>                 Key: TRAFODION-2263
>                 URL: https://issues.apache.org/jira/browse/TRAFODION-2263
>             Project: Apache Trafodion
>          Issue Type: Improvement
>            Reporter: Anoop Sharma
>            Assignee: Anoop Sharma
>            Priority: Minor
>
> Query plans for hive tables include location of data directories/files
> and the plan depends on it.
> If data changes in a hive file/dir after a query has been compiled and
> before it is executed, then that change is detected at runtime by
> comparing compile time and runtime dir timestamps.
> A mismatch causes that query to recompile using AQR and a new
> plan is generated with latest dir location.
> This detection is currently being done at leaf operators (scan, insert) when
> that operator is executed.
> This jira is to move that check (called Similarity Check) to the root 
> operator before starting query execution. That way plan consistency
> checks will be done before running the query and will not depend
> on the actual operator being executed. It will also result in checks not
> being done at various processes and operators like an ESP process.
> All checks will be done at one place in master executor and code will not
> be spread across multiple operators as it is now.
>  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to