drill-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jinfengni <...@git.apache.org>
Subject [GitHub] drill pull request #521: DRILL-4715: Fix java compilation error in run-time ...
Date Wed, 22 Jun 2016 22:36:14 GMT
Github user jinfengni commented on a diff in the pull request:

    https://github.com/apache/drill/pull/521#discussion_r68147991
  
    --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/expr/ClassGenerator.java
---
    @@ -215,22 +218,47 @@ public JVar declareVectorValueSetupAndMember(DirectExpression batchName,
TypedFi
         return vv;
       }
     
    +  public enum BlkCreateMode {
    +    TRUE,  // Create new block
    +    FALSE, // Do not create block; put into existing block.
    +    TRUE_IF_BOUND // Create new block only if # of expressions added hit upper-bound
(ExecConstants.CODE_GEN_EXP_IN_METHOD_SIZE)
    +  }
    +
       public HoldingContainer addExpr(LogicalExpression ex) {
    -    return addExpr(ex, true);
    +    // default behavior is always to put expression into new block.
    +    return addExpr(ex, BlkCreateMode.TRUE);
       }
     
    -  public HoldingContainer addExpr(LogicalExpression ex, boolean rotate) {
    -//    logger.debug("Adding next write {}", ex);
    -    if (rotate) {
    -      rotateBlock();
    +  public HoldingContainer addExpr(LogicalExpression ex, BlkCreateMode mode) {
    +    if (mode == BlkCreateMode.TRUE || mode == BlkCreateMode.TRUE_IF_BOUND) {
    +      rotateBlock(mode);
         }
    +
    +    for (LinkedList<SizedJBlock> b : blocks) {
    +      b.getLast().incCounter();
    +    }
    +
         return evaluationVisitor.addExpr(ex, this);
       }
     
       public void rotateBlock() {
    -    evaluationVisitor.previousExpressions.clear();
    -    for (LinkedList<JBlock> b : blocks) {
    -      b.add(new JBlock(true, true));
    +    // default behavior is always to create new block.
    +    rotateBlock(BlkCreateMode.TRUE);
    +  }
    +
    +  private void rotateBlock(BlkCreateMode mode) {
    +    boolean blockRotated = false;
    +    for (LinkedList<SizedJBlock> b : blocks) {
    +      if (mode == BlkCreateMode.TRUE ||
    +          (mode == BlkCreateMode.TRUE_IF_BOUND &&
    +            optionManager != null &&
    +            b.getLast().getCount() > optionManager.getOption(ExecConstants.CODE_GEN_EXP_IN_METHOD_SIZE).num_val))
{
    --- End diff --
    
    Done. 


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

Mime
View raw message